Azure 클러스터 매개변수 업데이트
이 페이지에서는 Azure용 GKE 클러스터 설정을 업데이트하는 방법을 설명합니다. 이 안내에 따라 Kubernetes 버전을 포함한 클러스터의 업데이트 가능한 설정을 업데이트할 수 있습니다. 버전 업그레이드는 가장 일반적인 클러스터 업데이트 작업 중 하나이므로 별도의 클러스터 업그레이드 페이지에 클러스터 버전을 업그레이드하는 방법이 설명되어 있습니다.
클러스터를 업데이트하는 이유
클러스터를 업데이트하는 이유는 다음과 같습니다.
- 클러스터 설명 업데이트
- 클러스터의 주석 업데이트
- 클러스터의 관리 권한 사용자 목록 업데이트
- 클러스터의 로깅 구성을 업데이트합니다.
- 클러스터의 VM 크기를 업데이트합니다.
- 클러스터의 AzureClient를 업데이트합니다.
- AzureClient에서 워크로드 아이덴티티 제휴로 클러스터 인증을 업데이트합니다.
여기에 나열되지 않은 클러스터의 다른 필드를 업데이트할 수도 있습니다.
업데이트할 수 있는 필드의 전체 목록은 gcloud container azure clusters update 및 projects.locations.azureClusters.patch 문서를 참조하세요.
기본 요건
- 클러스터의 필드를 업데이트하려면 - gkemulticloud.googleapis.com/azureClusters.updateIdentity and Access Management 권한이 있어야 합니다.
업데이트 프로세스
Azure용 GKE가 클러스터를 업데이트하는 프로세스는 업데이트 유형에 따라 다릅니다. 변경해도 Azure용 GKE가 리소스를 다시 시작하거나 다시 만들지 않고 업데이트할 수 있는 경우도 있습니다(예: 클러스터 설명 업데이트). Azure용 GKE는 이러한 변경사항을 즉시 적용합니다.
변경하는 경우 컨트롤 플레인 노드를 다시 시작해야 하는 경우도 있습니다(예: VM 크기 또는 Kubernetes 버전 업데이트). 이러한 업데이트의 경우 Azure용 GKE는 다음 단계로 구성된 '순차적 업데이트'를 수행합니다.
- 업데이트할 컨트롤 플레인 인스턴스 하나를 선택합니다. Azure용 GKE는 비정상 인스턴스가 있으면 정상 인스턴스보다 먼저 업데이트합니다.
- 인스턴스를 삭제합니다. Azure용 GKE가 인스턴스를 다시 만들고 인스턴스가 새 구성으로 부팅됩니다.
- 새 인스턴스에서 상태 확인을 수행합니다.
- 상태 확인이 성공하면 다른 인스턴스를 선택하고 동일한 단계를 수행합니다. 모든 인스턴스가 다시 시작 또는 다시 생성될 때까지 이 주기를 반복합니다.
   상태 점검이 실패하면 Azure용 GKE는 클러스터를 DEGRADED상태로 설정하고 업데이트를 중지합니다. 자세한 내용은 다음 섹션을 참조하세요.
업데이트 실패 시
업데이트 후 Azure용 GKE는 클러스터에서 상태 점검을 수행합니다.
상태 점검이 실패하면 클러스터가 DEGRADED로 표시됩니다. 다음 Google Cloud CLI 명령어를 사용하여 클러스터 상태를 표시할 수 있습니다.
gcloud container azure clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION
다음을 바꿉니다.
- CLUSTER_NAME: 클러스터 이름입니다.
- GOOGLE_CLOUD_LOCATION: 클러스터를 관리하는 Google Cloud 리전입니다.
클러스터 업데이트
Google Cloud 콘솔, Google Cloud CLI 또는 GKE Multi-Cloud API를 사용하여 여러 클러스터 필드를 한 번에 업데이트할 수 있습니다.
업데이트 메서드 선택
콘솔, gcloud CLI, GKE Multi-Cloud API를 통해 대부분의 필드를 업데이트할 수 있습니다. 일부 필드는 두 메커니즘 중 하나를 통해서만 업데이트할 수 있습니다. 콘솔을 사용하여 클러스터를 업데이트하려면 먼저 클러스터에 로그인하기 위한 인증 방법을 선택하고 구성해야 합니다. 자세한 내용은 클러스터에 연결 및 인증을 참조하세요.
콘솔
- Google Cloud 콘솔에서 Google Kubernetes Engine 클러스터 개요 페이지로 이동합니다. 
- 클러스터가 있는 Google Cloud 프로젝트를 선택합니다. 
- 클러스터 목록에서 클러스터 이름을 선택한 후 측면 패널에서 세부정보 보기를 선택합니다. 
- 세부정보 탭의 변경할 필드에서 수정을 선택합니다. - 예를 들어 다른 사용자에게 클러스터 관리자 권한을 부여하려면 관리자 옆에 있는 수정을 선택하고 사용자의 이메일 주소를 입력합니다. 
- 변경이 완료되면 완료를 선택합니다. 
gcloud
gcloud CLI를 사용하여 클러스터를 업데이트할 때는 항상 Azure용 GKE에 업데이트할 클러스터를 알려주는 CLUSTER_NAME 및 GOOGLE_CLOUD_LOCATION 필드를 포함해야 합니다. 다음 명령어에는 업데이트할 필드만 포함합니다. 명령어를 실행하기 전에 다른 필드를 삭제합니다.
gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION \
    --admin-users=USERNAME_LIST \
    --client=CLIENT_NAME \
    --vm-size=VM_SIZE 
다음을 바꿉니다.
- CLUSTER_NAME: 클러스터 이름입니다.
- GOOGLE_CLOUD_LOCATION(필수): 클러스터를 관리하는 지원되는 Google Cloud 리전(예:- us-west1)입니다.
- CLUSTER_VERSION: 새로운 지원되는 클러스터 버전입니다.
- USERNAME_LIST: 쉼표로 구분된 사용자 이름 목록입니다(예: 'kai@example.com,hao@example.com,kalani@example.com'). 이 클러스터에 대한 관리자 권한을 부여할 사용자의 이메일 주소입니다. 이 설정의 이름이 클러스터의 모든 이전 관리자 목록을 대체합니다.
- CLIENT_NAME: AzureClient
- VM_SIZE: 지원되는 새 VM 크기
AzureClient에서 워크로드 아이덴티티 제휴로의 클러스터 인증을 업데이트하려면 다음 명령어를 실행합니다.
gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --azure-tenant-id="${TENANT_ID}" \
    --azure-application-id="${APPLICATION_ID}" \
    --clear-client
API
GKE Multi-cloud API를 사용하여 클러스터를 업데이트할 때는 HTTP 요청에 항상 CLUSTER_NAME 및 GOOGLE_CLOUD_LOCATION 필드를 포함해야 합니다. 이러한 필드는 Azure용 GKE에 업데이트할 클러스터를 알려줍니다. 또한 요청에 API 엔드포인트를 포함해야 합니다. 업데이트할 필드가 있는 JSON 파일을 만듭니다. JSON 파일과 UPDATE_MASK에 업데이트할 필드만 포함합니다.
다음 예시에서는 API를 통해 클러스터를 업데이트하는 방법을 보여줍니다.
업데이트할 수 있는 필드 목록을 포함한 자세한 내용은 projects.locations.azureClusters.patch 메서드 문서를 참조하세요.
- 업데이트할 필드가 있는 - cluster_update.json이라는 JSON 파일을 만듭니다.- 워크로드 아이덴티티 제휴를 사용할 때 JSON 파일은 다음과 같이 표시됩니다.
{ "description": "CLUSTER_DESCRIPTION", "controlPlane": { "version": "CLUSTER_VERSION", "vm_size": "VM_SIZE }, "azureServicesAuthentication": { "tenantId": "TENANT_ID", "applicationId": "APPLICATION_ID" }, "authorization": { "adminUsers": [ { "username": USERNAME1, "username": USERNAME2, "username": USERNAME3 } ] } }
- Azure 클라이언트를 사용할 때 JSON 파일은 다음과 같이 표시됩니다.
{ "description": "CLUSTER_DESCRIPTION", "controlPlane": { "version": "CLUSTER_VERSION", "vm_size": "VM_SIZE }, "azureClient": "CLIENT_NAME", "authorization": { "adminUsers": [ { "username": USERNAME1, "username": USERNAME2, "username": USERNAME3 } ] } }
 - 다음을 바꿉니다. - CLUSTER_VERSION: 새로운 지원되는 클러스터 버전입니다. 클러스터를 업그레이드할 때는 모든 부 버전 단계를 따라 업그레이드해야 합니다.
- CLUSTER_DESCRIPTION: 새 클러스터 설명
- USERNAME1,- USERNAME2,- USERNAME3: 이 클러스터에 대한 관리자 권한을 부여할 사용자의 이메일 주소입니다. 이 필드의 이름이 클러스터의 모든 이전 관리자 목록을 대체합니다.
- CLIENT_NAME: AzureClient 이름입니다.
- TENANT_ID: Azure 테넌트 ID입니다.
- APPLICATION_ID: Azure Active Directory 애플리케이션 만들기에서 만든 Azure 애플리케이션 ID입니다.
- VM_SIZE: 새 VM 크기입니다.
 
- 워크로드 아이덴티티 제휴를 사용할 때 JSON 파일은 다음과 같이 표시됩니다.
- 다음 명령어로 GKE Multi-Cloud API를 통해 이 설정을 업데이트합니다. - curl -d @cluster_update.json -X PATCH \ ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/azureClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
다음을 바꿉니다.
- ENDPOINT(필수): Google Cloud 서비스 엔드포인트입니다.
- PROJECT_ID(필수): Google Cloud 프로젝트입니다.
- GOOGLE_CLOUD_LOCATION(필수): 클러스터를 관리하는 지원되는 Google Cloud 리전(예:- us-west1)입니다.
- CLUSTER_NAME(필수): 클러스터 이름
- UPDATE_MASK(필수): 업데이트할 필드를 나타내는 다음 플래그 중 하나 이상을 쉼표로 구분한 목록입니다. 이 예시에서는 다음을 지정합니다.- controlPlane.version
- 설명
- authorization.admin_users
- control_plane.vm_size
- azure_client
- azure_services_authentication.tenant_id
- azure_services_authentication.application_id
 
AzureClient에서 워크로드 아이덴티티 제휴로의 클러스터 인증을 업데이트하려면 update_mask 필드에 azure_client, azure_services_authentication.tenant_id, azure_services_authentication.application_id를 추가합니다.
Logging 구성 업데이트
Google Cloud CLI를 사용하여 클러스터의 Cloud Logging 구성 설정을 업데이트할 수 있습니다. 로깅 구성을 업데이트하려면 다음 명령어를 실행합니다.
gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --logging=LOGGING_CONFIG \
다음을 바꿉니다.
- CLUSTER_NAME: 클러스터 이름
- GOOGLE_CLOUD_LOCATION: 클러스터를 관리하는 지원되는 Google Cloud 리전(예:- us-west1)
- LOGGING_CONFIG: [SYSTEM] 또는 [SYSTEM,WORKLOAD]
다음 단계
- 볼륨 KMS 키를 업데이트하려면 키 순환을 참조하세요.
- 업데이트 가능한 필드에 대한 자세한 내용은 gcloud container azure clusters update참고 문서를 확인하세요.
- projects.locations.azureClusters.patchREST API 참고 리소스를 참조하세요.