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

由于经常使用k8s,所以在遇到退出码含义的时候经常要去查询,所以记录到博客上方便进行查找对应的含义关系。当一个容器达到Exited状态时,Docker会在日志中报告一个退出码,告诉你容器发生了什么导致它退出。了解容器退出码下面我们将更详细地介绍每个退出码。退出码0:正常退出退出代码0由开发人员在任务完成后故意停止容器时触发。从技术上讲,退出代码0意味着前台进程未附加到特定容器。如果容器以退出码0终止怎么办?检查容器日志,确定哪个库导致容器退出;查看现有库的代码,并确定它触发退出码0的原因,以及它是否正常运行。退出码1:应用错误退...

阅读全文

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 ...

阅读全文

k8s基于role创建指定命名空间下的账户和config管理文件

之前我们学习了创建基于集群级别的账号和管理配置的方法,具体可以查看这个笔记:https://sulao.cn/post/939.html。实际在k8s的使用过程中,我们通常以命名空间来隔离项目或者团队,那么这个时候就有一些需求,就是通过k8sRBAC创建的账户只用于某一个命名空间下,那么这样的账户创建和之前基于集群的创建是稍有区别的,那么我们一起来看看创建过程和创建方法前面的操作也是一样,需要创建一个私钥和证书签名请求openssl genrsa -out sulao.key 2048openssl ...

阅读全文

k8s基于clusterrole创建集群级别只读账户和config管理文件

有时k8s我们需要给一些人员进行查询使用,并不希望该账户又太多权限,这个时候我们需要创建一个只读权限的CLusterRole,并重新生一个对应权限的config文件,然后将这个config文件分发下,这样就能让其它用户可以查看k8s集群,但是只有只读权限。在创建账户之前,我们现了解下config文件构成kubectl config view apiVersion: v1clusters:- cluster:    certificate-author...

阅读全文