K8S/ hpa分享

在 Kubernetes 中,HorizontalPodAutoscaler 自动更新工作负载资源 (例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。

hpa的使用本身还是很简单的

示例如下:

官网示例

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-apache
spec:
  selector:
    matchLabels:
      run: php-apache
  template:
    metadata:
      labels:
        run: php-apache
    spec:
      containers:
      - name: php-apache
        image: registry.k8s.io/hpa-example
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 500m
          requests:
            cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
  name: php-apache
  labels:
    run: php-apache
spec:
  ports:
  - port: 80
  selector:
    run: php-apache
bash 复制代码
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml

运行起来后,

bash 复制代码
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

--cpu-percent就是cpu使用率指标,超过就会自动扩容副本,更加详细的说明看官网对这里的算法解释
**官网说明**

增加负载去测试验证:

bash 复制代码
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"

观察:

bash 复制代码
kubectl get hpa php-apache --watch

停止负载后,pod会伸缩回来

相关推荐
ggaofeng12 小时前
k8s网络原理
网络·容器·kubernetes
老实巴交的麻匪13 小时前
(六)学习、实践、理解 CI/CD 与 DevOps:GitHub Actions 工作流实践
后端·云原生·自动化运维
向上的车轮19 小时前
云原生的12个要素是什么?
云原生
只因在人海中多看了你一眼1 天前
B.50.10.10-微服务与电商应用
微服务·云原生·架构
喂完待续1 天前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升
衍余未了1 天前
centos9 docker启动不起来,docker启动发生堵塞问题!
运维·docker·容器
我真的是大笨蛋1 天前
K8S-基础架构
笔记·云原生·容器·kubernetes
tianyuanwo1 天前
Docker Registry 实现原理、适用场景、常用操作及搭建详解
运维·docker·容器·registry
木二_1 天前
附050.Kubernetes Karmada Helm部署联邦及使用
容器·kubernetes·karmada·kubernetes联邦·集群联邦
wdxylb1 天前
Kubernetes实战系列(4)
云原生·容器·kubernetes