飞浪网站建设,个人投资公司注册条件,googleapis wordpress,厦门软件开发工资一般多少水平自动扩容和缩容HPA
HPA全称Horizontal Pod Autoscaler#xff0c;即pod水平自动伸缩。HPA可以基于CPU利用率对replication controller、deployment和replicaset中的pod数量进行自动扩缩容#xff08;除了CPU利用率#xff0c;也可以基于其他应用程序提供的度量指标cust…水平自动扩容和缩容HPA
HPA全称Horizontal Pod Autoscaler即pod水平自动伸缩。HPA可以基于CPU利用率对replication controller、deployment和replicaset中的pod数量进行自动扩缩容除了CPU利用率也可以基于其他应用程序提供的度量指标custom metrics进行自动扩缩容。
pod自动缩放不适用于无法缩放的对象比如daemonsets。
HPA由kubernetes api资源和控制器实现。资源决定了控制器的行为。控制器辉周期性的获取目标资源指标并于目标值比较后来调整pod副本数量。
创建测试Deployment vi php-apache.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: php-apache
spec:selector:matchLabels:run: php-apachereplicas: 1template:metadata:labels:run: php-apachespec:containers:- name: php-apacheimage: aminglinux/hpa-exampleports:- containerPort: 80resources:limits:cpu: 500m ##限制Pod CPU资源最多使用500mrequests:cpu: 200m ##K8s要保证Pod使用的最小cpu资源为200m
---
apiVersion: v1
kind: Service
metadata:name: php-apachelabels:run: php-apache
spec:ports:- port: 80selector:run: php-apache安装merics-server通过它才能获取到具体的资源使用情况 下载yaml文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21.yaml修改YAML文件 vi high-availability-1.21.yaml 将image: k8s.gcr.io/metrics-server/metrics-server:v0.6.2 修改为 image: aminglinux/metrics-server:v0.6.2 在image: 这行上面增加一行: - --kubelet-insecure-tls
创建HPA vi hpa-php-apache.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:name: php-apache
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: php-apacheminReplicas: 1 ##最小Pod数为1maxReplicas: 10 ##最大Pod数为10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50 ##当Pod的CPU使用率超过50%时需要自动扩容模拟负载变动查看扩缩容
再开一个终端执行
kubectl run -i --tty load-generator --rm --imagebusybox:1.28 --restartNever -- /bin/sh -c while sleep 0.01;do wget -q -O- http://php-apache;done回到原终端查看HAP和po
kubectl get deployment,po,hpa|grep -E NAME|php-apache
#php-apache pod副本会逐渐增加hpa的tagets列cpu使用率会越来越高当超50%就会生成新pod副本