0
点赞
收藏
分享

微信扫一扫

K8S HPA:Pod 的自动水平扩展(yaml示例)


以下是一个 Kubernetes 中 Pod 的自动水平扩展示例,使用 Horizontal Pod Autoscaler(HPA)来根据 CPU 使用率自动调整 Pod 的副本数。

  1. 创建 Deployment:
    首先,创建一个 Deployment 对象,定义应用程序的容器和资源需求。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: example-app
  template:
    metadata:
      labels:
        app: example-app
    spec:
      containers:
        - name: example-container
          image: example/image:latest
          resources:
            limits:
              cpu: 500m
            requests:
              cpu: 200m

  1. 创建 Horizontal Pod Autoscaler (HPA):
    接下来,创建一个 HorizontalPodAutoscaler 对象,定义 Pod 的自动水平扩展规则。

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: example-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: example-deployment
  minReplicas: 1
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 50

在上述示例中,HPA 的目标是 Deployment “example-deployment”,它将根据 CPU 使用率自动调整 Pod 的副本数。设置了最小副本数为 1,最大副本数为 10。平均 CPU 使用率目标为 50%。

  1. 应用配置:
    应用上述 YAML 配置文件到 Kubernetes 集群,创建 Deployment 和 HPA 对象:

kubectl apply -f deployment.yaml
kubectl apply -f hpa.yaml

  1. 监视 HPA:
    使用以下命令来监视 HPA 的状态和自动扩展的情况:

kubectl get hpa
kubectl describe hpa example-hpa

通过这些命令,您可以查看 HPA 的当前状态、目标和当前副本数,以及根据 CPU 使用率的变化自动调整 Pod 的副本数。

  1. 测试自动扩展:
    模拟负载来触发自动扩展。可以使用工具如 heyab 或自定义脚本来发送请求到应用程序,以增加 CPU 使用率。

hey -c 10 -z 30s http://example-app

根据负载的增加,HPA 将监测 CPU 使用率,并根据定义的规则自动扩展 Pod 的副本数。

以上是一个基本的 Kubernetes Pod 的自动水平扩展示例。您可以根据自己的需求和环境进行调整和扩展,例如根据其他指标(如内存使用率)进行自动扩展,或者调整 HPA 的配置参数。


举报

相关推荐

0 条评论