Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
25.4.2. Autoscaling for Memory Utilization
与基于 CPU 的自动缩放不同,基于内存的自动缩放要求使用 YAML 指定自动扩展,而不是使用 oc autoscale 命令。另外,您可以指定最小 pod 数量和 pod 的目标平均内存使用率,否则这些 pod 会从 OpenShift Container Platform 服务器给出默认值。
根据内存使用率自动缩放是一项技术预览功能。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview/。
基于内存的自动缩放仅可通过 v2beta1 版的自动扩展 API 使用。
使用基于内存的自动扩展:
启用基于内存的自动扩展:
将以下内容添加到集群的
master-config.yaml文件中:... apiServerArguments: runtime-config: - apis/autoscaling/v2beta1=true ...
重启 OpenShift Container Platform 服务:
$ master-restart api $ master-restart controllers
如果需要,获取您要缩放的对象名称:
$ oc get dc NAME REVISION DESIRED CURRENT TRIGGERED BY frontend 1 5 0 config
将以下内容放入一个文件中,如
hpa.yaml:apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: hpa-resource-metrics-memory 1 spec: scaleTargetRef: apiVersion: apps.openshift.io/v1 2 kind: DeploymentConfig 3 name: frontend 4 minReplicas: 2 5 maxReplicas: 10 6 metrics: - type: Resource resource: name: memory targetAverageUtilization: 50 7
然后,从以上文件创建自动扩展:
$ oc create -f hpa.yaml
要使基于内存的自动缩放正常工作,内存用量必须与副本数成比例增加和减小。平均而言:
- 增加副本数一定会导致每个 pod 的内存(工作集)用量总体降低。
- 减少副本数一定会导致每个 pod 的内存用量总体增高。
使用 OpenShift Web 控制台检查应用的内存行为,并确保应用程序在使用基于内存的自动扩展前满足这些要求。