Ubuntu Kubernetes集群扩容步骤是什么
导读:Ubuntu Kubernetes 集群扩容步骤 一 前置检查与网络准备 新节点与现有集群处于同一 VPC/局域网,可互通;在云上需放行关键端口:TCP 6443、2379-2380、10250-10252,UDP 8472(Flanne...
Ubuntu Kubernetes 集群扩容步骤
一 前置检查与网络准备
- 新节点与现有集群处于同一 VPC/局域网,可互通;在云上需放行关键端口:TCP 6443、2379-2380、10250-10252,UDP 8472(Flannel VXLAN),并尽量使用 内网 IP 通信。
- 主机名唯一,建议设置 /etc/hosts 做静态解析;时间同步(如 Asia/Shanghai)。
- 关闭 Swap:swapoff -a 并注释 /etc/fstab 中的 swap 行;内核参数启用桥接转发:net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1、net.ipv4.ip_forward=1。
- 容器运行时建议使用 Containerd(Ubuntu 22.04 推荐),并启用 SystemdCgroup=true。
二 在新节点安装并启动容器运行时与 kubelet
- 安装 Containerd 并启用 SystemdCgroup:
- apt update & & apt install -y containerd
- containerd config default | tee /etc/containerd/config.toml
- sed -i ‘s/SystemdCgroup = false/SystemdCgroup = true/’ /etc/containerd/config.toml
- systemctl restart containerd & & systemctl enable containerd
- 安装 kubeadm/kubelet/kubectl(保持与集群版本一致,示例为 1.28.2):
- apt update & & apt install -y kubelet=1.28.2-00 kubectl=1.28.2-00 kubeadm=1.28.2-00
- apt-mark hold kubelet kubectl kubeadm
- systemctl enable kubelet & & systemctl start kubelet
- 注意:kubelet 启动初期会不断重启,待成功加入集群后状态将稳定。
三 获取加入命令并扩容 Worker 节点
- 在主节点获取加入命令与哈希(若命令已过期需重建):
- 查看 token:kubeadm token list(若没有或过期,执行 kubeadm token create)
- 获取 CA 证书哈希:
- openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2> /dev/null | openssl dgst -sha256 -hex
- 在新节点执行 join(使用主节点内网 IP 与端口 6443):
- kubeadm join < MASTER_IP> :6443 --token --discovery-token-ca-cert-hash sha256:
- 主节点验证:kubectl get nodes,等待新节点状态变为 Ready。
四 扩容控制平面 Master 节点(高可用场景)
- 前提:已有 3+ 节点 的 etcd/控制面集群;新节点安装同版本 kubelet/kubeadm 并配置好容器运行时。
- 在主节点生成并分发证书(或拷贝现有 CA/配置),然后在新 Master 节点执行:
- kubeadm join < MASTER_IP> :6443 --token --discovery-token-ca-cert-hash sha256: --control-plane
- 如部署了 Nginx/HAProxy 等负载均衡,需将新 Master 加入后端池并验证 vIP/健康检查。
- 验证:kubectl get nodes 与 kubectl get pods -n kube-system,确认新 Master 组件 Running。
五 验证与常见问题处理
- 快速验证:
- kubectl get nodes(状态应为 Ready)
- kubectl get pods -n kube-system(核心组件 Running)
- 部署测试应用:kubectl create deployment nginx --image=nginx:1.25 & & kubectl expose deployment nginx --port=80 --type=NodePort
- 常见问题:
- 节点 NotReady:检查 CNI 网络插件 是否已安装(如 Flannel:kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml)。
- kubeadm join 失败:确认 token 未过期、CA 哈希正确、6443/10250 等端口开放、以及 SystemdCgroup 一致。
- 节点污点导致调度受限:kubectl describe node 查看 Taints;必要时 kubectl taint nodes node- 移除污点。
- 节点维护前可先 cordon 避免新 Pod 调度:kubectl cordon ;维护完成后 uncordon:kubectl uncordon 。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Kubernetes集群扩容步骤是什么
本文地址: https://pptw.com/jishu/775752.html
