3.4. 자동 스케일링 구성


Red Hat OpenShift Dev Spaces 자동 스케일링의 다양한 측면에 대해 알아보십시오.

3.4.1. Red Hat OpenShift Dev Spaces 컨테이너의 복제본 수 구성

Kubernetes HorizontalPodAutoscaler (HPA)를 사용하여 OpenShift Dev Spaces 피연산자의 복제본 수를 구성하려면 배포에 대한 HPA 리소스를 정의할 수 있습니다. HPA 는 지정된 메트릭을 기반으로 복제본 수를 동적으로 조정합니다.

프로세스

  1. 대상 지표와 원하는 복제본 수를 지정하여 배포에 대한 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

예 3.14. 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는 최소 2개의 복제본, 최대 5개의 복제본 및 CPU 사용률을 기반으로 하는 스케일링을 사용하여 devspace라는 배포를 대상으로 합니다.

3.4.2. 머신 자동 스케일링 구성

리소스 요구 사항에 따라 노드 수를 조정하도록 클러스터를 구성한 경우 OpenShift Dev Spaces 작업 공간의 원활한 작동을 유지하기 위해 추가 구성이 필요합니다.

자동 스케일러가 노드를 추가하고 제거할 때 작업 공간을 특별히 고려해야 합니다.

자동 스케일러에서 새 노드를 추가하면 노드 프로비저닝이 완료될 때까지 작업 공간 시작 시간이 평상보다 오래 걸릴 수 있습니다.

반대로 노드를 제거하면 작업 공간을 사용하는 동안 중단을 방지하고 저장된 데이터가 손실될 가능성이 있는 자동 스케일러에서 작업 공간 Pod를 실행하는 노드를 제거할 수 없습니다.

3.4.2.1. 자동 스케일러가 새 노드를 추가하는 경우

새 노드를 추가하는 동안 적절한 작업 공간을 시작하도록 OpenShift Dev Spaces 설치를 구성해야 합니다.

프로세스

  1. CheCluster 사용자 지정 리소스에서 자동 스케일러가 새 노드를 프로비저닝할 때 적절한 작업 공간 시작을 허용하도록 다음 필드를 설정합니다.

    spec:
      devEnvironments:
        startTimeoutSeconds: 600 1
        ignoredUnrecoverableEvents: 2
          - FailedScheduling
    1
    작업 영역을 시작하는 동안 새 노드를 프로비저닝할 수 있도록 하려면 최소 600초로 설정합니다.
    2
    새 노드가 프로비저닝될 때 작업 영역을 계속 시작할 수 있도록 FailedScheduling 이벤트를 무시합니다.

3.4.2.2. 자동 스케일러가 노드를 제거하는 경우

자동 스케일러가 노드를 제거해야 할 때 작업 공간 Pod가 제거되지 않도록 하려면 모든 작업 공간 Pod에 "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" 주석을 추가합니다.

프로세스

  1. CheCluster 사용자 정의 리소스에서 spec.devEnvironments.workspacesPodAnnotations 필드에 cluster-autoscaler.kubernetes.io/safe-to-evict: "false" 주석을 추가합니다.

    spec:
      devEnvironments:
        workspacesPodAnnotations:
          cluster-autoscaler.kubernetes.io/safe-to-evict: "false"

검증 단계

  1. 작업 영역을 시작하고 작업 공간 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
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.