Auto-Scaling을 위한 Satellite 클러스터 준비

Satellite

Satellite 클러스터에서 클러스터 자동 스케일러 애드온을 사용하려면 먼저 다음 단계를 완료하세요.

Satellite 클러스터의 Auto-Scaling은 허용 목록에 포함된 계정에서 베타 버전으로 사용 가능합니다. 지원을 통해 케이스를 열어 허용 목록에 추가할 수 있습니다.

허용되지 않은 계정에서 자동 스케일러를 활성화하면 The 'cluster-autoscaler' add-on is not supported on satellite clusters 오류가 발생합니다. 지원을 통해 케이스를 열어 허용 목록에 추가할 수 있습니다.

Satellite 클러스터에서 자동 스케일링 이해

Satellite 클러스터에 대한 확장 작동 방식
클러스터 오토스케일러는 메모리 또는 CPU 리소스 부족으로 인해 보류 상태에 멈춰 있는 팟(Pod)이 있는지 주기적으로 확인합니다.
  1. 자동 스케일러는 클러스터의 워커 풀에서 스케일링이 활성화되어 있는지 확인합니다. 스케일링이 활성화되면 자동 스케일러는 보류 상태에 있는 모든 파드를 수용하기 위해 필요한 워커 노드 수를 계산합니다. 자동 스케일링이 활성화된 워커 풀이 없으면 아무 작업도 수행되지 않습니다.
  2. 자동 확장기는 이전 단계에서 계산한 필요한 작업자 노드 수를 MaxSize 또는 확장에 허용된 총 작업자 노드 수와 비교합니다. 허용된 MaxSize가 모든 팟(Pod)을 충족하는 데 필요한 작업자 노드 수보다 작거나 같으면 오토스케일러가 인스턴스 그룹에 크기 조정 요청을 전송합니다.
  3. 오토스케일러가 해당 위치에서 Ready 또는 Unassigned 상태에 있는 호스트와 Auto-Scaling이 사용으로 설정된 작업자 풀에 있는 작업자 노드의 레이블과 일치하는 호스트 레이블이 있는 호스트를 페치합니다.
  4. 오토스케일러가 크기 조정 요청을 충족하기에 충분한 Ready 또는 Unassigned 호스트가 사용 가능한지 판별합니다.
    • 해당 위치에서 사용 가능한 호스트가 충분하지 않으면 크기 조정 작업이 완료되지 않았다는 경고가 로그에 추가됩니다.
    • Ready 또는 Unassigned 상태이고 일치하는 호스트 레이블이 있는 사용 가능한 호스트가 있는 경우 오토스케일러가 해당 호스트를 사용하여 요청을 이행합니다.
    • 일치하는 호스트 레이블이 있는 호스트가 사용 가능하지 않은 경우 오토스케일러가 기본 호스트 레이블만 있는 호스트에 대해 Ready 또는 Unassigned 호스트를 필터링합니다. 그런 다음, 오토스케일러가 스케일링이 사용으로 설정된 작업자 풀의 호스트 레이블과 일치하도록 해당 호스트의 레이블을 업데이트하고 이러한 호스트를 사용하여 요청을 이행합니다.
Satellite 클러스터에서 스케일다운은 어떻게 작동하나요?
클러스터 자동 스케일러가 워커 노드가 지정된 scaleDownUnneededTime 시간 동안 사용률이 낮다고 판단하면 해당 워커는 클러스터에서 삭제됩니다. 그러면 해당 작업자 노드에 사용된 호스트는 위치에서 Reload Required 또는 Unassigned 상태가 됩니다. 이러한 호스트는 다시 로드하고 해당 위치에 다시 연결할 때까지 다른 클러스터에서 사용할 수 없습니다. 작업자 풀의 모든 작업자는 동일한 특성이어야 합니다.
내 위치에 확장에 사용 가능한 호스트가 없는 경우 어떻게 되나요?
확장을 위한 호스트가 충분하지 않으면 워크로드가 완전히 배치되지 않습니다. 그러나 더 많은 호스트가 위치에 추가된 후에는 확장 조작이 자동으로 재개됩니다.
자동 스케일링은 IBM Cloud® Kubernetes Service 또는 Red Hat® OpenShift® on IBM Cloud® 과 비교하여 Satellite 에서 어떻게 다른가요?
IBM Cloud® Kubernetes Service 또는 Red Hat® OpenShift® on IBM Cloud® 은 스케일링의 일부로 인프라에서 호스트를 자동으로 프로비저닝하거나 제거할 수 있습니다. Satellite를 사용하면 호스트가 다양한 인프라에 상주하므로 오토스케일러가 작업자 노드를 자동으로 프로비저닝하고 제거할 수 없습니다. 대신 Satellite 클러스터에서 클러스터 오토스케일러는 위치에서 이미 사용 가능하고 준비된 호스트만 사용합니다. 즉, 스케일업 중에 오토스케일러를 사용할 수 있도록 해당 위치에 추가 호스트를 준비해 두어야 합니다.
클러스터 오토스케일러가 클러스터를 확장하는 동안 사용하는 호스트의 유형은 무엇입니까?
Ready 상태 및 unassigned 상태의 호스트는 클러스터 오토스케일러에서 사용할 수 있는 것으로 간주됩니다.
스케일링 업 중에 사용할 수 있는 사용 가능한 호스트는 무엇입니까?
Readyunassigned 호스트 중에서 레이블이 스케일링이 사용으로 설정된 작업자 풀의 레이블과 일치하는 호스트만 스케일링에 사용할 수 있습니다. 호스트를 사용자 위치에 연결할 때 자동 스케일링된 작업자 풀에서 사용할 호스트에 레이블을 지정해야 합니다.
클러스터 오토스케일러가 청구에 미치는 영향은 무엇입니까?
클러스터 오토스케일러는 인프라 레벨에서 조작을 수행하지 않지만 작업자 풀에 호스트를 지정하므로 클러스터 관리 요금 이 발생합니다.
스케일링 이벤트 후에 현재 Reload required 상태에 있는 스케일링에 사용된 호스트에 대해 수행할 작업은 무엇입니까?
스케일링 후 호스트는 Reload required 상태가 되며 재부팅할 때까지 다시 스케일링에 사용할 수 없습니다. 이러한 호스트를 워커 풀에서 할당 해제하고, 해당 위치에서 제거하고, 재부팅한 후 다시 연결하여 다시 확장할 수 있도록 합니다.
내 Satellite 클러스터에서 자동 스케일링을 설정하는 방법
자동 스케일링을 설정하려면 다음 단계를 완료해야 합니다.
  1. Satellite 위치를 작성합니다.
  2. 위치 제어 평면을 설정합니다.
  3. 기본 작업자 풀에 대한 호스트를 연결하십시오.
  4. Satellite 호스트를 사용하는 클러스터를 작성하십시오.
  5. 클러스터에서 필수 스토리지 시크릿을 확인하거나 작성하십시오.
  6. 더 많은 호스트를 사용자의 위치에 연결하고 클러스터에서 두 번째 작업자 풀을 작성하십시오.
  7. 더 많은 호스트를 사용자의 위치에 연결하고 지정되지 않은 상태로 두고 스케일링에 사용할 수 있도록 하십시오.
  8. cluster-autoscaler 추가 기능을 설치하십시오.
  9. 오토스케일러 ConfigMap 을 편집하고 스케일링을 사용으로 설정하십시오.

자동 스케일링을 위한 위치 및 클러스터 설정

  1. 위치를 작성하고 제어 플레인을 설정하십시오.

  2. 제어 플레인을 설정한 후 클러스터의 기본 작업자 풀에서 사용할 추가 호스트를 연결 하십시오.

  3. 사용자 위치에 클러스터를 작성하십시오.

  4. 다음 storage-secret-store 시크릿을 복사하고 파일로 저장하십시오. openshift-api 사용자 위치의 Satellite 링크 엔드포인트 페이지에서 엔드포인트 세부사항을 찾을 수 있습니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: storage-secret-store
      namespace: kube-system
    type: Opaque
    stringData:
      ca_iam_api_key: "<iam_api_key>" # Enter your IAM API key
      container_api_route: "API ROUTE" # Enter the Destination IP of the openshift-api Link endpoint for your Satellite loction. For example: https://i43fb00XXX-XXXX6bf59a8XXX-ce00.us-east.satellite.appdomain.cloud
    
  5. 클러스터의 시크릿을 작성하십시오.

    oc create -f secret.yaml -n kube-system
    
  6. 자동 스케일링된 작업자 풀에서 사용할 위치에 추가 호스트를 연결하십시오. 우수 사례로, 기본 작업자 풀에서 자동 스케일링을 설정하지 마십시오. 자동 확장 워커 풀에서 사용할 호스트를 연결할 때 cpu=16memory=64 과 같은 호스트 레이블을 지정해야 합니다. 호스트 레이블은 스케일링에 사용 가능한 호스트를 찾기 위해 클러스터 오토스케일러 추가 기능에서 사용됩니다. CPU및 메모리에 대한 호스트 레이블을 지정하는 동안 호스트를 연결하는 예제 명령입니다.

    ibmcloud sat host attach --location LOCATION --host-label "cpu=16" --host-label "memory=64" [--operating-system SYSTEM]
    
  7. 연결한 호스트를 사용하여 두 번째 작업자 풀을 작성하십시오. 자세한 정보는 Satellite에서 Red Hat OpenShift on IBM Cloud 클러스터 작성 을 참조하십시오.

  8. 더 많은 호스트를 사용자의 위치에 연결하십시오. 그러나 이를 작업자 풀에 지정하지 마십시오. 이러한 Ready/Unassigned 호스트는Auto-Scaling에 사용할 수 없습니다. 자동 확장에 사용할 수 있도록 남겨둘 호스트를 첨부할 때는 cpu=16memory=64 과 같은 호스트 레이블을 지정해야 합니다. 호스트 레이블은 스케일링에 사용 가능한 호스트를 찾기 위해 클러스터 오토스케일러 추가 기능에서 사용됩니다.

  9. 클러스터에 클러스터 자동 스케일러 애드온을 설치합니다. 오류 메시지 The 'cluster-autoscaler' add-on is not supported on satellite clusters 가 표시되면 계정이 추가 기능을 사용할 수 있도록 허용되지 않습니다. 허용 목록에 추가하려면 지원이 있는 케이스를 여십시오.

  10. 클러스터 자동 확장기 ConfigMap 를 편집하고 MinSize, MaxSize, 확장에 사용할 작업자 풀 등 사용할 자동 확장 매개변수를 지정합니다.