1.6. 为 3scale API 管理配置 Horizontal Pod 自动扩展
注意
- 默认值(特别是阈值)可能不适用于您的环境,可能需要调整。
- 请求和限值可能需要修改。
- 强烈建议性能测试。
为红帽 3scale API 管理组件配置 Horizontal Pod 自动扩展(HPA)可确保最佳资源利用率和可扩展性。使用本指南,您可以为 apicast-production、backend-listener 和 backend-worker 组件启用并配置 HPA。您可以保持高效的性能,并动态处理各种工作负载。在更新 APIManager 自定义资源(CR)前检查先决条件,并修改 HPA 配置以满足您的特定需求。
先决条件
- 确保 Redis 在 async 模式下运行。3scale Operator 默认启用。
-
HPA 的 resource
RequirementsEnabled必须设置为true。
流程
-
为
apicast-production、backend-listener和backend-worker组件启用 HPA。接受默认的 HPA 配置,该配置设置至少为 1 个 pod 且最多 5 个 pod 的 85% 资源利用率。 将 HPA 配置添加到 APIManager CR。以下 YAML 是
backend-worker、backend-listener和apicast-production组件的配置示例:apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: example-apimanager spec: wildcardDomain: example.com resourceRequirementsEnabled: true apicast: productionSpec: hpa: true backend: listenerSpec: hpa: true workerSpec: hpa: true检查默认的 HPA 配置。默认 HPA 配置创建 HPA 实例,其具有
backend-worker的以下设置:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: backend-worker spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: backend-worker minReplicas: 1 maxReplicas: 5 metrics: - type: Resource resource: name: cpu target: averageUtilization: 85 type: Utilization - type: Resource resource: name: memory target: averageUtilization: 85 type: Utilization- 根据需要修改 HPA 实例。创建 HPA 实例后,手动编辑它们以根据您的工作负载要求更好地优化您的配置。
如果需要,禁用 HPA。要为组件删除 HPA,请删除
hpa字段或将其设置为 false :backend: workerSpec: hpa: false
其他备注
-
启用 HPA 覆盖并忽略 APIManager CR 中为
apicast-production、backend-listener和backend-worker设置的任何副本值。 - 对于垂直扩展,设置等于限制的资源请求。由于 HPA 根据默认的 85% 进行扩展,因此不需要为限制设置额外的资源。