6.2.2. 使用非受管 Horizontal Pod Autoscaler
Pod 横向自动扩展(HPA)现在包含在 Clair、Quay 和 Mirror pod 中,以便它们现在会在负载激增过程中自动扩展。
由于 HPA 默认配置为 managed,因此 Clair、Quay 和 Mirror 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 对象,并将 quay、clair 和 mirror 组件的副本等于 null。
流程
编辑
QuayRegistryCRD,为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: null1 - kind: clair managed: true overrides: replicas: null - kind: mirror managed: true overrides: replicas: null # ...- 1
- 在
QuayRegistryCRD 中设置replicas: null后,可能会生成新的副本集,因为Quay应用程序的部署清单被replicas: 1更改。
验证
创建自定义
HorizontalPodAutoscalersCRD,并将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输入以下命令来确保
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输入以下命令来确保
HorizontalPodAutoscalers可以成功启动:$ oc get hpaNAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE quay-registry-quay-app Deployment/quay-registry-quay-app 67%/90%, 54%/90% 3 20 3 51m