Pod扩容和缩容
Pod 的扩容和缩容操作有手动和自动两种模式,手动模式通过执行 kubectl scale
命令对一个 Deployment/RC
进行 Pod 副本数量设置。自动模式则需要用户根据某个性能指标或者自定义业务指标 Pod 副本数量的范围,系统将自动在这个范围内根据性能指标 进行调整。
一、手动扩容和缩容
1 | 将Deployment nginx数量提升到5个 |
二、自动扩容和缩容
Horizontal Pod Autoscaler( HPA)
,用于实现基于 CPU 使用率进行自动 Pod 扩容和缩 的功能。HPA制器基于 Master的kube-controller-manager
服务启动参数 horizontal- pod-autoscaler-sync-period
定义义的时长(默值为 30s )周期性检测目标 Pod的CPU使用率 井在满足条件时对 ReplicationController
或Deployment
中的 Pod 副本数量进行调整,以符合 户定义的 Pod CPU 使用率。 Pod CPU使用率来源于 Heapster 组件 所以需要预先安装好 Heapster
创建HPA 使用 kubectl autoscale
者使 yaml
件进行创建。创建HPA 之前,需要己经存在一个 Deployment/RC ,Deployment/RC 中的 Pod必指定 resources.requests.cpu
资源请求 ,如果不设置该值,则 Heapster
无法采集Pod CPU 使用情况,会导致HPA无法正常工作
创建一个deployment:
1 | #php-apache-deployment.yaml |
创建一个Service
1 | apiVersion: vl |
为Deployment创建一个HPA控制器,在1和10之间调整Pod的副本数量使PodCPU维持在50%
1 | kubectl autoscale deployment php-apache --min=l --max=lO --cpu-percent=50 |
通过yaml文件创建HPA:
1 | #hpa-php-apache.yaml |
创建:
1 | kubectl create -f hpa-php-apache.yaml |
查看:
1 | kubectl get hpa |
