确保CentOS版本与Kubernetes版本符合官方要求是基础。CentOS 7是目前最成熟的适配版本,支持Kubernetes 1.19.x至1.26.x(推荐1.23.10、1.26.x等稳定版);CentOS 8因官方已于2021年底停止维护,仅建议用于测试环境,若需使用可选择Kubernetes 1.17.x等旧版本,但需承担兼容性风险。部署前务必核对Kubernetes官方文档的版本支持列表,避免因版本冲突导致集群异常。
setenforce 0、systemctl stop firewalld),并永久生效(修改/etc/selinux/config中SELINUX=disabled、systemctl disable firewalld)。swapoff -a并注释/etc/fstab中的Swap条目。ntpdate ntp.aliyun.com同步时间。kernel-lt或kernel-ml),解决Pod创建失败、内存分配异常等问题。yum install -y net-tools nmap-ncat yum-utils安装网络工具和包管理辅助工具,确保后续安装流程顺利。Kubernetes推荐使用systemd作为Docker的cgroup驱动,需修改Docker服务配置(/etc/docker/daemon.json),添加"exec-opts": ["native.cgroupdriver=systemd"],并重启Docker服务(systemctl daemon-reload && systemctl restart docker),避免Docker与Kubernetes的cgroup驱动不兼容导致节点无法加入集群。
yum install -y kubelet-<version> kubeadm-<version> kubectl-<version> --disable-gpg-check安装指定版本的kubelet、kubeadm、kubectl(如1.26.x),确保组件版本一致。kubeadm init --pod-network-cidr=<网络段>(如--pod-network-cidr=10.244.0.0/16,需与后续网络插件匹配),将生成的admin.conf复制至~/.kube/config,配置kubectl客户端访问集群。kubeadm join命令(包含Token和CA证书信息)将Worker节点加入集群,确保节点状态正常(kubectl get nodes显示Ready)。选择与Kubernetes版本兼容的网络插件(如Flannel、Calico),以Flannel为例,执行kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml安装,解决Pod间通信问题。若使用Calico,需调整内核参数(net.bridge.bridge-nf-call-iptables=1、net.ipv4.ip_forward=1),确保网络插件正常运行。
若遇到兼容性问题,通过以下命令查看日志定位根源:
journalctl -u kubelet -f:查看kubelet服务日志,获取节点状态异常信息;kubectl get pods --all-namespaces:查看Pod状态,定位未正常运行的Pod;kubectl describe pod <pod-name> -n <namespace>:查看Pod详细信息,获取错误原因(如镜像拉取失败、资源不足)。