Ubuntu Kubernetes 集群如何扩展
导读:Ubuntu Kubernetes 集群扩展指南 一 扩展方式总览 水平扩展:增加工作节点(Worker)以提升集群可调度容量与整体吞吐。 控制平面扩展:新增控制平面节点(Master)提升高可用与容灾能力。 工作负载扩展:通过 HPA/...
Ubuntu Kubernetes 集群扩展指南
一 扩展方式总览
- 水平扩展:增加工作节点(Worker)以提升集群可调度容量与整体吞吐。
- 控制平面扩展:新增控制平面节点(Master)提升高可用与容灾能力。
- 工作负载扩展:通过 HPA/VPA/Cluster Autoscaler 自动或手动调整应用副本数与节点规模。
二 准备新节点与基础检查
- 系统要求:建议使用 Ubuntu 20.04/22.04,内核参数与容器运行时一致,确保与现有节点网络互通。
- 基础配置:
- 关闭 swap:
sudo swapoff -a并在/etc/fstab中注释 swap 行。 - 主机名与解析:设置唯一 hostname,并在所有节点维护一致的 /etc/hosts 或使用 DNS。
- 时间同步:启用 NTP/chrony,避免证书与调度异常。
- 防火墙放行(示例以 UFW 为例,端口按实际 CNI/Service 调整):
- SSH:
sudo ufw allow 22/tcp - Kubelet API:
sudo ufw allow 10250/tcp - NodePort:
sudo ufw allow 30000:32767/tcp - Calico BGP:179/tcp;Typha:5473/tcp;VXLAN:4789/udp
- SSH:
- 关闭 swap:
- 安装组件:在新节点安装与集群版本一致的 containerd/kubelet/kubeadm(保持与控制面一致)。
三 使用 kubeadm 增加工作节点
- 在控制面节点生成加入命令(若 token 过期可重建):
kubeadm token create --print-join-command
- 在新节点执行输出的 kubeadm join 命令,加入成功后返回控制面查看:
kubectl get nodes -o wide
- 验证要点:新节点状态为 Ready,容器运行时与 kubelet 版本匹配,网络插件已覆盖新节点。
四 扩展控制平面高可用
- 前提:初始引导需配置 controlPlaneEndpoint(VIP 或 DNS:端口),并在
ClusterConfiguration中设置 certSANs 包含所有控制面与可能的节点名称/IP,以便证书与 API 访问正确签发与校验。 - 新增控制面节点步骤:
- 安装同版本组件并准备 kubeconfig/cert 目录。
- 使用带
--upload-certs的kubeadm init输出或kubeadm join ... --control-plane --certificate-key < key>加入为控制面节点。 - 加入后执行
kubectl get nodes与kubectl get pods -n kube-system,确认 kube-apiserver/etcd/controller-manager/scheduler 就绪。
- 提示:若早期未设置 controlPlaneEndpoint/certSANs,需按实际拓扑重新生成并分发证书后再扩容控制面。
五 工作负载与集群自动扩展
- 应用副本扩展(HPA):
- 示例(CPU 50% 阈值,副本 1–10):
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: my-app-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: my-app minReplicas: 1 maxReplicas: 10 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 50 - 应用:
kubectl apply -f hpa.yaml
- 示例(CPU 50% 阈值,副本 1–10):
- 节点自动扩缩(Cluster Autoscaler):
- 部署与云厂商对接的 ClusterAutoscaler,为节点池配置最小/最大节点数与扩缩策略,实现按需新增或回收节点。
- 垂直扩缩(VPA):
- 适用于单实例资源优化,结合 HPA 谨慎使用,避免与资源请求/限制冲突。
- 调度与污点容忍:
- 为新节点打标签并配置 nodeSelector/污点容忍,将特定负载调度到新节点或专用节点池。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Kubernetes 集群如何扩展
本文地址: https://pptw.com/jishu/753314.html
