本文主要是介绍K8S/ hpa分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在 Kubernetes 中,HorizontalPodAutoscaler 自动更新工作负载资源 (例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。
hpa的使用本身还是很简单的
示例如下:
官网示例
apiVersion: apps/v1
kind: Deployment
metadata:name: php-apache
spec:selector:matchLabels:run: php-apachetemplate:metadata:labels:run: php-apachespec:containers:- name: php-apacheimage: registry.k8s.io/hpa-exampleports:- containerPort: 80resources:limits:cpu: 500mrequests:cpu: 200m
---
apiVersion: v1
kind: Service
metadata:name: php-apachelabels:run: php-apache
spec:ports:- port: 80selector:run: php-apache
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
运行起来后,
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
–cpu-percent就是cpu使用率指标,超过就会自动扩容副本,更加详细的说明看官网对这里的算法解释
**官网说明**
增加负载去测试验证:
kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
观察:
kubectl get hpa php-apache --watch
停止负载后,pod会伸缩回来
这篇关于K8S/ hpa分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!