유지보수 기간 및 유지보수 제외 구성

이 페이지에서는 유지보수 기간 및 유지보수 제외를 사용하여 Google Kubernetes Engine(GKE) 클러스터에서 자동 업그레이드와 같은 자동 클러스터 유지보수가 수행되거나 될 수 없는 시기를 제어하는 방법을 보여줍니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

다음 방법 중 하나를 사용하여 기본 gcloud 설정을 진행합니다.

  • gcloud init를 사용하여 기본값 설정 과정을 진행합니다.
  • gcloud config를 사용하여 프로젝트 ID, 영역, 리전을 개별적으로 설정합니다.

gcloud init 사용

One of [--zone, --region] must be supplied: Please specify location 오류가 표시되면 이 섹션을 완료합니다.

  1. gcloud init를 실행하고 다음 안내를 따르세요.

    gcloud init

    원격 서버에서 SSH를 사용하는 경우 --console-only 플래그를 사용하여 다음 명령어로 브라우저를 실행하지 못하게 할 수 있습니다.

    gcloud init --console-only
  2. 안내를 따라 gcloud에서 Google Cloud 계정을 사용하도록 승인합니다.
  3. 새 구성을 만들거나 기존 구성을 선택합니다.
  4. Google Cloud 프로젝트를 선택합니다.
  5. 영역 클러스터의 기본 Compute Engine 영역이나 리전 또는 Autopilot 클러스터의 리전을 선택합니다.

gcloud config 사용

  • 기본 프로젝트 ID를 설정합니다.
    gcloud config set project PROJECT_ID
  • 영역 클러스터를 사용하는 경우 기본 컴퓨팅 영역을 설정합니다.
    gcloud config set compute/zone COMPUTE_ZONE
  • Autopilot 또는 리전 클러스터를 사용하는 경우 기본 컴퓨팅 리전을 설정합니다.
    gcloud config set compute/region COMPUTE_REGION
  • gcloud를 최신 버전으로 업데이트합니다.
    gcloud components update

유지보수 기간 구성

유지보수 기간을 구성하려면 유지보수 기간이 언제 시작하는지, 얼마나 지속되는지, 어떤 빈도로 반복되는지를 구성합니다. 예를 들어 월요일부터 금요일까지 매주 반복되는 유지보수 기간을 구성할 수 있습니다.

Google Cloud Console 또는 gcloud 명령어를 사용하여 유지보수 기간을 구성합니다.

간단한 유지보수 기간으로 클러스터 만들기

gcloud에서 --maintenance-window 플래그를 지정하여 간단한 유지보수 기간을 만들 수 있습니다. 이 플래그를 사용하면 단순화된 형식을 사용하여 매일 4시간의 유지보수 기간을 지정할 수 있습니다.

간단한 유지보수 기간으로 새 클러스터를 만들려면 다음 명령어를 실행합니다.

gcloud container clusters create cluster-name \
  --maintenance-window start-time

각 항목의 의미는 다음과 같습니다.

  • cluster-name은 새 클러스터의 이름입니다.
  • start-time은 UTC 시간 기준 24시간 타임스탬프로 설정됩니다(예: 16:00).

유지보수 기간은 매일 지정된 start-time에 실행되며 4시간 동안 실행됩니다.

유지보수 기간이 있는 클러스터 만들기

gcloud 도구 또는 Google Cloud Console에서 유지보수 기간을 사용하여 새 클러스터를 만들 수 있습니다.

gcloud

유지보수 기간이 있는 새 클러스터를 만들려면 다음 명령어를 실행합니다.

gcloud container clusters create cluster-name \
  --maintenance-window-start start-time \
  --maintenance-window-end end-time \
  --maintenance-window-recurrence rrule

각 항목의 의미는 다음과 같습니다.

  • cluster-name은 새 클러스터의 이름입니다.
  • start-timeRFC-5545 DTSTART입니다.
  • end-timestart-time과 동일한 형식으로 지정되지만 유지보수 기간을 계산하는 데만 사용됩니다. end-time 값은 start-time 이후 시간이어야 합니다.
  • rruleRFC-5545 RRULE입니다. 이는 반복 규칙을 지정하는 여러 가지 방법이 있는 매우 유연한 형식입니다.

예를 들어 다음 명령어는 2019년 8월 1일 UTC를 기준으로 오전 2시에 시작해서 4시간 후에 종료되며 매일 실행되는 유지보수 기간이 있는 my-cluster 클러스터를 만듭니다. 날짜 및 시간 형식 지정에 대해 자세히 알아보세요.

gcloud container clusters create my-cluster \
  --maintenance-window-start 2019-08-01T02:00:00Z \
  --maintenance-window-end 2019-08-01T06:00:00Z \
  --maintenance-window-recurrence FREQ=DAILY

콘솔

  1. Cloud Console에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭합니다.

  3. 원하는 대로 클러스터를 구성합니다.

  4. 탐색창의 클러스터에서 자동화를 클릭합니다.

  5. 유지보수 기간 사용 설정 체크박스를 선택합니다.

  6. 시작 시간과 기간을 선택한 다음 유지보수 기간이 시작되는 요일을 선택합니다. 반복 규칙 사양(RRule)을 직접 수정하려면 커스텀 편집기를 선택합니다.

  7. 만들기를 클릭합니다.

기존 클러스터의 유지보수 기간 구성

gcloud

기존 클러스터의 유지보수 기간을 만들거나 업데이트하려면 다음 명령어를 실행합니다.

gcloud container clusters update cluster-name \
  --maintenance-window-start start-time \
  --maintenance-window-end end-time \
  --maintenance-window-recurrence rrule

각 항목의 의미는 다음과 같습니다.

  • cluster-name은 기존 클러스터 이름입니다.
  • start-timeRFC-5545 DTSTART입니다.
  • end-timestart-time과 동일한 형식으로 지정되지만 유지보수 기간을 계산하는 데만 사용됩니다. end-time 값은 start-time 이후 시간이어야 합니다.
  • rruleRFC-5545 RRULE입니다. 이는 반복 규칙을 지정하는 여러 가지 방법이 있는 매우 유연한 형식입니다.

Console

기존 클러스터의 유지보수 기간을 만들거나 수정하려면 다음 안내를 따르세요.

  1. Cloud Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 목록에서 수정하려는 클러스터의 이름을 클릭합니다.

  3. 자동화에서 유지보수 기간 필드 옆의 유지보수 정책 수정을 클릭합니다.

  4. 유지보수 기간 사용 설정 체크박스를 선택합니다.

  5. 시작 시간과 기간을 선택한 다음 유지보수 기간이 시작되는 요일을 선택합니다. RRule을 직접 수정하려면 커스텀 편집기를 선택합니다.

  6. 변경사항 저장을 클릭합니다.

완료되지 않은 유지보수를 수동으로 완료

업그레이드 또는 기타 자동 유지보수가 완료되는 데 유지보수 기간보다 긴 시간이 소요되면 GKE는 진행 중인 유지보수 태스크를 중지했다가 다음 유지보수 기간 중에 다시 시작합니다. 자동 업그레이드가 취소되고 노드 자동 업그레이드가 사용 설정된 경우에는 노드 버전이 혼합된 상태일 수 있지만 클러스터는 정상적으로 작동합니다.

클러스터를 수동으로 업그레이드하거나, 부분 업그레이드를 취소하거나 롤백하려면 수동으로 클러스터 업그레이드를 확인하세요.

유지보수 기간 삭제

gcloud

클러스터에서 유지보수 기간을 삭제하려면 다음 명령어를 실행합니다.

gcloud container clusters update cluster-name --clear-maintenance-window

여기서 cluster-name은 기존 클러스터 이름입니다.

Console

유지보수 기간을 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 목록에서 수정하려는 클러스터의 이름을 클릭합니다.

  3. 자동화에서 유지보수 기간 필드 옆의 유지보수 정책 수정을 클릭합니다.

  4. 유지보수 기간 사용 설정 체크박스를 선택 취소합니다.

  5. 변경사항 저장을 클릭합니다.

유지보수 기간 예시

다음 예시는 유지보수 기간을 구성하는 여러 가지 방법을 보여줍니다. 플래그는 새 클러스터를 만들거나 기존 클러스터를 업데이트할 때 동일한 구문을 사용하므로 관련 플래그만 표시됩니다.

2019년 8월 27일부터 매주 화요일과 수요일에 하루 종일

이 예시에서 시작 및 종료 타임스탬프의 차이는 만 하루입니다. 따라서 유지보수 기간은 화요일과 수요일에 각각 24시간 동안 실행됩니다.

--maintenance-window-start 2019-08-27T00:00:00Z \
--maintenance-window-end 2019-08-28T00:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=TU,WE'
평일에 매일 오전 9시~오후 5시(UTC-4)

이 예시는 일일 유지보수 기간을 설정하되 주말은 생략하는 방법을 보여줍니다. 이 예시에서는 UTC가 아닌 시간대를 지정합니다.

--maintenance-window-start 2019-09-02T09:00:00-04:00 \
--maintenance-window-end 2019-09-02T17:00:00-04:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'
주 1회 오후 4시(UTC-7)에 8시간 동안

--maintenance-window-start의 시간대를 지정하지 않으면 Google Cloud 계정에 구성된 현지 시간이 사용됩니다. Google Cloud Console은 항상 현지 시간을 사용합니다.

--maintenance-window-start 2019-08-13T16:00:00-7:00 \
--maintenance-window-end 2019-08-14T00:00:00-7:00 \
--maintenance-window-recurrence FREQ=WEEKLY

유지보수 제외 구성

유지보수 제외를 구성하려면 이름(선택사항), 시작 시간, 종료 시간을 구성합니다. 유지보수 제외는 여러 날에 해당할 수 있습니다.

유지보수 제외는 32일의 순환 기간 동안 48시간의 유지보수를 허용해야 합니다. 유지보수 기간은 최대 유지보수 제외에 직접 영향을 미치며 다음 공식을 사용하여 계산할 수 있습니다.

maximum maintenance exclusion (days) = 32-day rolling window - 48 hours maintenance availability / maintenance window hours per day

예를 들어 정상 유지보수 기간이 4시간인 경우 최대 유지보수 제외는 20일(32 - 48/4 = 20)입니다.

클러스터에서 특정 시점에 최대 세 개의 유지보수 제외를 구성할 수 있습니다. 유지보수 제외가 발생했든 아니든 유지보수 제외를 수동으로 삭제할 수 있습니다.

Google Cloud Console 또는 gcloud 명령어를 사용하여 유지보수 제외를 구성할 수 있습니다.

유지보수 제외가 있는 클러스터 만들기

유지보수 제외가 있는 클러스터를 만들려면 다음 안내를 따르세요.

  1. Cloud Console에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭합니다.

  3. 원하는 대로 클러스터를 구성합니다.

  4. 탐색창의 클러스터에서 자동화를 클릭합니다.

  5. 유지보수 제외에서 유지보수 제외 추가를 클릭합니다.

  6. 시작 시간종료 시간을 선택합니다.

  7. 만들기를 클릭합니다.

블랙 프라이데이의 유지보수 제외 예시를 확인할 수 있습니다.

기존 클러스터의 유지보수 제외 구성

gcloud

기존 클러스터의 유지보수 제외를 구성하려면 다음 명령어를 실행합니다.

gcloud container clusters update CLUSTER_NAME \
  --add-maintenance-exclusion-name EXCLUSION_NAME
  --add-maintenance-exclusion-start START_DATE_TIME \
  --add-maintenance-exclusion-end END_DATE_TIME

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터 이름입니다.
  • EXCLUSION_NAME: 유지보수 제외의 이름입니다.
  • START_DATE_TIME: 제외 시작 날짜와 시간입니다.
  • END_DATE_TIME: 제외 종료 날짜와 시간입니다.

지원되는 날짜 및 시간 형식을 보려면 gcloud topic datetimes를 실행합니다.

Console

기존 클러스터의 유지보수 제외를 구성하려면 다음 안내를 따르세요.

  1. Cloud Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 목록에서 수정하려는 클러스터의 이름을 클릭합니다.

  3. 자동화에서 유지보수 제외 필드 옆의 유지보수 제외 수정을 클릭합니다.

  4. 유지보수 제외에서 유지보수 제외 추가를 클릭합니다.

  5. 시작 시간종료 시간을 선택합니다.

  6. 변경사항 저장을 클릭합니다.

유지보수 제외 삭제

클러스터에는 언제든지 최대 세 개의 활성, 비경과 유지보수 제외가 있을 수 있습니다.

gcloud

기존 유지보수 제외를 삭제하려면 다음 명령어를 실행합니다.

gcloud container clusters update cluster-name \
  --remove-maintenance-exclusion exclusion-name

각 항목의 의미는 다음과 같습니다.

  • cluster-name은 기존 클러스터 이름입니다.
  • exclusion-name은 삭제할 유지보수 제외의 이름입니다.

Console

기존 클러스터에서 유지보수 제외를 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 목록에서 수정하려는 클러스터의 이름을 클릭합니다.

  3. 자동화에서 유지보수 제외 필드 옆의 유지보수 제외 수정을 클릭합니다.

  4. 유지보수 제외에서 삭제하려는 제외의 종료 시간 필드 옆에 있는 항목 삭제를 클릭합니다.

  5. 변경사항 저장을 클릭합니다.

클러스터의 모든 유지보수 제외를 보려면 클러스터의 유지보수 정책을 참조하세요.

유지보수 제외 예시

다음 예시에서는 블랙 프라이데이에서 사이버 먼데이까지 4일간, 많은 소매업체에서 연중 판매량이 가장 많은 기간에 유지보수를 방지합니다. 이 예시는 2019년 블랙 프라이데이(2019년 11월 29일)부터 2019년 사이버 먼데이(2019년 12월 2일)까지, 미동부 시간(UTC-5) 기준 자정부터 미서부 시간(UTC-7) 기준 23:59:59까지 유지보수 기간이 발생하지 않도록 하는 방법을 보여줍니다.

gcloud container clusters update sample-cluster \
 --add-maintenance-exclusion-name black-friday \
 --add-maintenance-exclusion-start 2019-11-29T00:00:00-05:00 \
 --add-maintenance-exclusion-end 2019-12-02T23:59:59-07:00

클러스터의 유지보수 정책 보기

유지보수 기간 및 모든 유지보수 제외를 포함하여 클러스터의 유지보수 정책을 보려면 다음 명령어를 사용합니다.

gcloud container clusters describe cluster-name

다음 단계