在 CentOS 上使用 kubeadm 部署 Kubernetes 集群
一 环境准备
swapoff -a 并注释 /etc/fstab 中的 swap 行。setenforce 0,永久修改 /etc/selinux/config 为 SELINUX=permissive)。systemctl stop/disable firewalld);生产环境请改为精细化放行 6443、10250、2379/2380、10251/10252、8472/4789(VXLAN) 等端口。二 安装容器运行时
yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum install -y docker-ce docker-ce-cli containerd.iosystemctl enable --now dockermkdir -p /etc/docker && tee /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://mirrors.aliyuncs.com"] } EOFsystemctl daemon-reload && systemctl restart dockeryum 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.tomlsystemctl enable --now containerd--cri-socket unix:///run/containerd/containerd.sock 指定。三 安装 kubeadm kubelet kubectl
cat <<EOF >/etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/doc/rpm-package-key.gpgEOFyum install -y kubelet kubeadm kubectl --disableexcludes=kubernetessystemctl enable --now kubelet四 初始化 Master 节点
kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containerskubeadm init --apiserver-advertise-address=<MASTER_IP> --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12kubeadm init --control-plane-endpoint="<VIP_or_DNS:6443>" --upload-certs --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml五 加入 Worker 节点与验证
kubeadm token list(若过期)kubeadm token create --print-join-commandkubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>kubectl get nodes(应为 Ready)kubectl get pods -A(所有 Pod 应为 Running)kubeadm config images pull。/var/log/messages 与容器运行时日志,确认 CNI 已成功配置网络接口。