在Debian系统下向Kubernetes集群添加节点的步骤
hostnamectl设置主机名(如k8s-worker01),并在所有节点的/etc/hosts文件中添加节点IP与主机名的映射(例如:192.168.1.100 k8s-worker01),确保节点间能通过主机名解析。kubelet运行异常。执行以下命令:sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | 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
kubeadm init),可直接获取加入命令;若未初始化,需先执行kubeadm init初始化集群。生成Join命令的步骤如下:sudo kubeadm token create --print-join-command
输出结果类似:sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:186e7256966f0e2b3485a3b3ab15a0f1357195745e3d2fa6e9f386cfc24ecc5d
注意:若Token过期,可在主节点上重新生成:sudo kubeadm token create
sudo kubeadm certs certificate-key
kubeadm join命令粘贴到新节点的终端,执行该命令。执行过程中,系统会自动下载集群配置、加入集群并完成节点注册。sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:186e7256966f0e2b3485a3b3ab15a0f1357195745e3d2fa6e9f386cfc24ecc5d
kubectl命令查看集群中的节点列表,新节点应显示为Ready状态(表示已成功加入并准备好接收Pod调度):kubectl get nodes
输出示例:NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 1d v1.23.0
k8s-worker01 Ready <none> 10m v1.23.0
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml