0

我想知道是否有人能够帮助我理解我在这里做错了什么。我的命名空间中有 3 个部署,每个部署都配置了一个 Horizo​​ntal Pod Autoscaler。然而,尽管每个 HPA 都配置了各自部署的目标,但它们似乎都对相同的 CPU 指标做出反应

$ kubectl get hpa -n my-namespace
NAME       REFERENCE         TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
app1-hpa   Deployment/app1   54%/100%   2         5         5          11h
app2-hpa   Deployment/app2   54%/100%   10        40        39         11h
app3-hpa   Deployment/app3   54%/100%   10        50        39         11h

在我的示例中,app3 是唯一一个忙碌的,但是如果您查看 TARGETS 列,所有 3 个 HPA 的利用率百分比计算相同,因此它们都已按比例放大...例如 app1,即完全空闲(每个 pod 仅使用 1m 的 cpu)已扩展到 5,因为该指标表明它处于 54%/100% ....

我试图实现的是,每个 HPA 仅对其配对的部署的 CPU 指标做出反应。因此在上面的例子中,app1 显然会停留在 2 个实例上

我的 HPA 配置如下所示(以下是 app1 的示例)

---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: app1-hpa
  namespace: my-namespace
spec:
  maxReplicas: 5
  minReplicas: 2
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: app1
  targetCPUUtilizationPercentage: 100

这是 app1 的部署代码(app2 和 app3 名称相同)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app1
  labels:
    app: my-namespace
spec:
  replicas: 2
  selector:
    matchLabels:
      app: app
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: app
    spec:
      imagePullSecrets:
      - name: container-registry-access
      containers:
      - name: app
        image: "path_to_registry/location/imagename"
        resources:
          requests:
            memory: 512Mi
            cpu: 500m
          limits:
            memory: 512Mi
            cpu: 1000m
        env:
        - name: LOG_LEVEL
          value: info
        command: ["/entrypoint-app1.sh"]
        imagePullPolicy: Always
      restartPolicy: Always

有谁知道我在这里做错了什么?它似乎正在扩展所有 Pod 的整体 CPU 平均值或类似的东西?如果 app3 真的很忙,我不希望 app1 和 app2 在它们实际空闲时也扩大规模

对此的任何帮助将不胜感激

4

1 回答 1

1

如果除了名称之外您的所有部署都相同,我建议您更改 spec.template.metadata.labels.app 和 spec.selector.matchLabels.app 以对应于正确的应用程序,这意味着这些值中的每一个对于 app1 将是 app1 而不是 app。我猜部署认为所有应用程序都是相同的,这就是为什么所有应用程序的 cpu 平均值相同。

于 2021-09-08T16:17:06.917 回答