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会伸缩回来

相关推荐
原神启动15 小时前
K8S(七)—— Kubernetes Pod 基础概念与实战配置
云原生·容器·kubernetes
我的golang之路果然有问题5 小时前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka
牛奔5 小时前
Docker 容器无法停止的排障与解决全过程
运维·docker·云原生·容器·eureka
赵文宇(温玉)5 小时前
Docker的生态与商业化
docker·容器·eureka
不想画图5 小时前
Kubernetes(五)——rancher部署和Pod详解
linux·kubernetes·rancher
大都督老师5 小时前
配置 containerd 使用镜像加速器拉取 Docker Hub 镜像
容器·kubernetes·k8s
zyu6714 小时前
03-Docker存储和网络
网络·docker·容器
牛奔15 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
木童66216 小时前
Kubernetes 操作管理完全指南:从陈述式到声明式,覆盖全生命周期
云原生·容器·kubernetes
不想画图17 小时前
Kubernetes(三)——组网概念和基础操作指令
云原生·容器·kubernetes