pod 中特定容器的 Kubernetes 水平 Pod 自动缩放 (HPA)

问题描述 投票:0回答:1

在我们的部署中,pod 中有 4 个容器。我们仅为container-1定义了资源限制(CPU和内存)。指标服务器安装在集群中。 我们的要求是应用 Horizontal Pod Autoscaling (HPA) 并满足以下要求。 :

  • 需要检查 CPU 和内存的 HPA
  • 需要申请HPA(计算内存和CPU)仅适用于pod中的container-1

当我们使用以下 HPA yaml 时,它会检查 cpu 和内存。但它会考虑 Pod 中的所有容器。因为在申请的时候,给了我们一个错误。因此,在此方法中,我们还必须为其他 3 个容器提供资源(cpu、内存)限制。然后就正确显示了当前内存和CPU使用率的百分比。

错误:

HPA 无法计算副本计数:无法获取 cpu 利用率:Pod test-pod 的容器 container-2 中缺少对 cpu 的请求

apiVersion: autoscaling/v1
  kind: HorizontalPodAutoscaler
  metadata:
    annotations:
      autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":75}}]'
    name: test-hpa
    namespace: ns
  spec:
    maxReplicas: 5
    minReplicas: 2
    scaleTargetRef:
      apiVersion: apps/v1
      kind: Deployment
      name: test-pod
    targetCPUUtilizationPercentage: 65

这里的问题是它不仅仅考虑 Pod 中的 container-1。

  1. 有没有一种方法可以让我们在 hpa yaml 中给出特定的容器 满足上述要求吗?
  2. 此外,我们是否可以在不提供资源限制(CPU 和 内存)到 Pod 中的其他 3 个容器?

我尝试了几种 HPA yaml,但它没有满足这两个要求。 另请注意,由于 k8 版本,“apiVersion: autoscaling/v2beta2”在我们的集群中不起作用。

kubernetes amazon-eks hpa horizontal-pod-autoscaling
1个回答
0
投票

Kubernetes 官方 文档

HorizontalPodAutoscaler API 还支持容器指标源,其中 HPA 可以跟踪一组 Pod 中各个容器的资源使用情况,以便扩展目标资源。这使您可以为特定 Pod 中最重要的容器配置扩展阈值。例如,如果您有一个 Web 应用程序和一个提供日志记录的 Sidecar 容器,您可以根据 Web 应用程序的资源使用情况进行扩展,而忽略 Sidecar 容器及其资源使用情况。

如果您修改目标资源以拥有具有不同容器集的新 Pod 规范,并且新添加的容器也应用于扩展,则您应该修改 HPA 规范。如果指标源中指定的容器不存在或仅存在于 Pod 的子集中,则这些 Pod 将被忽略并重新计算建议。 有关计算的更多详细信息的算法。要使用容器资源进行自动缩放,请定义指标源,如下所示: 如果您没有为容器指定 CPU 限制,则适用以下情况之一:

type: ContainerResource
containerResource:
  name: cpu
  container: application
  target:
    type: Utilization
    averageUtilization: 60

要使用容器资源进行自动缩放,请定义指标源,如下所示,其中 HPA 控制器缩放目标,使得所有 pod 的应用程序容器中的 cpu 平均利用率为 60%。

HPA 使用的算法的附加信息

如果不指定CPU限制

容器对其可以使用的CPU资源没有上限。容器可以使用运行 pod 的节点上的所有可用 CPU 资源。因此,就您而言,这将是您在问题中指定的第二个选项:节点/命名空间上剩余的数量。

通常,Kubernetes 集群管理员会定义集群中每个命名空间的限制。因此,容器运行在具有默认 CPU 限制的命名空间中,并且容器会自动分配默认限制。

应该为每个命名空间定义资源配额,这可以方便地摆脱没有资源请求或限制并耗尽所有资源的 Pod。这意味着您无法调度 pod,除非您在特定命名空间中指定该 pod 的资源要求,建议将此作为最佳实践

有关更多信息,您可以阅读此文档

© www.soinside.com 2019 - 2024. All rights reserved.