在 Ubuntu 上扩展 Kubernetes 节点的实操指南
一 规划与前置检查
二 在新节点上安装与初始化
sudo swapoff -asudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstabsudo modprobe overlay && sudo modprobe br_netfiltersudo tee /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.ipv4.ip_forward=1 EOF && sudo sysctl --systemsudo apt-get update && sudo apt-get install -y containerdsudo containerd config default | sudo tee /etc/containerd/config.toml && sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.tomlsudo systemctl enable --now containerdsudo apt-get update && sudo apt-get install -y apt-transport-https curl && curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl && sudo apt-mark hold kubelet kubeadm kubectlsudo systemctl enable --now kubelet三 将节点加入集群
kubeadm token create --print-join-command(一次性 token 与 –discovery-token-ca-cert-hash)--control-plane 参数以新增 master 节点。kubectl get nodes -o wide,确认新节点状态为 Ready。四 节点就绪后的常用配置
kubectl label nodes <node-name> node-role.kubernetes.io/worker=kubectl taint nodes <node-name> key=value:NoSchedule;在 Pod 上配置相应 tolerations。nodeSelectornodeAffinitypodAntiAffinity(提升高可用分布)kubectl create deployment nginx --image=nginx --replicas=2kubectl get pods -o wide五 批量扩展与常见问题
kubectl get nodes 校验。