k8s-HPA自动扩缩容
2021/12/3 23:21:38
本文主要是介绍k8s-HPA自动扩缩容,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
生产环境中我们经常会遇见服务器资源不够的情况,如果是以往的扩容方式步骤十分繁琐,如果是在k8s集群里面那,那就十分简单了,只要资源池中的资源足够,那么就可以在很短的时间里对pod进行扩容,解决资源不足的情况,在这里介绍k8s的hpa自动扩缩容。
一、配置HPA
1、部署 metrics-server
git clone https://github.com/kubernetes-incubator/metrics-server.git 修改默认的启动命令: vim metrics-server-deployment.yaml 添加以下几行: command: - /metrics-server - --kubelet-insecure-tls - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
cd metrics-server/deploy kubectl create -f metrics-server-deployment.yaml #查看容器是否创建成功 kubectl get pods -n kube-system
2、创建测试实例
#以php-apache rc为例,设置cpu request为200m,未设置limit的值: vim php-apache-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: php-apache spec: replicas: 1 template: metadata: name: php-apache labels: app: php-apache spec: containers: - name: php-apache image: gcr.io/google_containers/hpa-example resources: requests: cpu: 200m ports: - containerPort: 80 #创建pod kubectl create -f php-apache-rc.yaml #创建php-apache的service vim php-apache-svc.yaml apiVersion: v1 kind: Service metadata: name: php-apache spec: ports: - port: 80 selector: app: php-apache #创建service kubectl create -f php-apache-svc.yaml
二、创建HPA
1、使用命令
kubectl autoscale rc php-apache --min=1 --max=10 --cpu-percent=50
2、使用yaml文件创建实例
vim hpa-php-apache.yaml apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: php-apache spec: scaleTargetRef: apiVersion: v1 kind: ReplicationController name: php-apache minReplicas: 1 maxReplicas: 10 targetCPUUtilizationPercentage: 50 #创建pod kubectl create -f hpa-php-apache.yaml #查看创建的hpa kubectl get hpa
查看创建的hpa
kubectl get hpa
查看状态
kubectl describe hpa php-apache
动态查看
kubectl get hpa -w
3、创建一个压力测试实例
vim busybox-pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: containers: - name: busybox image: busybox command: [ "sleep", "3600" ] #创建pod kubectl create -f busybox-pod.yaml #登录busybox实例,执行一个无限循环的wget命令访问php-apache kubectl exec -it busybox – sh #执行一下命令进行测试 while true; do wget -q -O- http://php-apache >/dev/null;done #过一段时间后,观察hpa
然后再查看pod 副本个数的变化
最后我们停止压力测试,观察HPA的变化
查看php-apache pod副本数量
恢复到开始时的状态。
这篇关于k8s-HPA自动扩缩容的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08云原生周刊:Kubernetes v1.30 发布 | 2024.4.22
- 2024-05-08云原生周刊:K8s 中的服务和网络 | 2024.4.29
- 2024-03-29kubernetes crashloopbackoff
- 2024-03-13ubuntu install kubernetes
- 2024-03-07k8s coredns containercreating
- 2024-03-04k8s for dummies
- 2024-03-01pulumi kubernetes operator
- 2024-02-06云原生周刊:K8s 1.26 到 1.29 版本的更新 | 2024.1.29
- 2024-01-24K8s集群CoreDNS监控告警最佳实践
- 2024-01-23OpenKruise :Kubernetes背后的托底