클러스터 업그레이드 출시 순서 지정


이 페이지에서는 출시 시퀀싱을 사용하여 GKE 클러스터 업그레이드를 관리하는 방법을 설명합니다. 자세한 내용은 출시 시퀀싱으로 클러스터 업그레이드 정보를 참조하세요.

시작하기 전에

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

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

필요한 역할

출시 시퀀스 구성

이 문서에서는 Fleet 또는 팀 범위로 구성된 클러스터 그룹을 사용하여 출시 시퀀스를 만드는 방법을 설명합니다. 이 문서에서는 그룹이라는 용어를 사용하여 Fleet 또는 팀 범위를 모두 나타내는데, 이는 그룹화 방법 중 하나로 구성된 출시 시퀀스를 만들 수 있기 때문입니다.

클러스터 그룹이 최대 3개까지 있는 시퀀스를 만들 수 있으며 한 그룹에서 클러스터 업그레이드가 완료된 후 원하는 소크 테스트 시간(최대 30일)을 선택할 수 있습니다. Autopilot 및 Standard 클러스터 모두를 포함할 수 있습니다.

출시 시퀀스를 만들려면 클러스터를 Fleet 또는 팀 범위 그룹으로 구성해야 합니다. 클러스터 구성 방법에 대한 안내는 지역 은행 예시를 참조하세요. 그룹으로 구성된 후에는 업스트림 그룹 관계와 각 그룹의 적응 시간을 정의하여 출시 시퀀스를 만들 수 있습니다. 출시 시퀀스에서 업스트림은 이전 그룹을 참조하고 다운스트림은 다음 그룹을 참조합니다.

클러스터를 그룹으로 구성하기

출시 시퀀스에서 모든 그룹의 모든 클러스터는 동일한 출시 채널에 등록되어야 하며 동일한 부 버전에 있어야 합니다. 이러한 요구사항이 충족되지 않고 클러스터 간 버전 불일치가 있으면 버전 출시에 문제가 발생할 수 있습니다. 자세한 내용은 출시 자격 요건을 참조하세요.

Fleet 간에 출시 시퀀스를 만들거나 팀의 팀 범위(미리보기) 간에 출시 시퀀스를 만들 수 있습니다.

출시 시퀀싱으로 클러스터 업그레이드 정보의 설명대로 팀 범위는 Fleet 클러스터의 하위 집합을 특정 애플리케이션 팀과 연결할 수 있는 엔터프라이즈 Fleet 수준 구성입니다. 팀 범위를 사용하려면 GKE Enterprise를 사용 설정해야 합니다. 출시 시퀀싱에 팀 범위를 사용하거나 만들 때 다음 제한사항이 적용됩니다.

  • 팀 기반 시퀀스에는 단일 테넌시 클러스터가 필요합니다. 즉, 각 개별 클러스터는 단일 팀에만 연결됩니다. 공유 클러스터(일반 Fleet팀 관리에서 지원됨)는 출시 시퀀싱에 지원되지 않습니다.

  • 팀 범위 간에 출시 시퀀스를 만들려면 각 팀 범위가 서로 다른 Fleet에 있어야 합니다. 같은 Fleet 내의 여러 팀 범위 간에 출시 시퀀스를 만들 수 없습니다.

클러스터를 이미 그룹으로 구성했다면 다음 단계를 건너뛰고 출시 시퀀스 만들기로 진행하면 됩니다.

Fleet

Fleet 기반 출시 시퀀스를 만들려면 먼저 클러스터를 Fleet으로 그룹화해야 합니다. Fleet 기반 출시 시퀀스 예시와 같이 테스트, 스테이징, 프로덕션과 같은 배포 환경별로 클러스터를 구성할 수 있습니다.

선택한 그룹화에 따라 Fleet에 각 클러스터를 등록합니다.

팀 기반 출시 시퀀스를 만들려면 클러스터를 팀 범위로 그룹화해야 합니다. 이렇게 하려면 먼저 범위 기반 출시 시퀀스 예시와 같이 테스트, 스테이징, 프로덕션과 같은 배포 환경별로 클러스터를 Fleet에 구성합니다. 그런 다음 클러스터를 여러 팀의 클러스터에 대한 범위로 더 세분화할 수 있습니다.

  1. 시퀀스의 클러스터마다 클러스터를 Fleet에 등록합니다. 이 클러스터의 팀 범위를 만들 프로젝트의 Fleet에 클러스터를 등록해야 합니다. 클러스터를 다른 호스트 프로젝트의 Fleet에 등록하려면 프로젝트 간 등록에 필요한 권한을 설정해야 합니다.
  2. 팀 범위 2~3개를 만들어 클러스터를 구성합니다. 팀의 각 Fleet의 호스트 프로젝트에 각 범위를 만듭니다. 출시 시퀀스에는 팀 범위가 최대 3개까지 있을 수 있습니다.

    전체 플래그 목록은 gcloud alpha container fleet scopes create 참조를 확인하세요. create 명령어를 사용하는 경우 안내에 있는 플래그를 사용하여 출시 시퀀스를 만들면 됩니다.

  3. 범위에 각 클러스터 추가

출시 시퀀스 만들기

출시 시퀀스는 요소가 최대 3개까지 있는 연결된 목록으로 구성됩니다.

출시 시퀀스를 만들 때 클러스터 그룹마다 Fleet 또는 팀 범위 속성을 설정합니다.

  • 업스트림 그룹: 다운스트림 그룹의 새 버전을 검증하는 업스트림 Fleet 또는 팀 범위입니다. 시퀀스의 첫 번째 그룹에는 업스트림 그룹을 설정하지 않습니다.
  • 적응 시간: 그룹의 적응 시간은 업그레이드가 완료되거나 출시가 30일 소요된 시점과 다운스트림 그룹에서 업그레이드가 시작될 수 있는 시점입니다. 자세한 내용은 출시 시퀀스에서 버전 검증 작동 방식을 참조하세요.

다음 각 명령어에서 SOAK_TIME을 업데이트할 그룹의 적응 시간으로 바꿉니다.

Fleet - gcloud

다음 안내에서는 gcloud container fleet clusterupgrade update 명령어를 사용하지만 gcloud container fleet clusterupgrade create 명령어로 동일한 속성을 설정할 수도 있습니다.

출시 시퀀스를 만듭니다.

  1. 시퀀스의 첫 번째 Fleet에 대한 적응 시간을 설정합니다.

    gcloud container fleet clusterupgrade update \
        --default-upgrade-soaking=SOAK_TIME \
        --project=FIRST_FLEET_PROJECT_ID
    

    FIRST_FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

  2. 시퀀스의 두 번째 Fleet에 대한 업스트림 Fleet 및 적응 시간을 설정합니다.

    gcloud container fleet clusterupgrade update \
        --upstream-fleet=FIRST_FLEET_PROJECT_ID \
        --default-upgrade-soaking=SOAK_TIME \
        --project=SECOND_FLEET_PROJECT_ID
    

    FIRST_FLEET_PROJECT_ID를 첫 번째 Fleet 호스트 프로젝트의 프로젝트 ID로 바꾸고 SECOND_FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

  3. 선택사항: 출시 시퀀스에 3개의 Fleet을 사용하려는 경우 시퀀스의 세 번째 Fleet에 대해 업스트림 Fleet을 설정합니다.

    gcloud container fleet clusterupgrade update \
        --upstream-fleet=SECOND_FLEET_PROJECT_ID \
        --default-upgrade-soaking=SOAK_TIME \
        --project=THIRD_FLEET_PROJECT_ID
    

    SECOND_FLEET_PROJECT_ID를 두 번째 Fleet 호스트 프로젝트의 프로젝트 ID로 바꾸고 THIRD_FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

Fleet - Terraform

이 섹션에서는 Terraform을 사용하여 Fleet 기반 시퀀스를 만드는 방법을 보여줍니다. 이 리소스를 사용하여 시퀀스를 업데이트할 수도 있습니다. 자세한 내용은 google_gke_hub_feature 참조 문서를 확인하세요.

출시 시퀀스를 만듭니다.

  1. Terraform 구성에 다음 블록을 추가하여 시퀀스의 첫 번째 Fleet에 대한 적응 시간을 설정합니다.

    resource "google_gke_hub_feature" "feature" {
      name = "clusterupgrade"
      location = "global"
      spec {
        clusterupgrade {
          upstream_fleets = []
          post_conditions {
            soaking = "SOAK_TIME"
          }
        }
      }
      project = "FIRST_FLEET_PROJECT_ID"
    }
    

    FIRST_FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

  2. Terraform 구성에 다음 블록을 추가하여 시퀀스의 두 번째 Fleet에 대한 업스트림 Fleet 및 적응 시간을 설정합니다.

    resource "google_gke_hub_feature" "feature" {
      name = "clusterupgrade"
      location = "global"
      spec {
        clusterupgrade {
          upstream_fleets = ["FIRST_FLEET_PROJECT_ID"]
          post_conditions {
            soaking = "SOAK_TIME"
          }
        }
      }
      project = "SECOND_FLEET_PROJECT_ID"
    }
    

    FIRST_FLEET_PROJECT_ID를 첫 번째 Fleet 호스트 프로젝트의 프로젝트 ID로 바꾸고 SECOND_FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

  3. 선택사항: 출시 시퀀스에 3개의 Fleet을 사용하려는 경우 Terraform 구성에 다음 블록을 추가하여 해당 시퀀스의 Fleet에 업스트림 Fleet을 설정합니다.

    resource "google_gke_hub_feature" "feature" {
      name = "clusterupgrade"
      location = "global"
      spec {
        clusterupgrade {
          upstream_fleets = ["SECOND_FLEET_PROJECT_ID"]
          post_conditions {
            soaking = "SOAK_TIME"
          }
        }
      }
      project = "THIRD_FLEET_PROJECT_ID"
    }
    

    SECOND_FLEET_PROJECT_ID를 두 번째 Fleet 호스트 프로젝트의 프로젝트 ID로 바꾸고 THIRD_FLEET_PROJECT_ID를 Fleet 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

팀 - gcloud

팀 범위를 만들거나 업데이트할 때 이러한 속성을 설정할 수 있습니다. 다음 안내에서는 gcloud alpha container fleet scopes update 명령어를 사용하지만 gcloud alpha container fleet scopes create 명령어를 사용하여 팀 범위를 만들 때 같은 속성을 설정할 수 있습니다.

이러한 명령어마다 변수를 각 팀 범위 이름이나 팀 범위의 Fleet 호스트 프로젝트 ID로 바꿉니다.

출시 시퀀스를 만듭니다.

  1. 시퀀스의 첫 번째 범위에 대한 적응 시간을 설정합니다.

    gcloud alpha container fleet scopes update projects/FIRST_SCOPE_PROJECT_ID/locations/global/scopes/FIRST_SCOPE_NAME \
        --default-upgrade-soaking=SOAK_TIME \
        --project=FIRST_SCOPE_PROJECT_ID
    
  2. 시퀀스의 두 번째 범위에 대한 업스트림 범위와 적응 시간을 설정합니다.

    gcloud alpha container fleet scopes update projects/SECOND_SCOPE_PROJECT_ID/locations/global/scopes/SECOND_SCOPE_NAME \
        --upstream-scope=projects/FIRST_SCOPE_PROJECT_ID/locations/global/scopes/FIRST_SCOPE_NAME \
        --default-upgrade-soaking=SOAK_TIME \
        --project=SECOND_SCOPE_PROJECT_ID
    
  3. 선택사항: 출시 시퀀스에 팀 범위 3개를 만들려면 시퀀스의 세 번째 범위에 대한 업스트림 범위를 설정합니다.

    gcloud alpha container fleet scopes update projects/THIRD_SCOPE_PROJECT_ID/locations/global/scopes/THIRD_SCOPE_NAME \
        --upstream-scope=projects/SECOND_SCOPE_PROJECT/locations/global/scopes/SECOND_SCOPE_NAME \
        --default-upgrade-soaking=SOAK_TIME \
        --project=THIRD_SCOPE_PROJECT_ID
    

출시 시퀀스의 상태 확인

다음 방법 중 하나를 사용하여 출시 시퀀스 상태를 확인할 수 있습니다.

  • Google Cloud 콘솔에서 출시 시퀀스의 시각적 표현을 모니터링합니다(미리보기, Fleet 기반 출시 시퀀스만 해당).
  • gcloud CLI 또는 GKE Hub API를 사용하여 출시 시퀀스 상태를 확인합니다.

Google Cloud 콘솔에서 출시 시퀀스 모니터링

  1. Google Cloud 콘솔에서 출시 시퀀싱 페이지로 이동합니다.

    출시 시퀀싱으로 이동

  2. 출시 시퀀스 모니터링에서 시퀀스를 봅니다. 출시 시퀀스가 표시되지 않으면 안내에 따라 다른 출시 시퀀스로 전환하거나 아직 하지 않은 경우 출시 시퀀스를 만듭니다.

콘솔을 사용하여 출시 시퀀스를 모니터링하는 방법

이 페이지에서는 프로젝트의 Fleet과 연결된 출시 시퀀스를 볼 수 있습니다. 다음을 수행하여 출시 시퀀스의 진행 상태를 확인할 수 있습니다.

  • 전체 출시 시퀀스를 보거나 개별 Fleet 및 Fleet 내 클러스터의 상태와 Fleet 간의 적응 시간을 확인합니다. 또한 시퀀스 구성을 확인하려는 경우 활성 업그레이드가 없는 시퀀스를 볼 수도 있습니다.
  • 업그레이드 유형(컨트롤 플레인 또는 노드 업그레이드) 및 특정 버전(예: 1.31.6-gke.500)별로 필터링합니다.

GKE가 시퀀스의 모든 클러스터를 업그레이드하는 동안 전체 출시 시퀀스를 시각적으로 모니터링하여 프로덕션 환경 클러스터를 업그레이드하기 전에 환경에서 새 버전을 검증할 수 있습니다. 모니터링하는 동안 gcloud CLI로 출시 시퀀스를 관리하고 필요에 따라 변경할 수 있습니다.

다른 출시 시퀀스로 전환

이 페이지에서는 Google Cloud 콘솔의 활성 프로젝트가 출시 시퀀스에 등록된 Fleet의 Fleet 호스트 프로젝트인 경우의 Fleet 기반 출시 시퀀스를 보여줍니다.

다른 출시 시퀀스를 보려면 페이지 상단의 프로젝트 선택 도구에서 다른 출시 시퀀스와 연결된 Fleet 호스트 프로젝트를 선택합니다.

gcloud CLI 사용

다음 섹션에서 이러한 명령어를 사용하여 출시 시퀀스에서 업그레이드가 진행되는 방법을 확인합니다. 제공되는 세부정보에 대한 자세한 내용은 출시 시퀀스의 상태 정보를 참조하세요.

이러한 명령어를 실행하려면 각 Fleet 호스트 프로젝트에 대해 필요한 권한이 있는지 확인합니다. 예를 들어 시퀀스에 서로 다른 Fleet의 프로젝트 간 범위가 있는 경우 각 프로젝트에 시퀀스를 설명할 수 있는 권한이 필요합니다.

다음 명령어의 경우 시퀀스에서 Fleet 하나 또는 범위에 대한 정보만 필요하면 --show-linked-cluster-upgrade 플래그를 --show-cluster-upgrade로 바꿉니다.

Fleet

fleet 기반 출시 시퀀스 상태를 확인합니다.

gcloud container fleet clusterupgrade describe \
    --show-linked-cluster-upgrade --project=FLEET_PROJECT_ID

FLEET_PROJECT_ID를 시퀀스의 모든 Fleet에 대한 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

전체 플래그 목록은 gcloud container fleet clusterupgrade describe 참조를 참고하세요.

팀 기반 출시 시퀀스 상태를 확인합니다.

gcloud alpha container fleet scopes describe SCOPE_NAME \
    --show-linked-cluster-upgrade
    --project=SCOPE_PROJECT_ID

SCOPE_NAME을 출시 시퀀스의 팀 범위 이름으로 바꾸고 SCOPE_PROJECT_ID를 이 팀 범위의 프로젝트 ID로 바꿉니다.

전체 플래그 목록은 gcloud alpha container fleet scopes describe 참조를 확인하세요.

Fleet 또는 팀 범위 내의 개별 클러스터 상태를 보려면 Fleet 호스트 프로젝트에서 다음 명령어를 실행하고 membershipStates 섹션을 참조하세요.

gcloud container fleet features describe clusterupgrade

출시 시퀀스의 상태 정보

버전 출시 상태를 확인할 때 해당 그룹 내 각 그룹 및 클러스터의 진행 상황을 확인할 수 있습니다.

클러스터 또는 그룹의 잠재적인 상태는 다음 표를 참조하세요.

상태 단일 클러스터 그룹(Fleet 또는 팀 범위)
요건 미충족 이 클러스터는 이 업그레이드에 적합하지 않습니다. 이 그룹에 있는 하나 이상의 클러스터가 이 업그레이드에 적합하지 않습니다.
대기 중 업그레이드가 시작되지 않았거나 클러스터에 대한 업그레이드가 진행 중입니다. 그룹의 클러스터에서 업그레이드가 시작되지 않았습니다.
IN_PROGRESS 해당 사항 없음 업그레이드가 하나 이상의 클러스터에서 시작되었지만 모든 클러스터에서 완료되지 않았습니다.
적응 클러스터에서 업그레이드가 완료되었고 적응이 완료되지 않았습니다. 모든 클러스터에서 업그레이드가 완료되었고 적응이 완료되지 않았습니다.
FORCED_SOAKING 업그레이드에 최대 업그레이드 시간(30일)이 초과되어 강제로 적응 단계에 들어갔습니다. 업그레이드가 클러스터에서 계속 수행될 수 있습니다. 업그레이드에 최대 업그레이드 시간(30일)이 초과되어 강제로 적응 단계에 들어갔습니다. 업그레이드가 클러스터에서 계속 수행될 수 있습니다.
완료 업그레이드가 '완료'로 처리됩니다. 즉, 이 클러스터에서 업그레이드가 적응을 완료했습니다. 업그레이드가 '완료'로 취급되며 다운스트림 그룹에서 사용할 수 있습니다. 즉, 업그레이드가 적응을 마친 것입니다.

이러한 명령어의 출력에서 clusterUpgrade(s).specclusterUpgrade(s).state 속성에는 적응 시간, 클러스터 업그레이드 재정의, 업그레이드 상태와 같은 클러스터 업그레이드에 대한 추가 정보가 포함됩니다.

출시 시퀀스 관리

다음 섹션에서 설명하는 여러가지 방법의 출시 시퀀싱을 사용하여 자동 클러스터 업그레이드를 제어할 수 있습니다.

그룹의 적응 시간 변경

그룹의 기본 적응 시간을 변경하거나 해당 그룹이 특정 버전으로 업그레이드되는 경우 적응 시간을 변경할 수 있습니다.

기본 적응 시간 업데이트

그룹의 기본 적응 시간을 변경하려면 출시 시퀀스 만들기 안내에 있는 명령어를 사용하고, 업스트림 그룹을 설정하는 플래그를 생략합니다.

기본 적응 시간 재정의

특정 버전 출시의 적응 시간을 그룹의 기본 적응 시간과 다르게 변경할 수 있습니다. 예를 들어 이미 새 버전을 검증했으며 다음 그룹에서 업그레이드를 시작할 준비가 된 경우 적응 시간을 0으로 설정할 수 있습니다. 특정 버전을 검증하는 데 기본 적응 시간보다 더 많은 시간을 원하는 경우에도 사용할 수 있습니다.

적응 시간은 그룹별로 설정되므로 이 시퀀스의 다른 그룹에 대한 적응 시간을 재정의하려면 시퀀스 유형에 따라 대체된 Fleet 또는 범위 이름으로 동일한 명령어를 사용하여 업데이트하세요.

이 섹션의 안내에 따라 다음 변수를 바꿉니다.

  • SOAK_TIME: 기본값 이외에 사용할 적응 시간입니다(예: 한 버전 출시에 대한 적응 시간을 건너뛰려면 '0d').
  • UPGRADE_NAME: 업그레이드 유형입니다(제어 영역 업그레이드의 경우 k8s_control_plane, 노드 업그레이드의 경우 k8s_node).
  • VERSION: 이 그룹에 버전(예: 1.25.2-gke.400)이 출시된 후 기본 적응 시간을 재정의하려는 GKE 버전입니다.

Fleet - gcloud

특정 버전의 버전 출시에 사용된 적응 시간을 재정의하려는 Fleet의 호스트 프로젝트에서 이 명령어를 실행합니다.

Fleet의 적응 시간을 변경합니다.

gcloud container fleet clusterupgrade update
    --add-upgrade-soaking-override=SOAK_TIME \
    --upgrade-selector=name=UPGRADE_NAME,version=VERSION

Fleet - Terraform

clusterupgrade 블록 내의 Terraform 구성에 다음 gke_upgrades_overrides 블록을 추가하여 특정 버전의 버전 출시에 사용된 적응 시간을 재정의합니다.

gke_upgrade_overrides {
    upgrade {
      name = "UPGRADE_NAME"
      version = "VERSION"
    }
    post_conditions {
      soaking = "SOAK_TIME"
    }
  }

팀 - gcloud

팀 범위의 Fleet 호스트 프로젝트에서 이 명령어를 실행합니다. SCOPE_NAME을 특정 버전의 버전 출시에 사용된 적응 시간을 재정의하려는 팀 범위의 이름으로 바꿉니다.

팀 범위 적응 시간을 변경합니다.

gcloud alpha container fleet scopes update SCOPE_NAME \
    --add-upgrade-soaking-override=SOAK_TIME \
    --upgrade-selector=name=UPGRADE_NAME,version=VERSION

시퀀스의 순서 변경

시퀀스 순서를 변경하려면 출시 시퀀스 만들기 안내에 있는 명령어를 사용하여 업스트림 그룹을 업데이트합니다.

그룹의 버전 출시 완료 지연

그룹에서 클러스터로 새 버전 출시가 완료되지 않도록 일시적으로 방지해야 하는 경우 대상 버전으로 업그레이드되지 않은 클러스터에 유지보수 제외를 추가할 수 있습니다. 이렇게 하면 그룹이 최대 30일 동안 적응 시간 또는 다운스트림 그룹으로 진행되지 않도록 일시중지할 수 있습니다. 30일 후에는 그룹이 적응을 시작합니다.

해당 그룹의 적응 시간을 30일로 변경하여 출시 시퀀스가 다음 그룹으로 이동하기 전에 대기하는 시간을 극대화할 수도 있습니다.

다음 그룹에 대해 업그레이드를 더 지연해야 하는 경우 다음 그룹의 클러스터에 대해 유지보수 제외를 사용하면 됩니다.

Fleet 기반 및 팀 기반 출시 시퀀스 간 전환

Fleet 기반 시퀀스에서 팀 범위 기반 시퀀스로 또는 팀 범위 기반 시퀀스에서 Fleet 기반 시퀀스로 전환할 수 있습니다. 이 안내에서는 예시 다이어그램에 설명된 대로 구성된 시퀀스 간에 전송한다고 가정합니다.

Fleet에서 팀으로

클러스터를 Fleet 기반 출시 시퀀스에서 팀 기반 출시 시퀀스로 변경하려면 다음 단계를 수행합니다.

  1. 구성을 수정하는 동안 업그레이드가 발생하지 않도록 각 Fleet의 모든 클러스터에 유지보수 제외를 구성합니다.
  2. Fleet 호스트 프로젝트에서 GKE Enterprise를 사용 설정했는지 확인합니다.
  3. 해당 Fleet 내 클러스터 그룹을 세분화할 수 있도록 Fleet마다 팀 범위를 하나 이상 만듭니다.
  4. 각 Fleet에서 일치하는 팀 범위 사이에 출시 시퀀스를 하나 이상 만듭니다.
  5. 클러스터를 새 팀 범위에 추가합니다.
  6. 이 변경사항에 대해 구성한 유지보수 제외를 삭제합니다.

팀에서 Fleet으로

클러스터를 팀 기반 출시 시퀀스에서 Fleet 기반 출시 시퀀스로 변경하려면 다음 단계를 수행합니다.

  1. 구성을 수정하는 동안 업그레이드가 발생하지 않도록 각 Fleet의 모든 클러스터에 유지보수 제외를 구성합니다.
  2. Fleet 사이에 출시 시퀀스를 만듭니다.
  3. 팀 범위에서 클러스터를 삭제합니다. 이제 이러한 클러스터는 이전 단계에서 출시 시퀀스에 조인한 범위의 각 Fleet에만 등록됩니다.
  4. 팀 범위를 삭제합니다.
  5. 이 변경사항에 대해 구성한 유지보수 제외를 삭제합니다.

시퀀스 삭제

시퀀스를 삭제하려면 두 번째 및 세 번째 그룹의 업스트림 연결을 삭제합니다(출시 시퀀스에 3개 그룹이 있는 경우).

Fleet용

출시 시퀀스에 따라 두 번째 및 세 번째 Fleet의 Fleet 호스트 프로젝트에서 다음 명령어를 실행합니다.

gcloud container fleet clusterupgrade update --reset-upstream-fleet

팀용

출시 시퀀스에 따라 두 번째 및 세 번째 범위의 Fleet 호스트 프로젝트에서 다음 명령어를 실행합니다.

gcloud alpha container fleet scopes update SCOPE_NAME --reset-upstream-scope

SCOPE_NAME을 각각 두 번째 및 세 번째 범위의 이름으로 바꿉니다.

문제 해결

출시 자격 요건 문제 해결

출시 시퀀스의 모든 클러스터에 동일한 업그레이드 대상이 없는 경우 GKE가 클러스터 업그레이드를 진행하지 못할 수 있습니다. 업스트림 그룹이 다운스트림 그룹에 전달할 하나의 업그레이드 대상에 해당하지 않으면 자동 업그레이드를 진행할 수 없습니다. 업스트림 그룹의 클러스터가 다운스트림 그룹의 클러스터에 대해 잘못된 업그레이드 대상을 충족하는 경우에도 자동 업그레이드를 진행할 수 없습니다.

출시 시퀀스에 출시 자격 요건 문제가 있는지 확인하려면 출시 시퀀스의 상태를 확인하세요. 그룹이 요건 미충족일 경우 안내에 따라 그룹의 개별 클러스터 상태를 확인합니다.

클러스터 업그레이드를 즉시 진행하려면 부분적으로 적격한 출시 진행의 안내에 따라 INELIGIBLE 상태의 클러스터를 삭제합니다.

그룹의 자격요건 수정

그룹에서 클러스터가 이전 버전을 사용하여 부적격한 경우(예: 그룹 내 대부분의 클러스터가 1.23에서 1.24로 업그레이드되는데 클러스터의 버전이 1.22인 경우) 수동으로 클러스터를 1.24로 업그레이드하여 버전 불일치를 해결할 수 있습니다.

그룹에서 클러스터가 상위 버전을 사용하여 부적격한 경우(예: 그룹의 대다수 클러스터가 1.23에서 1.24로 업그레이드되고 클러스터가 버전 1.25로 업그레이드됨) 버전 불일치를 해결하기 위해 클러스터를 수동으로 다운그레이드할 수 없으며 클러스터를 삭제해야 합니다.

그룹 간 자격요건 수정

그룹 간 다운스트림 그룹이 최신 버전에 있는 업그레이드 대상에 불일치가 있는 경우(예: 업스트림 그룹이 1.23에서 1.24로 업그레이드되고 다운스트림 그룹의 클러스터가 1.25에 있는 경우) 업그레이드가 진행되도록 업스트림 그룹의 클러스터를 1.25로 수동 업그레이드할 수 있습니다.

그룹 간에 다운스트림 그룹이 이전 버전에 있는 업그레이드 대상에 불일치가 있는 경우(예: 업스트림 그룹이 1.24에서 1.25로 업그레이드되고 다운스트림 그룹의 클러스터가 1.23에 있는 경우) 업그레이드가 진행되도록 다운스트림 그룹의 클러스터를 1.24 또는 1.25로 수동 업그레이드할 수 있습니다.

부분적으로 적격한 출시 진행

출시 자격요건 문제(예: 그룹 내 버전 불일치)로 인해 그룹의 클러스터 업그레이드가 완료되지 않은 경우 그룹의 업그레이드 대상에 적합하지 않은 클러스터를 그룹에서 제거하여 버전 출시를 완료하고 적응 시간을 시작하거나 출시 시퀀스의 다음 그룹으로 이동할 수 있습니다. 예를 들어 기타 이유로 이 클러스터의 사용량이 더 이상 그룹의 다른 클러스터와 관련이 없는 경우 그룹에서 클러스터를 삭제할 수도 있습니다.

출시 시퀀스 유형에 따라 Fleet에서 클러스터를 등록 취소하거나 팀 범위에서 클러스터를 삭제하려면 안내를 따릅니다.

그룹의 버전 출시를 차단하는 모든 클러스터를 삭제하면 그룹의 버전 출시가 완료됩니다. 버전 출시 상태 확인의 안내에 따라 이를 확인합니다.

다음 단계