在 CentOS 上跑 Kubernetes 感觉“卡”,通常不是单一原因,而是多个层面叠加。下面按最常见 → 较少见的顺序给你梳理,并给排查思路。
K8s 本身 + 组件就很吃资源:
典型现象
kubectl 命令卡排查
top
free -h
df -h
建议最低配置
Kubernetes 官方不支持 Swap
现象
检查
swapon -s
解决
swapoff -a
sed -i '/swap/d' /etc/fstab
CentOS 默认:
现象
快速验证
getenforce
systemctl status firewalld
生产建议
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
CentOS 常见:
现象
检查
docker info | grep -i cgroup
cat /var/lib/kubelet/config.yaml | grep cgroup
建议
systemd cgroup driver常见问题:
检查
kubectl get pods -n kube-system
journalctl -u kubelet -f
etcd 对磁盘 I/O 非常敏感
现象
检查
etcdctl endpoint status --write-out=table
iostat -x 1
建议
CentOS 7 默认 3.10 内核:
建议
kubelet / 容器日志很容易打满磁盘
df -h /var
journalctl --disk-usage
# 1. 资源
top
free -h
# 2. swap
swapon -s
# 3. 防火墙/SELinux
getenforce
systemctl status firewalld
# 4. kubelet
journalctl -u kubelet -n 100 --no-pager
# 5. 节点状态
kubectl get nodes
kubectl describe node <node>
你可以补充:
我可以直接给你针对性的修复方案。