背景
kubeadm安装Kubernetes,集群状态检测时,master一直处于notready状态
kubectl get nodes
此时master节点处于NotReady状态
找问题,先查看pods状态
kubectl get pod -n kube-system
部分pod处于一直处于pending
再进一步看kuberctl.services日志
journalctl -f -u kubelet.service
发现错误日志
Failed to find subsystem mount for required subsystem: pids
解决方案
报错信息说,在执行k8s Qos操作上出错(QoS类似一种等级制度,当资源不够时,低等级容器的将被杀死),cgroup是控制资源(CPU、内存、进程)的管理组,报错信息在于不能挂载pid的子系统,通过添加启动文件ExecStart 添加参数–feature-gates 并设置SupportPodPidsLimit为fasle,取消该功能即可;同理k8s将不会对进程资源进行管控
在k8s配置文件
/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
添加一下内容
解决方案: 在ExecStart上添加 --feature-gates SupportPodPidsLimit=false --feature-gates SupportNodePidsLimit=false
修改后重启
systemctl restart kubelet
再看问题顺利解决