k8s高级调度--HPA
简绍:
通过Metrics server组件来收集pod和node上的度量指标,HPA也是通过Metrics server组件的指标来实现的水平扩缩容,HPA主要通过观察Metrics server上报的数据来做出相应的扩容或者缩容动作,扩缩容指标为CPU和内存使用率
验证:
创建deploy资源测试
kind: Deployment
metadata:
name: nginx-deployment-basic
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
# nodeSelector:
# env: test-team
containers:
- name: nginx
image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
ports:
- containerPort: 80
resources:
limits:
cpu: "500m"
requests:
cpu: "10m"
创建svc
kubectl expose deployment nginx-deployment-basic --port 80
创建HPA
kubectl autoscale deploy nginx-deployment-basic --cpu-percent=10 --min=1 --max=10 #--cpu-percent 超过指标的百分比会触发扩容,上述参数表示cpu超过10%会触发扩容,最小扩容1个pod,最大扩容10个pody
查看HPA状态

压测验证:

观察hpa的状态和pod的数量

pod扩容触发正常,在配置hpa的时候,也需要关注k8s集群的资源使用情况,保证pod触发hpa后资源池足够运行扩容的资源,pod状态pending,大概率是资源不足导致的,

停掉压测循环看下缩容情况

稍等几分钟会pod副本会缩容到hpa的min副本数,刚开始创建deploy的时候我们配置的是俩个副本,所以,hpa资源的最小副本数要根据线上环境所需的副本数来配置


浙公网安备 33010602011771号