首页主机资讯Ubuntu Kubernetes集群扩容步骤是什么

Ubuntu Kubernetes集群扩容步骤是什么

时间2025-12-19 01:24:05发布访客分类主机资讯浏览825
导读:Ubuntu Kubernetes 集群扩容步骤 一 前置检查与网络准备 新节点与现有集群处于同一 VPC/局域网,可互通;在云上需放行关键端口:TCP 6443、2379-2380、10250-10252,UDP 8472(Flanne...

Ubuntu Kubernetes 集群扩容步骤

一 前置检查与网络准备

  • 新节点与现有集群处于同一 VPC/局域网,可互通;在云上需放行关键端口:TCP 6443、2379-2380、10250-10252UDP 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
Debian系统中Node.js内存泄漏如何解决 Ubuntu Kubernetes版本兼容性问题如何解决

游客 回复需填写必要信息