CentOS 上安装 Kubernetes 的常见问题与排查要点
一 环境预检与系统配置
swapoff -a 并在 /etc/fstab 中注释 swap 行,否则 kubelet 可能异常。/etc/selinux/config 中设为 SELINUX=permissive/disabled;生产环境可改为配置 SELinux 策略以兼顾安全与兼容。net.ipv4.ip_forward=1、net.bridge.bridge-nf-call-iptables=1),并加载 br_netfilter 模块,否则 Pod 网络与跨节点通信会受影响。二 容器运行时与镜像拉取
systemctl status/start/enable containerd)。/run/containerd/containerd.sock),并与容器运行时版本匹配。registry-mirrors 并建议将 cgroup driver 设为 systemd,然后重启服务生效。--image-repository 指定镜像仓库;确保所有节点拉取的组件镜像版本一致,避免版本错配。三 初始化与网络插件
kubeadm init 时需根据所选 CNI 插件设置正确的 Pod CIDR,例如 Flannel 常用 10.244.0.0/16,Calico 常用 192.168.0.0/16;错误的 CIDR 会导致 Pod 无法获取 IP 或跨节点不通。kubectl 可用。"cniVersion": "0.2.0"。kubectl get nodes 与 kubectl get pods -A 检查节点 Ready 与系统 Pod Running。四 组件故障与服务可达
journalctl -u kubelet -f 查看具体错误;常见原因包括配置错误、权限不足、CRI 不可用、磁盘/内存压力等,按日志逐项修复后重启 kubelet。etcdctl member list、etcdctl endpoint health 排查成员与健康状况。五 快速排查清单
kubectl get nodes、kubectl get pods -A、kubectl describe pod <pod> -n <ns>、kubectl logs <pod> -n <ns>、kubectl get events -A,快速定位 Pending/CrashLoopBackOff/ImagePullBackOff 等状态的根因。free -m、df -h、top,确认资源充足;timedatectl status 检查时间同步;systemctl status kubelet containerd docker 确认关键服务运行。ping/ss -lntp 检查节点互通与端口开放;ip a/route 与 sysctl -p 检查网卡、路由与内核参数;firewall-cmd --list-all 或云上安全组规则核对。journalctl -u kubelet -f、journalctl -u etcd -f、journalctl -u kube-apiserver -f,从组件日志直接定位初始化、证书、网络与存储相关错误。