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-12-23云原生周刊:利用 eBPF 增强 K8s
- 2024-12-20/kubernetes 1.32版本更新解读:新特性和变化一目了然
- 2024-12-19拒绝 Helm? 如何在 K8s 上部署 KRaft 模式 Kafka 集群?
- 2024-12-16云原生周刊:Kubernetes v1.32 正式发布
- 2024-12-13Kubernetes上运行Minecraft:打造开发者平台的例子
- 2024-12-12深入 Kubernetes 的健康奥秘:探针(Probe)究竟有多强?
- 2024-12-10运维实战:K8s 上的 Doris 高可用集群最佳实践
- 2024-12-022024年最好用的十大Kubernetes工具
- 2024-12-02OPA守门人:Kubernetes集群策略编写指南
- 2024-11-26云原生周刊:K8s 严重漏洞