k8s存储pv/pvc中的subPath的使用详解

有些场景下我们需要在多个POD中使用同一个volume,这种情况在就不能直接直接写在同一个目录下,而需要使用该目录下针对每个POD的子目录,这个时候就可以使用subPath。同时如果configMap/Secret挂载在容器的路径是会覆盖原有路径的下所有文件,这种场景在使用subPath也可以很好的解决该问题。我们来看下用法吧。我们先创建一套测试的pv/pvccat test-storage.yamlkind: PersistentVolumeapiVersion: v1metadata: &nbs...

阅读全文

Nvidia Device PLugin工作原理机制

我们在k8s使用英伟达GPU时想让POD自动挂载我们需要部署nvidia-device-plugin组件,如何部署使用可以查看我之前的笔记:https://sulao.cn/post/978.html英伟达的deviceplugin组件主要在整个工作过程中做了如下工作1.deviceserver的启动和注册deviceserver在启动的时候会检测/var/lib/kubelet/device-plugins/kubelet.sock文件,如果该文件存在,那么deviceserver会通过该sock文件向kubelet注册信息。2.device的...

阅读全文

k8s容器退出码详细信息介绍

由于经常使用k8s,所以在遇到退出码含义的时候经常要去查询,所以记录到博客上方便进行查找对应的含义关系。当一个容器达到Exited状态时,Docker会在日志中报告一个退出码,告诉你容器发生了什么导致它退出。了解容器退出码下面我们将更详细地介绍每个退出码。退出码含义...

阅读全文

k8s调度GPU节点并挂载GPU设备

k8s已经支持GPU设备的调度和POD容器挂载,需要做以下配置1.首先我们需要再宿主机安装驱动2.需要安装nvidia-container-runtime3.GPU节点打标签并部署k8s-device-plugin上面1和2可以直接搜我之前的笔记,我们直接部署k8s-device-plugin,这个可以上报GPU节点的GPU数量到k8s中,然后在业务yaml文件中添加requests/limits请求配置中添加GPU相关配置即可自动调度到GPU节点并挂载GPU设备将以下内容保存为k8s-device-plugin.yaml,lable需要自己按照需求进行...

阅读全文

k8s使用nfs报错selfLink was empty, can't make reference

我们重新部署了k8s环境,centos7环境下使用的k8s1.27.0这个版本,今天在部署k8s上使用storageclass资源资源部署nfs使用时,POD挂载nfs资源报错提示“unexpectederrorgettingclaimreference:selfLinkwasempty,can'tmakereference”出现上述这个问题是因为在k8s1.21之后的版本移除了selfLink机制,kube-apiserver的解决方法是作为–feature-gates=RemoveSelfLink=false参数传递,这种...

阅读全文

centos7使用haproxy部署k8s高可用集群

之前我们部署k8s多master高可用集群中使用的代理均衡器是nginx,这次我们使用haproxy来做负载均衡器,之前的笔记也会用到,可以查看之前的笔记:https://sulao.cn/post/953.html直接从之前笔记中的安装nginx处开始,由于此处是使用haproxy替代原来的nginx,所以我们直接安装haproxy,本次笔记和上述笔记基本一致,只有nginx/haproxy和keepalived处略有不同yum install haproxy -y安装完成以后我们现手工添加VIPip addr&...

阅读全文

centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)

集群部署k8s1.23.0版本,容器使用的是containerd1.7.10版本规划的集群信息如下192.168.1.72   master1192.168.1.73   master2192.168.1.74   master3192.168.1.75   node1192.168.1.78   VIP然后在上述三个master分别部署nginx,keepalive,其中nginx代理后端...

阅读全文

centos下k8s集群docker切换containerd

之前有记录使用containerd部署k8s集群的笔记,这次记录一个已有k8s集群从docker切换到containerd方法的笔记,下面就介绍切换的操作过程首先下载containerd包wget https://github.com/containerd/containerd/releases/download/v1.7.10/cri-containerd-1.7.10-linux-amd64.tar.gz部署containerdtar -zxvf cri-containerd-1.7.10-linux-amd64.tar...

阅读全文

centos7使用containerd部署k8s集群

由于k8s高版本后面不支持docker,所以需要使用containerd替代docker,下面是部署过程,整个部署基本和原来记录的差距不大,但是还是有些注意事项首先关闭防火墙systemctl stop firewalldsystemctl disable firewalld关闭selinux:sed -i 's/enforcing/disabled/' /etc/selinux/configsetenforce 0关闭swap交换分区swapoff&...

阅读全文

k8s修改证书有效期,适用于k8s1.17以上版本

之前我们做过k8s证书续期的笔记,但是1.19以上版本就有些不一样了,所以重新记录一篇,感兴趣的可以查看我之前的笔记:https://sulao.cn/post/846.htmlk8s大体上续订证书基本还是一致的,也是下载k8s对应版本源码,然后编译kubeadm,使用新的kubeadm进行证书续期此方式使用范围是1.17-1.23版本。我们首先下载golang,编译的时候需要使用到wget https://golang.google.cn/dl/go1.21.5.linux-amd64.tar.gztar -zxvf ...

阅读全文