centos上k8s集群扩展有哪些方法
CentOS上K8s集群扩展的主要方法
在CentOS系统上扩展Kubernetes(K8s)集群,主要围绕节点层级扩缩(增加/移除节点)和工作负载层级扩缩(调整Pod数量/资源)展开,同时可结合自动扩缩机制实现动态调整。以下是具体方法:
一、节点层级扩展(物理/虚拟节点增减)
节点层级扩展是通过增减集群中的计算节点,提升集群整体资源容量,适用于应对大规模业务增长。
1. 水平扩展(添加工作节点)
步骤:
- 准备新节点:
新建CentOS服务器/虚拟机,满足K8s最低硬件要求(如CPU≥2核、内存≥2GB);安装Docker或其他容器运行时(如yum install -y docker);关闭防火墙(systemctl stop firewalld)、SELinux(setenforce 0)、swap分区(swapoff -a);配置主机名(hostnamectl set-hostname < node-name>)及/etc/hosts文件(确保节点间域名解析正确);同步时间(yum install -y chrony & & systemctl enable --now chronyd)。 - 获取集群加入凭证:
在Master节点上运行kubeadm token create --print-join-command,获取包含token和discovery-token-ca-cert-hash的kubeadm join命令(如kubeadm join 192.168.1.100:6443 --token abcdef.1234567890 --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)。 - 新节点加入集群:
在新节点上执行上述kubeadm join命令,等待节点状态变为Ready(可通过kubectl get nodes验证)。 - 部署网络插件(若未安装):
若集群未安装CNI网络插件(如Calico),需在新节点上部署(如kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml),确保Pod间网络互通。
2. 垂直扩展(增加节点资源)
说明:通过调整节点硬件配置(如增加CPU、内存)提升单个节点的处理能力,需硬件支持且可能涉及节点重启。
步骤:
- 编辑节点的kubelet配置文件(通常位于
/var/lib/kubelet/config.yaml),调整cpuManagerPolicy(如设置为static以支持静态CPU分配)或资源限制; - 重启kubelet服务使配置生效(
systemctl restart kubelet)。
二、工作负载层级扩展(Pod数量/资源调整)
工作负载层级扩展是通过调整Pod的副本数量或资源配额,提升应用的处理能力,适用于应对流量波动或性能瓶颈。
1. 手动扩缩(调整副本数量)
- 调整Deployment副本数:
使用kubectl scale命令手动增加/减少Deployment的Pod副本数(如将my-app-deployment的副本数从3扩展到5):kubectl scale deployment my-app-deployment --replicas=5 - 调整StatefulSet副本数:
对于有状态应用(如数据库),可使用kubectl scale调整StatefulSet的副本数(如将my-statefulset的副本数从2扩展到4):kubectl scale statefulset my-statefulset --replicas=4
2. 自动扩缩(动态调整)
-
Horizontal Pod Autoscaler(HPA):
根据Pod的CPU/内存使用率自动调整副本数,适用于无状态应用。
步骤:
① 确保集群已安装Metrics Server(用于收集资源指标,kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml);
② 创建HPA资源(如为my-app-deployment设置:当CPU使用率超过50%时,自动扩展副本数至最多10个,最少1个):kubectl autoscale deployment my-app-deployment --cpu-percent=50 --min=1 --max=10③ 验证HPA状态:
kubectl describe hpa my-app-deployment。 -
Vertical Pod Autoscaler(VPA):
根据Pod的资源使用情况自动调整容器的CPU/内存请求(Request),适用于优化资源利用率。
说明:VPA需单独安装(kubectl apply -f https://github.com/kubernetes/autoscaler/releases/latest/download/vertical-pod-autoscaler.yaml),支持Auto(自动调整)、Recreate(重启Pod更新资源)、Initial(仅创建时设置)等模式。
三、自动扩缩集群基础设施(Cluster Autoscaler)
当工作负载层级扩缩(HPA/VPA)触发Pod数量增加,但现有节点资源不足时,Cluster Autoscaler会自动添加新节点;当节点资源闲置时,自动移除节点,实现集群规模的动态调整。
说明:需安装Cluster Autoscaler(如通过Helm安装:helm repo add autoscaler https://kubernetes.github.io/autoscaler &
&
helm install cluster-autoscaler autoscaler/cluster-autoscaler),并根据集群配置调整参数(如最小/最大节点数)。
以上方法覆盖了CentOS上K8s集群扩展的核心场景,可根据业务需求选择手动或自动方式,结合节点层级与工作负载层级的扩缩,实现集群的高效扩展。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上k8s集群扩展有哪些方法
本文地址: https://pptw.com/jishu/739374.html
