클러스터 자동 확장 처리 사용 설정

이 페이지에서는 클러스터를 자동 확장하는 방법을 설명합니다. 클러스터 자동 확장 처리의 작동 방식을 알아보려면 클러스터 자동 확장 개요를 참조하세요.

클러스터 자동 확장은 워크로드 수요를 기준으로 지정된 노드 풀의 노드 수 크기를 조절합니다. 클러스터의 노드 풀마다 minReplicas 값과 maxReplicas 값을 지정합니다.

개별 노드 풀의 경우 minReplicas는 1 이상이어야 합니다. 그러나 특정 시점에서 할당되지 않은 사용자 클러스터 노드의 합계는 최소 3 이상이어야 합니다. 즉, 모든 자동 확장된 노드 풀의 minReplicas 값 합계는 모든 자동 확장되지 않은 노드 풀의 replicas 값 합계를 포함하여 최소 3 이상이어야 합니다.

자동 확장을 사용하여 사용자 클러스터 만들기

자동 확장을 사용하는 사용자 클러스터를 만들려면 사용자 클러스터 구성 파일nodePools 섹션에 autoscaling 필드를 추가합니다.

nodePools:
- name: pool‐1
  …
  replicas: 3
  ...
  autoscaling:
    minReplicas: 1
    maxReplicas: 5

이 구성은 3개의 복제본이 있는 노드 풀을 만들고 최소 노드 풀 크기를 1로 하고 최대 노드 풀 크기를 5로 하여 자동 확장을 적용합니다.

minReplicas 값은 1이상이어야 합니다.

자동 확장을 사용하는 노드 풀 추가

자동 확장을 사용하는 노드 풀을 기존 클러스터에 추가하려면 다음 안내를 따르세요.

  1. 사용자 클러스터 구성 파일을 수정하여 새 노드 풀을 추가하고 autoscaling 필드를 포함합니다. 필요에 따라 minReplicasmaxReplicas의 값을 조정합니다.

    nodePools:
    - name: my-new-node-pool
      …
      replicas: 3
      ...
      autoscaling:
        minReplicas: 1
        maxReplicas: 5
    
  2. 다음 명령어를 실행합니다.

    gkectl update cluster --config USER_CLUSTER_CONFIG \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

기존 노드 풀에 자동 확장 사용 설정

기존 클러스터의 노드 풀에 자동 확장을 사용 설정하려면 다음 안내를 따르세요.

  1. 사용자 클러스터 구성 파일에서 특정 nodePool을 수정하고 autoscaling 필드를 포함합니다. 필요에 따라 minReplicasmaxReplicas의 값을 조정합니다.

    nodePools:
    - name: my-existing-node-pool
      …
      replicas: 3
      ...
      autoscaling:
        minReplicas: 1
        maxReplicas: 5
    
  2. 다음 명령어를 실행합니다.

    gkectl update cluster --config USER_CLUSTER_CONFIG \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

기존 노드 풀의 자동 확장 사용 중지

특정 노드 풀의 자동 확장을 사용 중지하려면 다음 안내를 따르세요.

  1. 사용자 클러스터 구성 파일을 수정하고 노드 풀의 autoscaling 필드를 삭제합니다.

  2. gkectl update cluster 명령어를 실행합니다.

클러스터 자동 확장 처리 동작 확인

클러스터 자동 확장 처리가 수행하는 작업은 여러 방법으로 확인할 수 있습니다.

클러스터 자동 확장 처리 로그 확인

먼저 클러스터 자동 확장 처리 포드의 이름을 찾습니다. 다음 USER_CLUSTER_NAME을 사용자 클러스터 이름으로 바꿔 이 명령어를 실행합니다.

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods -n USER_CLUSTER_NAME | grep cluster-autoscaler

클러스터 자동 확장 처리 포드의 로그를 확인하려면 POD_NAME을 포드 이름으로 바꿉니다.

kubectl --kubeconfig ADMIN_KUBECONFIG logs cluster-autoscaler-POD_NAME --container cluster-autoscaler -n USER_CLUSTER_NAME

구성 맵 확인

클러스터 자동 확장 처리가 kube-system/cluster-autoscaler-status 구성 맵을 게시합니다. 이 맵을 보려면 다음 명령어를 실행하세요.

kubectl --kubeconfig USER_KUBECONFIG get configmap cluster-autoscaler-status -n kube-system -o yaml

클러스터 자동 확장 이벤트 확인

다음에서 클러스터 자동 확장 이벤트를 확인할 수 있습니다.

  • 포드(특히 예약할 수 없는 노드 또는 사용량이 적은 노드)
  • 노드
  • kube-system/cluster-autoscaler-status 구성 맵

문제 해결하기

클러스터 자동 확장 처리와 관련된 다음 문제 해결 정보를 참조하세요.

  • 클러스터 자동 확장 처리 제한사항 중 하나가 발생했을 수 있습니다.
  • 클러스터를 축소하는 데 문제가 있으면 pod 예약 및 중단을 참조하세요. kube-system pod에 PodDisruptionBudget을 추가해야 할 수 있습니다. kube-system 포드의 PodDisruptionBudget을 수동으로 추가하는 방법에 대한 상세 설명은 Kubernetes 클러스터 자동 확장 처리 FAQ를 참조하세요.
  • 축소 시에 클러스터 자동 확장 처리는 pod에 설정된 예약 및 축출 규칙을 고려합니다. 이러한 제한에 따라 자동 확장 처리로 노드가 삭제되지 않을 수 있습니다. 다음 조건의 포드가 포함된 경우에는 노드가 삭제되지 않을 수 있습니다.
    • 포드의 어피니티 또는 안티어피니티 규칙이 재예약을 방지함
    • 포드에 로컬 저장소가 포함됨
    • pod가 배포, StatefulSet, 작업 또는 ReplicaSet와 같은 컨트롤러로 관리되지 않음

클러스터 자동 확장 처리 및 장애 방지에 대한 자세한 내용은 Kubernetes 클러스터 자동 확장 처리 FAQ에서 다음 항목을 참조하세요.