Kubernetes(k8s)在 CentOS 上“卡住”是一个比较笼统的问题,通常表现为:节点 NotReady、Pod 一直 Pending/ContainerCreating、kubectl 无响应、系统卡顿等。下面按常见场景 + 排查思路 + 解决方式给你一个实操清单。
执行以下命令初步判断:
kubectl get nodes
kubectl get pods -A
systemctl status kubelet
journalctl -u kubelet -f
常见问题分类:
K8s 要求 必须关闭 swap
free -m
如果有 swap:
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
CentOS 默认开启,非常容易坑
# 临时
systemctl stop firewalld
setenforce 0
# 永久
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
看日志:
journalctl -u kubelet -n 100 --no-pager
常见错误:
failed to find cgroupcontainer runtime is not running解决:
systemctl restart kubelet
systemctl status containerd # 或 docker
CentOS 8+ 推荐 containerd
systemctl status containerd
systemctl restart containerd
如果是 docker:
systemctl restart docker
df -h
尤其是:
/var/lib/docker/var/lib/kubelet清理:
docker system prune -a
# 或
crictl rmi --prune
Pod 一直 ContainerCreating:
kubectl describe pod <pod-name>
常见:
解决:
kubectl get pods -n kube-system
kubectl logs -n kube-system <cni-pod>
top
htop
CentOS 上 kubelet + docker 很吃资源,建议:
强制恢复:
reboot
重启后:
systemctl restart containerd kubelet
你可以告诉我:
我可以直接帮你定位到具体命令级别。