HorizontalPodAutoscaler

HorizontalPodAutoscaler 是 Horizontal Pod Autoscaler 的配置,它基于指定的指标自动管理实现 scale 子资源的任何资源的副本数。

apiVersion: autoscaling/v2

import "k8s.io/api/autoscaling/v2"

HorizontalPodAutoscaler

HorizontalPodAutoscaler 是 Horizontal Pod Autoscaler 的配置,它基于指定的指标自动管理实现 scale 子资源的任何资源的副本数。


HorizontalPodAutoscalerSpec

HorizontalPodAutoscalerSpec 描述了 HorizontalPodAutoscaler 期望的功能。


  • maxReplicas (int32),必需

    maxReplicas 是 autoscaler 可以扩容到的副本数的上限。它不能小于 minReplicas。

  • scaleTargetRef (CrossVersionObjectReference),必需

    scaleTargetRef 指向要伸缩的目标资源,用于收集 Pod 的指标以及实际改变副本数。

    CrossVersionObjectReference 包含足够的信息来让你识别引用的资源。

  • minReplicas (int32)

    minReplicas 是 autoscaler 可以缩容到的副本数的下限。默认值为 1 个 Pod。如果启用了 Alpha 特性门控 HPAScaleToZero 并且配置了至少一个 Object 或 External 指标,则 minReplicas 允许为 0。只要至少有一个指标值可用,扩缩容就处于活动状态。

  • behavior (HorizontalPodAutoscalerBehavior)

    behavior 配置了目标在扩容和缩容两个方向(分别为 scaleUp 和 scaleDown 字段)的扩缩容行为。如果未设置,将使用默认的 HPAScalingRules 进行扩容和缩容。

    HorizontalPodAutoscalerBehavior 配置了目标在扩容和缩容两个方向(分别为 scaleUp 和 scaleDown 字段)的扩缩容行为。

    • behavior.scaleDown (HPAScalingRules)

      scaleDown 是缩容策略。如果未设置,默认值是允许缩容到 minReplicas 个 Pod,具有 300 秒的稳定窗口(即使用最近 300 秒的最高推荐值)。

      *HPAScalingRules 通过扩缩容策略规则和可配置的指标容差来配置一个方向的扩缩容行为。

      扩缩容策略规则在 HPA 根据指标计算出 DesiredReplicas 后应用。它们可以通过指定扩缩容策略来限制扩缩容速度。它们可以通过指定稳定窗口来防止抖动,以便副本数不会立即设置,而是从稳定窗口中选择最安全的值。

      容差应用于指标值,防止对微小的指标变化进行过于急切的扩缩容。(注意,设置容差需要启用 Alpha 特性门控 HPAConfigurableTolerance。)*

      • behavior.scaleDown.policies ([]HPAScalingPolicy)

        原子:合并期间将被替换

        policies 是扩缩容期间可以使用的潜在扩缩容策略列表。如果未设置,使用默认值:- 对于扩容:在 15 秒窗口内允许 Pod 数翻倍,或绝对变化 4 个 Pod。- 对于缩容:在 15 秒窗口内允许移除所有 Pod。

        HPAScalingPolicy 是在指定过去间隔内必须为真的一条策略。

        • behavior.scaleDown.policies.type (string),必需

          type 用于指定扩缩容策略。

        • behavior.scaleDown.policies.value (int32),必需

          value 包含策略允许的变化量。它必须大于零

        • behavior.scaleDown.policies.periodSeconds (int32),必需

          periodSeconds 指定策略应该保持为真的时间窗口(秒)。PeriodSeconds 必须大于零且小于或等于 1800(30 分钟)。

      • behavior.scaleDown.selectPolicy (string)

        selectPolicy 用于指定应该使用哪个策略。如果未设置,使用默认值 Max。

      • behavior.scaleDown.stabilizationWindowSeconds (int32)

        stabilizationWindowSeconds 是在扩容或缩容时应考虑过去推荐值的秒数。StabilizationWindowSeconds 必须大于或等于零且小于或等于 3600(一小时)。如果未设置,使用默认值:- 对于扩容:0(即不进行稳定)。- 对于缩容:300(即稳定窗口为 300 秒)。

      • behavior.scaleDown.tolerance (Quantity)

        tolerance 是当前和期望指标值之比的容差,在此容差范围内不会更新期望的副本数(例如,1% 的容差为 0.01)。必须大于或等于零。如果未设置,将应用集群范围的默认容差(默认为 10%)。

        例如,如果配置了内存消耗目标为 100Mi,缩容容差为 5%,扩容容差为 1%,则当实际消耗量低于 95Mi 或超过 101Mi 时触发扩缩容。

        这是一个 Alpha 字段,需要启用 HPAConfigurableTolerance 特性门控。

    • behavior.scaleUp (HPAScalingRules)

      scaleUp 是扩容策略。如果未设置,默认值取以下两者中的较大者:

      • 每 60 秒最多增加 4 个 Pod
      • 每 60 秒将 Pod 数翻倍。不使用稳定机制。

      *HPAScalingRules 通过扩缩容策略规则和可配置的指标容差来配置一个方向的扩缩容行为。

      扩缩容策略规则在 HPA 根据指标计算出 DesiredReplicas 后应用。它们可以通过指定扩缩容策略来限制扩缩容速度。它们可以通过指定稳定窗口来防止抖动,以便副本数不会立即设置,而是从稳定窗口中选择最安全的值。

      容差应用于指标值,防止对微小的指标变化进行过于急切的扩缩容。(注意,设置容差需要启用 Alpha 特性门控 HPAConfigurableTolerance。)*

      • behavior.scaleUp.policies ([]HPAScalingPolicy)

        原子:合并期间将被替换

        policies 是扩缩容期间可以使用的潜在扩缩容策略列表。如果未设置,使用默认值:- 对于扩容:在 15 秒窗口内允许 Pod 数翻倍,或绝对变化 4 个 Pod。- 对于缩容:在 15 秒窗口内允许移除所有 Pod。

        HPAScalingPolicy 是在指定过去间隔内必须为真的一条策略。

        • behavior.scaleUp.policies.type (string),必需

          type 用于指定扩缩容策略。

        • behavior.scaleUp.policies.value (int32),必需

          value 包含策略允许的变化量。它必须大于零

        • behavior.scaleUp.policies.periodSeconds (int32),必需

          periodSeconds 指定策略应该保持为真的时间窗口(秒)。PeriodSeconds 必须大于零且小于或等于 1800(30 分钟)。

      • behavior.scaleUp.selectPolicy (string)

        selectPolicy 用于指定应该使用哪个策略。如果未设置,使用默认值 Max。

      • behavior.scaleUp.stabilizationWindowSeconds (int32)

        stabilizationWindowSeconds 是在扩容或缩容时应考虑过去推荐值的秒数。StabilizationWindowSeconds 必须大于或等于零且小于或等于 3600(一小时)。如果未设置,使用默认值:- 对于扩容:0(即不进行稳定)。- 对于缩容:300(即稳定窗口为 300 秒)。

      • behavior.scaleUp.tolerance (Quantity)

        tolerance 是当前和期望指标值之比的容差,在此容差范围内不会更新期望的副本数(例如,1% 的容差为 0.01)。必须大于或等于零。如果未设置,将应用集群范围的默认容差(默认为 10%)。

        例如,如果配置了内存消耗目标为 100Mi,缩容容差为 5%,扩容容差为 1%,则当实际消耗量低于 95Mi 或超过 101Mi 时触发扩缩容。

        这是一个 Alpha 字段,需要启用 HPAConfigurableTolerance 特性门控。

  • metrics ([]MetricSpec)

    原子:合并期间将被替换

    metrics 包含用于计算期望副本数的规范(将使用所有指标中最大的副本数)。期望副本数是通过将目标值与当前值之比乘以当前 Pod 数来计算的。因此,使用的指标必须随着 Pod 数的增加而减少,反之亦然。有关每种类型的指标必须如何响应的更多信息,请参见单个指标源类型。如果未设置,默认指标将设置为 80% 的平均 CPU 利用率。

    MetricSpec 指定如何基于单个指标进行扩缩容(应只设置 type 和一个其他匹配字段)。

    • metrics.type (string),必需

      type 是指标源的类型。它应该是 "ContainerResource", "External", "Object", "Pods" 或 "Resource" 之一,每个类型都映射到对象中一个匹配的字段。

    • metrics.containerResource (ContainerResourceMetricSource)

      containerResource 指的是 Kubernetes 已知的资源指标(例如在 requests 和 limits 中指定的指标),描述当前扩缩容目标的每个 Pod 中的单个容器(例如 CPU 或内存)。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。

      ContainerResourceMetricSource 指示如何基于 Kubernetes 已知的资源指标进行扩缩容,如 requests 和 limits 中指定的那样,描述当前扩缩容目标的每个 Pod 中的单个容器(例如 CPU 或内存)。在与目标比较之前,值将先求平均。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。只应设置一个 "target" 类型。

      • metrics.containerResource.container (string),必需

        container 是扩缩容目标 Pod 中容器的名称

      • metrics.containerResource.name (string),必需

        name 是所讨论资源的名称。

      • metrics.containerResource.target (MetricTarget),必需

        target 指定给定指标的目标值

        MetricTarget 定义特定指标的目标值、平均值或平均利用率

        • metrics.containerResource.target.type (string),必需

          type 表示指标类型是 Utilization、Value 还是 AverageValue

        • metrics.containerResource.target.averageUtilization (int32)

          averageUtilization 是所有相关 Pod 的资源指标平均值的目标值,表示为 Pod 资源请求值的百分比。目前仅对 Resource 指标源类型有效

        • metrics.containerResource.target.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的目标值(Quantity 形式)

        • metrics.containerResource.target.value (Quantity)

          value 是指标的目标值(Quantity 形式)。

    • metrics.external (ExternalMetricSource)

      external 指的是不与任何 Kubernetes 对象关联的全局指标。它允许基于集群外部运行的组件(例如云消息服务中队列的长度,或集群外部运行的负载均衡器的 QPS)的信息进行扩缩容。

      ExternalMetricSource 指示如何基于不与任何 Kubernetes 对象关联的指标进行扩缩容(例如云消息服务中队列的长度,或集群外部运行的负载均衡器的 QPS)。

      • metrics.external.metric (MetricIdentifier),必需

        metric 通过名称和选择器标识目标指标

        MetricIdentifier 定义指标的名称和可选的选择器

        • metrics.external.metric.name (string),必需

          name 是给定指标的名称

        • metrics.external.metric.selector (LabelSelector)

          selector 是给定指标的标准 kubernetes 标签选择器的字符串编码形式。设置后,它将作为附加参数传递给指标服务器,以便更具体的指标范围。未设置时,仅使用 metricName 收集指标。

      • metrics.external.target (MetricTarget),必需

        target 指定给定指标的目标值

        MetricTarget 定义特定指标的目标值、平均值或平均利用率

        • metrics.external.target.type (string),必需

          type 表示指标类型是 Utilization、Value 还是 AverageValue

        • metrics.external.target.averageUtilization (int32)

          averageUtilization 是所有相关 Pod 的资源指标平均值的目标值,表示为 Pod 资源请求值的百分比。目前仅对 Resource 指标源类型有效

        • metrics.external.target.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的目标值(Quantity 形式)

        • metrics.external.target.value (Quantity)

          value 是指标的目标值(Quantity 形式)。

    • metrics.object (ObjectMetricSource)

      object 指的是描述单个 kubernetes 对象的指标(例如,Ingress 对象上的每秒请求数)。

      ObjectMetricSource 指示如何基于描述 kubernetes 对象的指标进行扩缩容(例如,Ingress 对象上的每秒请求数)。

      • metrics.object.describedObject (CrossVersionObjectReference),必需

        describedObject 指定对象的描述,例如 kind、name、apiVersion

        CrossVersionObjectReference 包含足够的信息来让你识别引用的资源。

      • metrics.object.metric (MetricIdentifier),必需

        metric 通过名称和选择器标识目标指标

        MetricIdentifier 定义指标的名称和可选的选择器

        • metrics.object.metric.name (string),必需

          name 是给定指标的名称

        • metrics.object.metric.selector (LabelSelector)

          selector 是给定指标的标准 kubernetes 标签选择器的字符串编码形式。设置后,它将作为附加参数传递给指标服务器,以便更具体的指标范围。未设置时,仅使用 metricName 收集指标。

      • metrics.object.target (MetricTarget),必需

        target 指定给定指标的目标值

        MetricTarget 定义特定指标的目标值、平均值或平均利用率

        • metrics.object.target.type (string),必需

          type 表示指标类型是 Utilization、Value 还是 AverageValue

        • metrics.object.target.averageUtilization (int32)

          averageUtilization 是所有相关 Pod 的资源指标平均值的目标值,表示为 Pod 资源请求值的百分比。目前仅对 Resource 指标源类型有效

        • metrics.object.target.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的目标值(Quantity 形式)

        • metrics.object.target.value (Quantity)

          value 是指标的目标值(Quantity 形式)。

    • metrics.pods (PodsMetricSource)

      pods 指的是描述当前扩缩容目标中每个 Pod 的指标(例如,每秒处理的事务数)。在与目标值比较之前,值将先求平均。

      PodsMetricSource 指示如何基于描述当前扩缩容目标中每个 Pod 的指标进行扩缩容(例如,每秒处理的事务数)。在与目标值比较之前,值将先求平均。

      • metrics.pods.metric (MetricIdentifier),必需

        metric 通过名称和选择器标识目标指标

        MetricIdentifier 定义指标的名称和可选的选择器

        • metrics.pods.metric.name (string),必需

          name 是给定指标的名称

        • metrics.pods.metric.selector (LabelSelector)

          selector 是给定指标的标准 kubernetes 标签选择器的字符串编码形式。设置后,它将作为附加参数传递给指标服务器,以便更具体的指标范围。未设置时,仅使用 metricName 收集指标。

      • metrics.pods.target (MetricTarget),必需

        target 指定给定指标的目标值

        MetricTarget 定义特定指标的目标值、平均值或平均利用率

        • metrics.pods.target.type (string),必需

          type 表示指标类型是 Utilization、Value 还是 AverageValue

        • metrics.pods.target.averageUtilization (int32)

          averageUtilization 是所有相关 Pod 的资源指标平均值的目标值,表示为 Pod 资源请求值的百分比。目前仅对 Resource 指标源类型有效

        • metrics.pods.target.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的目标值(Quantity 形式)

        • metrics.pods.target.value (Quantity)

          value 是指标的目标值(Quantity 形式)。

    • metrics.resource (ResourceMetricSource)

      resource 指的是 Kubernetes 已知的资源指标(例如在 requests 和 limits 中指定的指标),描述当前扩缩容目标的每个 Pod(例如 CPU 或内存)。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。

      ResourceMetricSource 指示如何基于 Kubernetes 已知的资源指标进行扩缩容,如 requests 和 limits 中指定的那样,描述当前扩缩容目标的每个 Pod(例如 CPU 或内存)。在与目标比较之前,值将先求平均。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。只应设置一个 "target" 类型。

      • metrics.resource.name (string),必需

        name 是所讨论资源的名称。

      • metrics.resource.target (MetricTarget),必需

        target 指定给定指标的目标值

        MetricTarget 定义特定指标的目标值、平均值或平均利用率

        • metrics.resource.target.type (string),必需

          type 表示指标类型是 Utilization、Value 还是 AverageValue

        • metrics.resource.target.averageUtilization (int32)

          averageUtilization 是所有相关 Pod 的资源指标平均值的目标值,表示为 Pod 资源请求值的百分比。目前仅对 Resource 指标源类型有效

        • metrics.resource.target.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的目标值(Quantity 形式)

        • metrics.resource.target.value (Quantity)

          value 是指标的目标值(Quantity 形式)。

HorizontalPodAutoscalerStatus

HorizontalPodAutoscalerStatus 描述了 Horizontal Pod Autoscaler 的当前状态。


  • desiredReplicas (int32),必需

    desiredReplicas 是该 autoscaler 管理的 Pod 的期望副本数,由 autoscaler 最后计算得出。

  • conditions ([]HorizontalPodAutoscalerCondition)

    补丁策略:按键 type 合并

    Map:合并期间将保留按键 type 的唯一值

    conditions 是此 autoscaler 扩缩容其目标所需的一组条件,并指示这些条件是否满足。

    HorizontalPodAutoscalerCondition 描述了 HorizontalPodAutoscaler 在某个特定时间点的状态。

    • conditions.status (string),必需

      status 是条件的状态 (True, False, Unknown)

    • conditions.type (string),必需

      type 描述了当前条件

    • conditions.lastTransitionTime (Time)

      lastTransitionTime 是条件上次从一种状态转换为另一种状态的时间

      Time 是 time.Time 的包装器,支持正确地封送(marshaling)到 YAML 和 JSON。它提供了许多 time 包提供的工厂方法的包装。

    • conditions.message (string)

      message 是包含关于转换细节的人类可读解释

    • conditions.reason (string)

      reason 是条件上次转换的原因。

  • currentMetrics ([]MetricStatus)

    原子:合并期间将被替换

    currentMetrics 是该 autoscaler 使用的指标最后读取的状态。

    MetricStatus 描述了单个指标的最后读取状态。

    • currentMetrics.type (string),必需

      type 是指标源的类型。它将是 "ContainerResource", "External", "Object", "Pods" 或 "Resource" 之一,每个类型都对应于对象中的一个匹配字段。

    • currentMetrics.containerResource (ContainerResourceMetricStatus)

      container resource 指的是 Kubernetes 已知的资源指标(例如在 requests 和 limits 中指定的指标),描述当前扩缩容目标的每个 Pod 中的单个容器(例如 CPU 或内存)。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。

      ContainerResourceMetricStatus 指示 Kubernetes 已知的资源指标的当前值,如 requests 和 limits 中指定的那样,描述当前扩缩容目标中每个 Pod 的单个容器(例如 CPU 或内存)。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。

      • currentMetrics.containerResource.container (string),必需

        container 是扩缩容目标 Pod 中容器的名称

      • currentMetrics.containerResource.current (MetricValueStatus),必需

        current 包含给定指标的当前值

        MetricValueStatus 包含指标的当前值

        • currentMetrics.containerResource.current.averageUtilization (int32)

          currentAverageUtilization 是所有相关 Pod 的资源指标平均值的当前值,表示为 Pod 资源请求值的百分比。

        • currentMetrics.containerResource.current.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的当前值(Quantity 形式)

        • currentMetrics.containerResource.current.value (Quantity)

          value 是指标的当前值(Quantity 形式)。

      • currentMetrics.containerResource.name (string),必需

        name 是所讨论资源的名称。

    • currentMetrics.external (ExternalMetricStatus)

      external 指的是不与任何 Kubernetes 对象关联的全局指标。它允许基于集群外部运行的组件(例如云消息服务中队列的长度,或集群外部运行的负载均衡器的 QPS)的信息进行扩缩容。

      ExternalMetricStatus 指示不与任何 Kubernetes 对象关联的全局指标的当前值。

      • currentMetrics.external.current (MetricValueStatus),必需

        current 包含给定指标的当前值

        MetricValueStatus 包含指标的当前值

        • currentMetrics.external.current.averageUtilization (int32)

          currentAverageUtilization 是所有相关 Pod 的资源指标平均值的当前值,表示为 Pod 资源请求值的百分比。

        • currentMetrics.external.current.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的当前值(Quantity 形式)

        • currentMetrics.external.current.value (Quantity)

          value 是指标的当前值(Quantity 形式)。

      • currentMetrics.external.metric (MetricIdentifier),必需

        metric 通过名称和选择器标识目标指标

        MetricIdentifier 定义指标的名称和可选的选择器

        • currentMetrics.external.metric.name (string),必需

          name 是给定指标的名称

        • currentMetrics.external.metric.selector (LabelSelector)

          selector 是给定指标的标准 kubernetes 标签选择器的字符串编码形式。设置后,它将作为附加参数传递给指标服务器,以便更具体的指标范围。未设置时,仅使用 metricName 收集指标。

    • currentMetrics.object (ObjectMetricStatus)

      object 指的是描述单个 kubernetes 对象的指标(例如,Ingress 对象上的每秒请求数)。

      ObjectMetricStatus 指示描述 kubernetes 对象的指标的当前值(例如,Ingress 对象上的每秒请求数)。

      • currentMetrics.object.current (MetricValueStatus),必需

        current 包含给定指标的当前值

        MetricValueStatus 包含指标的当前值

        • currentMetrics.object.current.averageUtilization (int32)

          currentAverageUtilization 是所有相关 Pod 的资源指标平均值的当前值,表示为 Pod 资源请求值的百分比。

        • currentMetrics.object.current.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的当前值(Quantity 形式)

        • currentMetrics.object.current.value (Quantity)

          value 是指标的当前值(Quantity 形式)。

      • currentMetrics.object.describedObject (CrossVersionObjectReference),必需

        DescribedObject 指定对象的描述,例如 kind、name、apiVersion

        CrossVersionObjectReference 包含足够的信息来让你识别引用的资源。

      • currentMetrics.object.metric (MetricIdentifier),必需

        metric 通过名称和选择器标识目标指标

        MetricIdentifier 定义指标的名称和可选的选择器

        • currentMetrics.object.metric.name (string),必需

          name 是给定指标的名称

        • currentMetrics.object.metric.selector (LabelSelector)

          selector 是给定指标的标准 kubernetes 标签选择器的字符串编码形式。设置后,它将作为附加参数传递给指标服务器,以便更具体的指标范围。未设置时,仅使用 metricName 收集指标。

    • currentMetrics.pods (PodsMetricStatus)

      pods 指的是描述当前扩缩容目标中每个 Pod 的指标(例如,每秒处理的事务数)。在与目标值比较之前,值将先求平均。

      PodsMetricStatus 指示描述当前扩缩容目标中每个 Pod 的指标的当前值(例如,每秒处理的事务数)。

      • currentMetrics.pods.current (MetricValueStatus),必需

        current 包含给定指标的当前值

        MetricValueStatus 包含指标的当前值

        • currentMetrics.pods.current.averageUtilization (int32)

          currentAverageUtilization 是所有相关 Pod 的资源指标平均值的当前值,表示为 Pod 资源请求值的百分比。

        • currentMetrics.pods.current.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的当前值(Quantity 形式)

        • currentMetrics.pods.current.value (Quantity)

          value 是指标的当前值(Quantity 形式)。

      • currentMetrics.pods.metric (MetricIdentifier),必需

        metric 通过名称和选择器标识目标指标

        MetricIdentifier 定义指标的名称和可选的选择器

        • currentMetrics.pods.metric.name (string),必需

          name 是给定指标的名称

        • currentMetrics.pods.metric.selector (LabelSelector)

          selector 是给定指标的标准 kubernetes 标签选择器的字符串编码形式。设置后,它将作为附加参数传递给指标服务器,以便更具体的指标范围。未设置时,仅使用 metricName 收集指标。

    • currentMetrics.resource (ResourceMetricStatus)

      resource 指的是 Kubernetes 已知的资源指标(例如在 requests 和 limits 中指定的指标),描述当前扩缩容目标的每个 Pod(例如 CPU 或内存)。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。

      ResourceMetricStatus 指示 Kubernetes 已知的资源指标的当前值,如 requests 和 limits 中指定的那样,描述当前扩缩容目标的每个 Pod(例如 CPU 或内存)。此类指标是 Kubernetes 内置的,并且在通过 "pods" 源使用的常规每 Pod 指标之上具有特殊的扩缩容选项。

      • currentMetrics.resource.current (MetricValueStatus),必需

        current 包含给定指标的当前值

        MetricValueStatus 包含指标的当前值

        • currentMetrics.resource.current.averageUtilization (int32)

          currentAverageUtilization 是所有相关 Pod 的资源指标平均值的当前值,表示为 Pod 资源请求值的百分比。

        • currentMetrics.resource.current.averageValue (Quantity)

          averageValue 是所有相关 Pod 指标平均值的当前值(Quantity 形式)

        • currentMetrics.resource.current.value (Quantity)

          value 是指标的当前值(Quantity 形式)。

      • currentMetrics.resource.name (string),必需

        name 是所讨论资源的名称。

  • currentReplicas (int32)

    currentReplicas 是该 autoscaler 管理的 Pod 的当前副本数,由 autoscaler 最后观察到。

  • lastScaleTime (Time)

    lastScaleTime 是 HorizontalPodAutoscaler 上次扩缩 Pod 数量的时间,由 autoscaler 用来控制更改 Pod 数量的频率。

    Time 是 time.Time 的包装器,支持正确地封送(marshaling)到 YAML 和 JSON。它提供了许多 time 包提供的工厂方法的包装。

  • observedGeneration (int64)

    observedGeneration 是此 autoscaler 观察到的最新 Generation。

HorizontalPodAutoscalerList

HorizontalPodAutoscalerList 是 Horizontal Pod Autoscaler 对象的列表。


  • apiVersion: autoscaling/v2

  • kind: HorizontalPodAutoscalerList

  • metadata (ListMeta)

    metadata 是标准的列表元数据。

  • items ([]HorizontalPodAutoscaler),必需

    items 是 Horizontal Pod Autoscaler 对象的列表。

操作


get 读取指定的 HorizontalPodAutoscaler

HTTP 请求

GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}

参数

  • name (in path):string,必需

    HorizontalPodAutoscaler 的名称

  • namespace (in path):string,必需

    命名空间

  • pretty (in query):string

    pretty

响应

200 (HorizontalPodAutoscaler):成功

401:未授权

get 读取指定的 HorizontalPodAutoscaler 的状态

HTTP 请求

GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status

参数

  • name (in path):string,必需

    HorizontalPodAutoscaler 的名称

  • namespace (in path):string,必需

    命名空间

  • pretty (in query):string

    pretty

响应

200 (HorizontalPodAutoscaler):成功

401:未授权

list 列出或监视 HorizontalPodAutoscaler 类型的对象

HTTP 请求

GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers

参数

响应

200 (HorizontalPodAutoscalerList):成功

401:未授权

list 列出或监视 HorizontalPodAutoscaler 类型的对象

HTTP 请求

GET /apis/autoscaling/v2/horizontalpodautoscalers

参数

响应

200 (HorizontalPodAutoscalerList):成功

401:未授权

create 创建 HorizontalPodAutoscaler

HTTP 请求

POST /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers

参数

响应

200 (HorizontalPodAutoscaler):成功

201 (HorizontalPodAutoscaler):已创建

202 (HorizontalPodAutoscaler):已接受

401:未授权

update 替换指定的 HorizontalPodAutoscaler

HTTP 请求

PUT /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}

参数

响应

200 (HorizontalPodAutoscaler):成功

201 (HorizontalPodAutoscaler):已创建

401:未授权

update 替换指定的 HorizontalPodAutoscaler 的状态

HTTP 请求

PUT /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status

参数

响应

200 (HorizontalPodAutoscaler):成功

201 (HorizontalPodAutoscaler):已创建

401:未授权

patch 部分更新指定的 HorizontalPodAutoscaler

HTTP 请求

PATCH /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}

参数

  • name (in path):string,必需

    HorizontalPodAutoscaler 的名称

  • namespace (in path):string,必需

    命名空间

  • body: Patch 对象,必需

  • dryRun (in query):string

    dryRun

  • fieldManager (in query):string

    fieldManager

  • fieldValidation (in query):string

    fieldValidation

  • force (in query):boolean

    force

  • pretty (in query):string

    pretty

响应

200 (HorizontalPodAutoscaler):成功

201 (HorizontalPodAutoscaler):已创建

401:未授权

patch 部分更新指定的 HorizontalPodAutoscaler 的状态

HTTP 请求

PATCH /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status

参数

  • name (in path):string,必需

    HorizontalPodAutoscaler 的名称

  • namespace (in path):string,必需

    命名空间

  • body: Patch 对象,必需

  • dryRun (in query):string

    dryRun

  • fieldManager (in query):string

    fieldManager

  • fieldValidation (in query):string

    fieldValidation

  • force (in query):boolean

    force

  • pretty (in query):string

    pretty

响应

200 (HorizontalPodAutoscaler):成功

201 (HorizontalPodAutoscaler):已创建

401:未授权

delete 删除 HorizontalPodAutoscaler

HTTP 请求

DELETE /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}

参数

响应

200 (Status):成功

202 (Status):已接受

401:未授权

deletecollection 删除 HorizontalPodAutoscaler 集合

HTTP 请求

DELETE /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers

参数

响应

200 (Status):成功

401:未授权

此页面是自动生成的。

如果您打算为此页面报告问题,请在问题描述中说明此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改于 2025 年 4 月 24 日 9:14 AM PST: 为 v1.33 生成 Markdown API 参考 (b84ec30bbb)