在 CentOS 上集成 Kubernetes 的标准做法
在 CentOS 7/8 上,业界主流做法是以 kubeadm 快速搭建集群,配合 containerd(或 Docker)作为容器运行时,完成系统预检、组件安装、初始化控制平面、部署 CNI 网络插件 与节点加入,最终用 kubectl 验证集群可用性。
一、环境与前置准备
setenforce 0;永久禁用:编辑 /etc/selinux/config 将 SELINUX 设为 disabled。swapoff -a 并注释 /etc/fstab 中的 swap 行。modprobe br_netfilterecho '1' > /proc/sys/net/bridge/bridge-nf-call-iptablesecho '1' > /proc/sys/net/ipv4/ip_forwardsystemctl stop/disable firewalld);生产环境应按需放行端口(如 6443、10250 等)。二、安装容器运行时与 Kubernetes 组件
yum install -y yum-utils && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum install -y containerd.iocontainerd config default | tee /etc/containerd/config.toml && systemctl enable --now containerdyum install -y docker-ce docker-ce-cli containerd.iosystemctl enable --now dockercat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearchenabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgEOFyum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes && systemctl enable --now kubelet。三、初始化控制平面与加入工作节点
kubeadm init --apiserver-advertise-address=<MASTER_IP> --pod-network-cidr=10.244.0.0/16--image-repository=registry.aliyuncs.com/google_containersmkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configkubeadm token create --print-join-command 重新生成加入命令。四、部署 CNI 网络插件与验证
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yamlkubectl get nodes(状态应为 Ready)kubectl get pods -A(系统组件与 CNI Pod 均为 Running)。五、生产注意事项与常见问题