美文网首页
k8s hpa使用简单记录

k8s hpa使用简单记录

作者: wwq2020 | 来源:发表于2023-12-27 11:13 被阅读0次

环境准备

部署metric-server参考https://www.jianshu.com/p/f4e1a2665c83

测试

创建负载yaml

创建nginx.yaml,内容如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 20m
            memory: 50Mi
          requests:
            cpu: 20m
            memory: 50Mi
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

创建负载

kubectl apply -f nginx.yaml

创建hpa yaml

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: nginx
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx
  minReplicas: 1
  maxReplicas: 10
  behavior:
    scaleDown:
      stabilizationWindowSeconds: 60
      selectPolicy: Max
      policies:
      - type: Pods
        value: 1
        periodSeconds: 15
      - type: Percent
        value: 20
        periodSeconds: 15
    scaleUp:
      stabilizationWindowSeconds: 0
      selectPolicy: Max
      policies:
      - type: Pods
        value: 3
        periodSeconds: 15
      - type: Percent
        value: 100
        periodSeconds: 15
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 10

创建hpa

kubectl apply -f hpa.yaml

创建压测pod

kubectl run bench --rm --image=busybox -it -- sh

执行压测

while true;do wget -q -O /dev/null nginx; done;

验证

等待一段时间,查看nginx pod

kubectl get pod -l app=nginx

提示

housekeeping_interval默认是10秒最大15秒(即cadvisor采集指标间隔),可以通过--housekeeping-interval调整
metric-resolution默认60秒(即metric-server采集kubelet指标间隔),可以通过metric-server的--metric-resolution=15s调整
--horizontal-pod-autoscaler-sync-period默认15秒(即hpa资源调协的间隔),可以通过controller-manager的--horizontal-pod-autoscaler-sync-period=10s调整
即默认最短需要等待85秒

相关文章

网友评论

      本文标题:k8s hpa使用简单记录

      本文链接:https://www.haomeiwen.com/subject/shurndtx.html