随笔 - 378  文章 - 0  评论 - 5  阅读 - 6085

k8s扩容Worker节点

Kubernetes高可用集群:扩容Worker节点实战指南

在Kubernetes高可用集群中,Worker节点承担着实际业务容器的运行任务。与单Master集群不同,高可用集群的Master节点采用多副本+负载均衡架构,这使得Worker节点的加入流程需要关注一些特殊细节。以下是经过生产环境验证的标准操作流程:


一、核心原理图解


所有Worker节点通过负载均衡器与Master集群通信,避免单点故障。


二、标准操作流程(生产级)

1. 节点基础环境配置

  • 系统一致性
    • 操作系统版本、内核版本需与现有集群一致(推荐CentOS 7.9/Ubuntu 20.04 LTS)
    • 禁用swap:swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
  • 容器运行时
    # Docker示例(版本需与集群匹配)
    yum install -y docker-ce-20.10.12
    systemctl enable docker && systemctl start docker
    
  • 安装K8S组件
    yum install -y kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5
    systemctl enable kubelet
    

2. 获取集群接入信息

  • 负载均衡器地址
    • 记录VIP地址(如:192.168.100.100:6443)
    • 生产环境建议使用DNS名称(如:k8s-api.example.com)
  • 生成接入令牌(Master节点操作):
    # 生成24小时有效令牌
    kubeadm token create --ttl 24h --print-join-command
    
    # 获取CA证书哈希(证书变更后需更新)
    openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex
    

3. 执行节点加入命令

kubeadm join k8s-api.example.com:6443 \
  --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:你的证书哈希值

生产注意

  • 使用内网流量避免暴露控制平面
  • 通过Ansible等工具批量执行时需加密敏感信息
  • 建议将命令写入初始化脚本进行版本管理

4. 节点状态验证与管理

  • 检查加入状态
    kubectl get nodes -o wide
    kubectl describe node <节点名称>
    
  • 节点标签管理(按业务需求):
    kubectl label nodes node01 disktype=ssd region=cn-east
    

三、生产环境进阶配置

1. 安全加固实践

  • 替代Token认证
    • 使用kubeconfig文件加入(更细粒度控制)
    kubeadm join --config worker-config.yaml
    
  • 网络策略
    • 开放Worker与Master的6443、10250端口
    • 使用Calico等CNI插件时确保BGP端口通畅

2. 自动化运维方案

  • 使用Terraform+Ansible
    # Terraform示例片段
    resource "null_resource" "join_cluster" {
      provisioner "local-exec" {
        command = "ansible-playbook join-cluster.yaml"
      }
    }
    
  • 自定义Kubelet配置
    # /var/lib/kubelet/config.yaml
    serializeImagePulls: false
    maxPods: 150
    

3. 常见问题排查

  • 证书过期
    • 报错提示:x509: certificate has expired or is not yet valid
    • 解决方案:同步节点时间(部署NTP服务)
  • 网络连通性
    # 诊断命令
    curl -k https://<LB_IP>:6443/version
    telnet <LB_IP> 6443
    
  • 组件日志查看
    journalctl -u kubelet -f
    tail -f /var/log/pods/kube-system_kube-proxy-*/kube-proxy/*.log
    

四、架构设计建议

  1. 节点分组策略
    • 按机型划分:物理机组/虚拟机组/GPU节点组
    • 按业务划分:中间件节点/计算密集型节点
  2. 容量规划标准
    • 预留至少30% CPU、内存资源应对突发流量
    • 单个节点建议不超过128核/256GB内存(避免资源碎片)

通过以上标准化流程,您可以安全高效地实现高可用集群的动态扩容。建议结合监控系统(Prometheus+Granfana)实时观察新节点资源利用率,确保集群健康稳定运行。

posted on   Leo-Yide  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示