在 CentOS 上加节点到 Kubernetes(k8s)集群,通常分为 主节点准备 → 新节点配置 → 加入集群 三步。下面以 kubeadm 管理的集群 为例(最常见)。
新节点(Node)需要满足:
在 Master 节点 执行:
kubeadm token create --print-join-command
输出示例:
kubeadm join 192.168.1.10:6443 \
--token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxx
⚠️ 如果 token 过期,可重新生成(默认 24 小时)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/swap/d' /etc/fstab
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
yum install -y containerd
systemctl enable --now containerd
(如使用 Docker):
yum install -y docker
systemctl enable --now docker
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
在 新节点 执行 Master 给的 join 命令:
kubeadm join 192.168.1.10:6443 \
--token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxx
在 Master 节点:
kubectl get nodes
看到新节点状态为 Ready 即成功。
journalctl -u kubelet -f
kubeadm token create --print-join-command
kubeadm reset
如果你用的是 特定版本 k8s(如 1.20 / 1.28) 或 特定网络插件(Calico / Flannel),可以告诉我,我可以给你更精确的命令。