Azure 클러스터 매개변수 업데이트

이 페이지에서는 Azure용 GKE 클러스터 설정을 업데이트하는 방법을 설명합니다. 이 안내에 따라 Kubernetes 버전을 포함한 클러스터의 업데이트 가능한 설정을 업데이트할 수 있습니다. 버전 업그레이드는 가장 일반적인 클러스터 업데이트 작업 중 하나이므로 별도의 클러스터 업그레이드 페이지에 클러스터 버전을 업그레이드하는 방법이 설명되어 있습니다.

클러스터를 업데이트하는 이유

클러스터를 업데이트하는 이유는 다음과 같습니다.

  • 클러스터 설명 업데이트
  • 클러스터의 주석 업데이트
  • 클러스터의 관리 권한 사용자 목록 업데이트
  • 클러스터의 로깅 구성을 업데이트합니다.
  • 클러스터의 VM 크기를 업데이트합니다.
  • 클러스터의 AzureClient를 업데이트합니다.
  • AzureClient에서 워크로드 아이덴티티 제휴로 클러스터 인증을 업데이트합니다.

여기에 나열되지 않은 클러스터의 다른 필드를 업데이트할 수도 있습니다. 업데이트할 수 있는 필드의 전체 목록은 gcloud container azure clusters updateprojects.locations.azureClusters.patch 문서를 참조하세요.

기본 요건

  • 클러스터의 필드를 업데이트하려면 gkemulticloud.googleapis.com/azureClusters.update Identity and Access Management 권한이 있어야 합니다.

업데이트 프로세스

Azure용 GKE가 클러스터를 업데이트하는 프로세스는 업데이트 유형에 따라 다릅니다. 변경해도 Azure용 GKE가 리소스를 다시 시작하거나 다시 만들지 않고 업데이트할 수 있는 경우도 있습니다(예: 클러스터 설명 업데이트). Azure용 GKE는 이러한 변경사항을 즉시 적용합니다.

변경하는 경우 제어 영역 노드를 다시 시작해야 하는 경우도 있습니다(예: VM 크기 또는 Kubernetes 버전 업데이트). 이러한 업데이트의 경우 Azure용 GKE는 다음 단계로 구성된 '순차적 업데이트'를 수행합니다.

  1. 업데이트할 제어 영역 인스턴스 하나를 선택합니다. Azure용 GKE는 비정상 인스턴스가 있으면 정상 인스턴스보다 먼저 업데이트합니다.
  2. 인스턴스를 삭제합니다. Azure용 GKE가 인스턴스를 다시 만들고 인스턴스가 새 구성으로 부팅됩니다.
  3. 새 인스턴스에서 상태 확인을 수행합니다.
  4. 상태 확인이 성공하면 다른 인스턴스를 선택하고 동일한 단계를 수행합니다. 모든 인스턴스가 다시 시작 또는 다시 생성될 때까지 이 주기를 반복합니다. 상태 점검이 실패하면 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를 통해 대부분의 필드를 업데이트할 수 있습니다. 일부 필드는 두 메커니즘 중 하나를 통해서만 업데이트할 수 있습니다. 콘솔을 사용하여 클러스터를 업데이트하려면 먼저 클러스터에 로그인하기 위한 인증 방법을 선택하고 구성해야 합니다. 자세한 내용은 클러스터에 연결 및 인증을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 클러스터 개요 페이지로 이동합니다.

    GKE 클러스터로 이동

  2. 클러스터가 있는 Google Cloud 프로젝트를 선택합니다.

  3. 클러스터 목록에서 클러스터 이름을 선택한 후 측면 패널에서 세부정보 보기를 선택합니다.

  4. 세부정보 탭의 변경할 필드에서 수정을 선택합니다.

    예를 들어 다른 사용자에게 클러스터 관리 권한을 부여하려면 관리자 옆에 있는 수정을 선택하고 사용자의 이메일 주소를 입력합니다.

  5. 변경이 완료되면 완료를 선택합니다.

gcloud

gcloud CLI를 사용하여 클러스터를 업데이트할 때는 항상 Azure용 GKE에 업데이트할 클러스터를 알려주는 CLUSTER_NAMEGOOGLE_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_NAMEGOOGLE_CLOUD_LOCATION 필드를 포함해야 합니다. 이러한 필드는 Azure용 GKE에 업데이트할 클러스터를 알려줍니다. 또한 요청에 API 엔드포인트를 포함해야 합니다. 업데이트할 필드가 있는 JSON 파일을 만듭니다. JSON 파일과 UPDATE_MASK에 업데이트할 필드만 포함합니다.

다음 예시는 API를 통해 클러스터를 업데이트하는 방법을 보여줍니다. 업데이트할 수 있는 필드 목록을 포함한 자세한 내용은 projects.locations.azureClusters.patch 메서드 문서를 참조하세요.

  1. 업데이트할 필드가 있는 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 크기입니다.
  2. 다음 명령어로 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]

다음 단계