클러스터 업데이트

이 문서에서는 버전 변경을 포함하지 않는 클러스터 업데이트를 수행하는 방법을 보여줍니다.

클러스터 업데이트는 클러스터 구성에 대한 변경입니다.

클러스터 업그레이드는 제어 영역 버전 변경 또는 노드 풀 버전 변경이 포함된 특수한 클러스터 업데이트 사례입니다. 업그레이드에 대한 자세한 내용은 Google Distributed Cloud 업그레이드를 참조하세요.

방화벽 규칙 검토

버전 1.29 이상에서는 서버 측 프리플라이트 검사가 기본적으로 사용 설정됩니다. 서버 측 프리플라이트 검사에는 추가 방화벽 규칙이 필요합니다. 관리자 클러스터의 방화벽 규칙에서 '프리플라이트 검사'를 검색하고 필요한 모든 방화벽 규칙이 구성되었는지 확인합니다.

서버 측 프리플라이트 검사를 사용하면 gkectl을 사용하여 사용자 클러스터를 업데이트할 때 프리플라이트 검사가 관리자 워크스테이션에서 로컬로 실행되는 대신 관리자 클러스터에서 실행됩니다. Google Cloud 콘솔, Google Cloud CLI, Terraform을 사용하여 클러스터를 업데이트할 때 관리자 클러스터에서 서버 측 프리플라이트 검사가 실행됩니다.

관리자 클러스터를 업데이트하면 Google Distributed Cloud는 Docker의 Kubernetes(종류) 클러스터를 배포하여 관리자 클러스터를 업데이트하는 데 필요한 Kubernetes 컨트롤러를 일시적으로 호스팅합니다. 이러한 임시 클러스터를 부트스트랩 클러스터라고 합니다. 관리자 클러스터를 업데이트할 때 서버 측 프리플라이트 검사가 부트스트랩 클러스터에서 실행됩니다.

업데이트할 수 있는 항목

일부 클러스터 기능 및 설정은 업데이트할 수 있지만 클러스터를 만든 후에는 다른 기능 및 설정을 업데이트할 수 없습니다. 업데이트할 수 있는 기능을 알아보려면 관리자 클러스터 구성 파일사용자 클러스터 구성 파일의 참조 페이지를 살펴보세요. 업데이트할 수 있는 필드는 변경 가능으로 표시되고 업데이트할 수 없는 필드는 변경 불가로 표시됩니다.

gkectl 명령어를 실행하여 업데이트할 수 있는 기능과 설정을 확인할 수도 있습니다.

관리자 클러스터에서 업데이트 가능한 항목을 확인하려면 다음을 실행하세요.

gkectl update admin --help

출력 예시:

Update the admin cluster. Only the following updates are supported and they can
only be updated one at a time:
- Enabling/Disabling Vsphere Resource Metrics
- Adding static IPs
- Updating vCenter CA certificate
- Registering Admin Cluster
- Enabling/Disabling Cloud Audit Logging
- Enabling/Disabling Stackdriver
- Enabling/Disabling Auto Repair
- Enabling/Disabling Auto Resize for Addon Nodes
- Enabling/Disabling GKE OnPrem API
- Updating OS Image Type
- Enabling/Disabling AntiAffinityGroups
- Update Secrets Encryption Configuration
- [Preview] Enabling/Disabling Cluster Backup
- [Preview] Update Cluster Backup configs

사용자 클러스터에서 업데이트 가능한 항목을 확인하려면 다음을 실행하세요.

gkectl update cluster --help

출력 예시:

Update a GKE On-Prem cluster. Only the following updates are supported and they
can only be updated one at a time:
- Adding static IPs
- Updating node pool
- Updating user master cpu and memory
- Enabling/Disabling Vsphere Resource Metrics
- Enabling/Disabling vSphere CSI deployment
- Enabling/Disabling Auto Repair
- Enabling/Disabling Cloud Audit Logging
- Enabling/Disabling Stackdriver
- Enabling/Disabling GKE OnPrem API
- Registering User Cluster
- Updating vCenter CA certificate
- Updating MetalLB Address Pools
- Enabling/Disabling Auto Resizing on user master
- Updating NodePoolUpdatePolicy
- Enabling/Disabling AntiAffinityGroups
- [Preview] Enabling/Disabling Node Network Policy
- Updating Secrets Encryption
- Enabling/Disabling DataplaneV2 forwardMode

한 번에 하나의 항목 업데이트하기

한 번에 하나의 기능 또는 설정만 업데이트하세요. 예를 들어 마스터 CPU 및 메모리를 업데이트하고 자동 복구도 사용 중지하려고 합니다.

그런 다음 마스터 CPU 및 메모리와 자동 복구를 위한 두 가지 업데이트를 별도로 수행합니다. 두 번째 업데이트를 수행하기 전에 첫 번째 업데이트가 성공했는지 확인합니다.

업데이트 절차

gkectl, Google Cloud 콘솔, Google Cloud CLI를 사용하여 사용자 클러스터를 업데이트할 수 있습니다. Terraform을 사용하여 사용자 클러스터를 만든 경우 Terraform으로 클러스터를 업데이트할 수 있습니다. 대부분의 경우 gkectl을 사용하여 관리자 클러스터를 업데이트해야 합니다.

다음 예시에서는 클러스터를 업데이트하는 방법을 보여줍니다.

gkectl

gkectl update 명령어는 다음 형식 중 하나를 취합니다.

관리자 클러스터 예시(gkectl update admin)

관리자 클러스터의 gkeOnPremAPI.enabled 값을 false에서 true로 변경한다고 가정합니다. 먼저 관리자 클러스터 구성 파일을 수정하고 값을 true로 설정합니다.

gkeOnPremAPI:
  enabled: true

그런 다음 관리자 클러스터를 업데이트합니다.

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

다음을 바꿉니다.

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로

  • ADMIN_CLUSTER_CONFIG: 관리자 클러스터 구성 파일의 경로입니다.

사용자 클러스터 예시(gkectl update cluster)

사용자 클러스터의 stackdriver.vSphereDisableResourceMetrics 값을 false에서 true로 변경한다고 가정합니다. 먼저 사용자 클러스터 구성 파일을 수정하고 값을 true로 설정합니다.

stackdriver:
  disableVsphereResourceMetrics: true

그런 다음 사용자 클러스터를 업데이트합니다.

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

다음을 바꿉니다.

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로

  • USER_CLUSTER_CONFIG: 사용자 클러스터 구성 파일의 경로입니다.

사용자 클러스터 예시(gkectl update credentials)

사용자 클러스터가 vCenter Server를 호출하는 데 사용하는 사용자 인증 정보를 변경한다고 가정합니다.

사용자 클러스터 구성 파일에는 사용자 인증 정보 구성 파일을 가리키는 vCenter.credentials.fileRef.path 필드가 있습니다. 사용자 인증 정보 구성 파일에서 usernamepassword 값을 업데이트합니다. 예를 들면 다음과 같습니다.

items:
- name: "vcenter-creds"
  username: "new-vcenter-account"
  password: "U$icUKEW#INE"

그런 다음 사용자 인증 정보를 업데이트합니다.

gkectl update credentials vsphere \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

다음을 바꿉니다.

  • USER_CLUSTER_CONFIG: 사용자 클러스터 구성 파일의 경로

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로

Console

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

    GKE 클러스터로 이동

  2. Google Cloud 프로젝트를 선택한 후 업데이트하려는 클러스터를 선택합니다.

  3. 세부정보 패널에서 추가 세부정보를 클릭합니다.

  4. Google Cloud 콘솔에서 업데이트할 수 있는 필드에는 연필 아이콘이 표시됩니다. 연필 아이콘 중 하나를 클릭합니다. 상자가 열리면 필드 값을 원하는 대로 변경하고 완료를 클릭합니다.

  5. 페이지 상단의 진행률 표시줄에서 세부정보 표시를 클릭합니다. 업데이트가 완료될 때까지 기다립니다.

gcloud CLI

관련 업데이트 명령어를 실행합니다. 수정하려는 구성의 플래그만 지정합니다.

사용자 클러스터에서 관리자 업데이트

각 클러스터의 Kubernetes API 서버는 수신하는 요청을 승인할 수 있어야 합니다. 승인을 구성하려면 각 클러스터에서 Kubernetes 역할 기반 액세스 제어(RBAC) 정책을 구성해야 합니다. 관리자는 사용자 클러스터에서 cluster-admin 역할이 부여된 사용자입니다. 이 역할은 사용자에게 클러스터에 대한 전체 관리 액세스 권한을 부여합니다.

예를 들어 앨리스와 밥이 us-west1 리전에서 cluster-1이라는 사용자 클러스터의 유일한 관리자라고 가정합니다. 그리고 앨리스가 트렌트를 추가 관리자로 추가한다고 가정해보세요. 앨리스는 다음 명령어를 실행할 수 있습니다.

gcloud container vmware clusters update cluster-1 \
    --project example-project-id-12345 \
    --location us-west1 \
    --admin-users alice@example.com \
    --admin-users bob@example.com \
    --admin-users trent@example.com

위 명령어는 앨리스와 밥을 관리자 목록에 유지하고 트렌트를 관리자 목록에 추가합니다. 이 명령어는 현재 관리자 목록을 명령어에 지정된 목록으로 덮어쓰므로 앨리스와 밥이 명령어에 나열되어야 합니다. 또한 각 --admin-users 플래그는 사용자를 한 명만 지정합니다. 단일 플래그에 여러 사용자를 지정할 수 없습니다.

Terraform

  1. 클러스터 또는 노드 풀을 만드는 데 사용한 Terraform 구성 파일에서 해당 필드의 값을 변경합니다. 자세한 필드 설명은 Terraform 참고 문서를 확인하세요.

  2. terraform apply를 실행하여 구성을 업데이트합니다.

사용자 클러스터에서 관리자 업데이트

각 클러스터의 Kubernetes API 서버는 수신하는 요청을 승인할 수 있어야 합니다. 승인을 구성하려면 각 클러스터에서 Kubernetes 역할 기반 액세스 제어(RBAC) 정책을 구성해야 합니다. 관리자는 사용자 클러스터에서 cluster-admin 역할이 부여된 사용자입니다. 이 역할은 사용자에게 클러스터에 대한 전체 관리 액세스 권한을 부여합니다.

예를 들어 앨리스와 밥이 특정 사용자 클러스터의 유일한 관리자라고 가정해 보겠습니다. 그리고 앨리스가 트렌트를 추가 관리자로 추가한다고 가정해보세요. 앨리스는 Terraform 구성을 다음과 같이 조정한 후 terraform apply를 실행할 수 있습니다.

authorization {
  admin_users {
    username = "alice@example.com"
    username = "bob@example.com"
    username = "trent@example.com"
  }
}

앞의 조정에서는 앨리스와 밥을 관리자 목록에 유지하고 트렌트를 관리자 목록에 추가합니다. terraform apply 명령어는 현재 관리자 목록을 구성에 지정된 목록으로 덮어쓰므로 앨리스와 밥이 새 구성에 나열되어야 합니다.

추가 정보

이 섹션에 나열된 문서는 클러스터 업데이트에 대한 추가 세부정보를 제공합니다.

클러스터/관리자 업데이트

다음 문서에서는 gkectl update admingkectl update cluster를 사용하여 기능 및 설정을 업데이트하는 방법을 자세히 설명합니다.

사용자 인증 정보 업데이트

다음 문서에서는 gkectl update credentials를 사용하여 키와 인증서를 업데이트하는 방법을 자세히 설명합니다.

다음 단계

클러스터 업그레이드