클러스터 자동 확장 처리

10

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

클러스터 자동 확장은 워크로드 수요를 기준으로 지정된 노드 풀의 노드 수 크기를 조절합니다. 클러스터의 노드 풀마다 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
  1. gkectl update cluster --config <var class="edit">USER_CLUSTER_CONFIG</var> --kubeconfig <var class="edit">ADMIN_CLUSTER_KUBECONFIG</var> 명령어를 실행합니다.

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

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

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

    nodePools:

    • name: my-existing-node-pool … replicas: 3 ... autoscaling: minReplicas: 1 maxReplicas: 5
  2. gkectl update cluster --config <var class="edit">USER_CLUSTER_CONFIG</var> --kubeconfig <var class="edit">ADMIN_CLUSTER_KUBECONFIG</var> 명령어를 실행합니다.

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

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

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

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

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

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

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

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

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods -n USER_CLUSTER_NAMEvar> | grep cluster-autoscaler

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

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

구성 맵 확인

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

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

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

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

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

문제 해결

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

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

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