在 Debian 上把新节点加入 Kubernetes 集群,通常分 kubeadm 方式 和 手动/其他工具方式。下面以最常见的 kubeadm + Debian 为例说明。
新节点需要满足:
在 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 过期,可重新生成
kubeadm token create --ttl 2h
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
把 Master 上生成的 kubeadm join 命令在新节点执行:
sudo kubeadm join 192.168.1.10:6443 \
--token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxx
成功后会看到:
This node has joined the cluster
kubectl get nodes
如果状态是 NotReady:
kubectl label node node-name node-role.kubernetes.io/worker=
kubeadm token create/etc/hostname如果你用的是 Debian + RKE / k3s / 云厂商 K8s,可以告诉我具体环境,我可以给你对应方式。