4.4. 配置自动扩展
了解 Red Hat OpenShift Dev Spaces 自动扩展的不同方面。
4.4.1. 为 Red Hat OpenShift Dev Spaces 容器配置副本数 复制链接链接已复制到粘贴板!
要使用 Kubernetes HorizontalPodAutoscaler (HPA)为 OpenShift Dev Spaces 操作对象配置副本数,您可以为部署定义 HPA 资源。HPA 根据指定指标动态调整副本数量。
流程
为部署创建
HPA资源,指定目标指标和所需的副本数。apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: scaler namespace: openshift-devspaces spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: <deployment_name>1 ...- 1
- &
lt;deployment_name> 对应于以下部署:-
devspaces -
che-gateway -
devspaces-dashboard -
plugin-registry -
devfile-registry
-
例 4.19. 为 devspaces 部署创建一个 HorizontalPodAutoscaler :
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: devspaces-scaler
namespace: openshift-devspaces
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: devspaces
minReplicas: 2
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 75
在本例中,HPA 以名为 devspaces 的 Deployment 为目标,至少为 2 个副本,最多 5 个副本并根据 CPU 使用率进行扩展。
其他资源
4.4.2. 配置机器自动扩展 复制链接链接已复制到粘贴板!
如果您将集群配置为根据资源需求调整节点数量,则需要额外的配置来维护 OpenShift Dev Spaces 工作区的无缝操作。
当自动扩展添加或删除节点时,工作区需要特殊考虑。
当自动扩展添加新节点时,工作空间启动所需的时间可能比通常要长,直到节点置备完成为止。
相反,当节点被删除时,运行工作区 pod 的节点不应被自动扩展驱除,以避免在使用工作区时造成中断,并可能会丢失任何未保存的数据。
4.4.2.1. 当自动扩展添加新节点时 复制链接链接已复制到粘贴板!
您需要对 OpenShift Dev Spaces 安装进行额外的配置,以确保在添加新节点时正确工作空间启动。
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"
验证步骤
启动工作区,并验证工作区 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}' false