4.4. 配置自动扩展
了解 Red Hat OpenShift Dev Spaces 自动扩展的不同方面。
4.4.1. 为 Red Hat OpenShift Dev Spaces 容器配置副本数 复制链接链接已复制到粘贴板!
要使用 Kubernetes HorizontalPodAutoscaler
(HPA)为 OpenShift Dev Spaces 操作对象配置副本数,您可以为部署定义 HPA
资源。HPA
根据指定指标动态调整副本数量。
流程
为部署创建
HPA
资源,指定目标指标和所需的副本数。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- &
lt;deployment_name
> 对应于以下部署:-
devspaces
-
che-gateway
-
devspaces-dashboard
-
plugin-registry
-
devfile-registry
-
例 4.21. 为 devspaces 部署创建一个 HorizontalPodAutoscaler
:
在本例中,HPA 以名为 devspaces 的 Deployment 为目标,至少为 2 个副本,最多 5 个副本并根据 CPU 使用率进行扩展。
其他资源
4.4.2. 配置机器自动扩展 复制链接链接已复制到粘贴板!
如果您将集群配置为根据资源需求调整节点数量,则需要额外的配置来维护 OpenShift Dev Spaces 工作区的无缝操作。
当自动扩展添加或删除节点时,工作区需要特殊考虑。
当自动扩展添加新节点时,工作空间启动所需的时间可能比通常要长,直到节点置备完成为止。
相反,当节点被删除时,运行工作区 pod 的节点不应被自动扩展驱除,以避免在使用工作区时造成中断,并可能会丢失任何未保存的数据。
4.4.2.1. 当自动扩展添加新节点时 复制链接链接已复制到粘贴板!
您需要对 OpenShift Dev Spaces 安装进行额外的配置,以确保在添加新节点时正确工作空间启动。
流程
在 CheCluster 自定义资源中,设置以下字段,以便在自动扩展器置备新节点时允许正确的工作区启动。
spec: devEnvironments: startTimeoutSeconds: 600 ignoredUnrecoverableEvents: - FailedScheduling
spec: devEnvironments: startTimeoutSeconds: 600
1 ignoredUnrecoverableEvents:
2 - FailedScheduling
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.2. 当自动扩展删除节点时 复制链接链接已复制到粘贴板!
要防止工作区 pod 在自动扩展需要删除节点时被驱除,请将 "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
注解添加到每个工作区 pod。
流程
在 CheCluster 自定义资源中,在
spec.devEnvironments.workspacesPodAnnotations
字段中添加cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
注解。spec: devEnvironments: workspacesPodAnnotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
spec: devEnvironments: workspacesPodAnnotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
启动工作区,并验证工作区 pod 是否包含
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
注解。oc get pod <workspace_pod_name> -o jsonpath='{.metadata.annotations.cluster-autoscaler\.kubernetes\.io/safe-to-evict}'
$ oc get pod <workspace_pod_name> -o jsonpath='{.metadata.annotations.cluster-autoscaler\.kubernetes\.io/safe-to-evict}' false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow