6.2.2. 使用非受管 Horizontal Pod Autoscaler


Pod 横向自动扩展(HPA)现在包含在 ClairQuayMirror pod 中,以便它们现在会在负载激增过程中自动扩展。

由于 HPA 默认配置为 managed,因此 ClairQuayMirror pod 的数量被设置为 2。这有助于避免在通过 Operator 或重新调度事件更新或重新配置 Red Hat Quay 时造成停机。

注意

禁用 HorizontalPodAutoscaler 组件并尝试编辑 HPA 资源本身并增加 minReplicas 字段的值时,存在一个已知问题。当尝试此设置时,Quay 应用程序 pod 由非受管 HPA 扩展,并在 60 秒后扩展,副本数由 Red Hat Quay Operator 协调。因此,HPA pod 会持续创建,然后由 Operator 删除。

要解决这个问题,您应该将 Red Hat Quay 部署升级到至少版本 3.12.5 或 3.13.1,然后使用以下示例来避免问题。

此问题将在 Red Hat Quay 以后的版本中解决。如需更多信息,请参阅 PROJQUAY-6474

6.2.2.1. 禁用 Horizontal Pod Autoscaler

要禁用自动扩展或创建自己的 HorizontalPodAutoscaler 组件,请在 QuayRegistry 自定义资源定义中将组件指定为 unmanaged。要避免上面记录的已知问题,您必须修改 QuayRegistry CRD 对象,并将 quayclairmirror 组件的副本等于 null

流程

  • 编辑 QuayRegistry CRD,为 quay 组件包含以下 replicas: null

    $ oc edit quayregistry <quay_registry_name> -n <quay_namespace>
    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
    name: quay-registry
    namespace: quay-enterprise
    spec:
    components:
      - kind: horizontalpodautoscaler
        managed: false
      - kind: quay
        managed: true
        overrides:
          replicas: null 
    1
    
      - kind: clair
        managed: true
        overrides:
          replicas: null
      - kind: mirror
        managed: true
        overrides:
          replicas: null
    # ...
    1
    QuayRegistry CRD 中设置 replicas: null 后,可能会生成新的副本集,因为 Quay 应用程序的部署清单被 replicas: 1 更改。

验证

  1. 创建自定义 HorizontalPodAutoscalers CRD,并将 minReplicas 量增加到更高的值,用于考试pe,3

    kind: HorizontalPodAutoscaler
    apiVersion: autoscaling/v2
    metadata:
      name: quay-registry-quay-app
      namespace: quay-enterprise
    spec:
      scaleTargetRef:
        kind: Deployment
        name: quay-registry-quay-app
        apiVersion: apps/v1
      minReplicas: 3
      maxReplicas: 20
      metrics:
        - type: Resource
          resource:
            name: memory
            target:
              type: Utilization
              averageUtilization: 90
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 90
  2. 输入以下命令来确保 QuayRegistry 应用程序成功启动:

    $ oc get pod | grep quay-app

    输出示例

    quay-registry-quay-app-5b8fd49d6b-7wvbk         1/1     Running     0          34m
    quay-registry-quay-app-5b8fd49d6b-jslq9         1/1     Running     0          3m42s
    quay-registry-quay-app-5b8fd49d6b-pskpz         1/1     Running     0          43m
    quay-registry-quay-app-upgrade-llctl            0/1     Completed   0          51m

  3. 输入以下命令来确保 HorizontalPodAutoscalers 可以成功启动:

    $ oc get hpa
    NAME                     REFERENCE                           TARGETS            MINPODS   MAXPODS   REPLICAS   AGE
    quay-registry-quay-app   Deployment/quay-registry-quay-app   67%/90%, 54%/90%   3         20        3          51m
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部