노드 업그레이드 및 할당량 확인


개요

생성된 모든 노드에는 프로젝트의 리소스 할당량이 적용됩니다. 특정 예약 어피니티를 사용하여 생성된 노드 풀에는 노드 풀의 전체 기간 동안 예약 용량이 적용됩니다.

일시 급증 업그레이드는 이전 노드를 드레이닝하고 삭제하기 전에 추가 VM을 만들기 때문에 프로젝트의 리소스 할당량이나 예약이 부족하면 업그레이드에 실패할 수 있습니다(이 자료에서 '할당량'은 두 가지 모두를 지칭).

사용 가능한 할당량이 maxSurge에 지정된 노드 수보다 적은 경우 동시 업그레이드 수가 maxSurge + maxUnavailable보다 적습니다. 할당량이 부족해서 단일 노드를 만들 수 없고 maxUnavailable이 0으로 설정되어 있으면 업그레이드에 실패합니다.

다음 표에서는 여러 가지 업그레이드 동작을 보여주는 예시를 설명합니다.

업그레이드 설정 할당량에 따라 허용되는 추가 노드 수 결과
maxSurge: 5 maxUnavailable: 0 5 노드 5개를 동시에 업그레이드합니다.
maxSurge: 5 maxUnavailable: 0 2 노드 2개만 동시에 업그레이드합니다.
maxSurge: 5 maxUnavailable: 0 0 업그레이드 설정으로 인해 추가 노드를 가져와서 기존 노드를 다시 시작할 수 없으므로 업그레이드에 실패합니다.
maxSurge: 5 maxUnavailable: 1 5 노드 6개를 동시에 업그레이드하되, 노드 풀에서 업그레이드로 인해 일시적으로 중지되는 노드를 1개로 보장합니다.
maxSurge: 5 maxUnavailable: 1 2 노드 3개만 동시에 업그레이드하되, 노드 풀에서 업그레이드로 인해 중지되는 노드를 1개 이하로 보장합니다.
maxSurge: 5 maxUnavailable: 1 0 순차적 업그레이드 방식으로 각 노드를 다시 만들어 한 번에 1개 노드씩만 업그레이드합니다.

할당량 확인

업그레이드 작업 객체를 확인하면 업그레이드 작업에 대한 자세한 정보와 업그레이드 실패 여부 및 그 이유에 대한 정보를 확인할 수 있습니다. 업그레이드 작업 객체를 나열하려면 다음 명령어를 실행합니다.

gcloud container operations list --filter="STATUS=DONE AND TYPE=UPGRADE_NODES AND targetLink:https://container.googleapis.com/v1/projects/[PROJECT_ID]/zones/[ZONE]/clusters/[CLUSTER_NAME]"

리소스 할당량이 부족하여 최근 업그레이드가 실패한 경우의 출력은 다음과 비슷합니다.

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Insufficient quota to satisfy the request: waiting on IG: instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt errors: [QUOTA_EXCEEDED] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 50.0 in region us-central1.\
...

사유가 예약 부족인 경우 출력은 다음과 같습니다.

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Reservation does not have enough resources for the request: waiting on IG:\
  \ instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt error: [CONDITION_NOT_MET] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Specified reservation 'foo' does not have available resources\
  \ for the request."

업그레이드 오류 해결

할당량 때문에 업그레이드에 실패했다면 3가지 옵션이 있습니다.

  1. 할당량을 사용하고 있으나 더 이상 필요 없는 Compute Engine 리소스가 프로젝트에 있는지 확인합니다. 있다면 삭제하고 업그레이드를 다시 시도합니다.
  2. 1단계에서 업그레이드 차단이 해제되지 않았다면 할당량 상향 또는 특정 예약의 크기 상향을 요청합니다.
  3. 어떤 이유로 인해 할당량을 늘릴 수 없다면 maxUnavailable을 1로 변경하여 업그레이드 차단을 해제합니다. 업그레이드로 인한 중단을 최소화하려면 maxUnavailable = 0을 유지하는 것이 가장 좋은 방법이므로 이 옵션은 최후의 수단으로만 사용해야 합니다.

다음 단계