Ubuntu Kubernetes集群扩展主要有**水平扩展(增加节点)和垂直扩展(增加节点资源)**两种方式,具体方法如下:
一、水平扩展(增加节点)
-
准备新节点
- 安装Ubuntu系统,确保满足Kubernetes最低硬件要求(如内存、CPU)。
- 安装Docker和Kubernetes组件(
kubeadm、kubelet、kubectl)。
-
加入集群
- 在主控节点执行
kubeadm token create --print-join-command,获取加入命令。 - 在新节点执行该命令,指定主控节点IP、端口及token(如
sudo kubeadm join 192.168.1.100:6443 --token abc123 --discovery-token-ca-cert-hash sha256:xxx)。 - 验证节点状态:在主控节点运行
kubectl get nodes,确认新节点状态为“Ready”。
- 在主控节点执行
-
配置网络插件(可选)
- 若使用Calico/Flannel等CNI插件,需在新节点上部署对应配置(如
kubectl apply -f calico.yaml)。
- 若使用Calico/Flannel等CNI插件,需在新节点上部署对应配置(如
二、垂直扩展(增加节点资源)
-
修改节点资源参数
- 编辑节点的kubelet配置文件(通常位于
/var/lib/kubelet/config.yaml),调整cpuManagerPolicy或memoryManagerPolicy等参数。
- 编辑节点的kubelet配置文件(通常位于
-
重启节点使配置生效
- 执行
sudo systemctl restart kubelet重启节点。
- 执行
三、自动扩展(推荐)
-
Horizontal Pod Autoscaler (HPA)
- 为Deployment或StatefulSet创建HPA,根据CPU/内存利用率自动扩缩Pod数量。
- 示例命令:
kubectl autoscale deployment my-app --cpu-percent=50 --min=1 --max=10
-
Cluster Autoscaler(集群自动扩缩)
- 部署Cluster Autoscaler组件,根据未调度Pod的资源需求自动添加或移除节点(需云厂商支持或手动管理节点)。
注意事项
- 水平扩展需确保新节点与集群网络互通,且已安装相同版本的Kubernetes组件。
- 垂直扩展需谨慎操作,避免资源分配不合理导致节点不稳定。
- 生产环境建议结合HPA和集群自动扩缩实现动态资源管理。
参考来源: