GKE 연결 클러스터의 이전 버전을 GKE 연결 클러스터(이전 세대)라고 합니다. 이전 버전의 GKE 연결 클러스터에서 현재 세대로 마이그레이션하면 수명 주기 관리 및 Fleet 등록을 포함하여 이 기능에 액세스할 수 있습니다. 마이그레이션은 단방향 작업입니다. GKE 연결 클러스터의 현재 세대로 마이그레이션한 다음에는 GKE 연결 클러스터(이전 세대)로 돌아갈 방법이 없습니다.
버전 번호 지정 정책
이 문서에서는 Kubernetes 버전과 구분하기 위해 GKE 연결 클러스터 버전을 플랫폼 버전이라고 부릅니다. GKE 연결 클러스터는 1.21.5-gke.1과 같이 GKE와 동일한 버전 번호 지정 규칙을 따릅니다. 클러스터를 연결하거나 업데이트할 때는 부 버전이 클러스터의 Kubernetes 버전보다 한 단계 낮거나 동일한 플랫폼 버전을 선택해야 합니다. 예를 들어 Kubernetes v1.22.*를 실행하는 클러스터를 GKE 연결 클러스터 플랫폼 버전 1.21.* 또는 1.22.*와 연결할 수 있습니다.
이렇게 하면 GKE 연결 클러스터를 업그레이드하기 전에 다음 부 버전으로 클러스터를 업그레이드할 수 있습니다.
워크로드 아이덴티티가 사용 설정되어 있는지 확인
GKE 연결 클러스터(이전 세대)의 기존 클러스터가 현재 세대의 GKE 연결 클러스터로 마이그레이션되기 전 워크로드 아이덴티티가 사용 설정되어 있어야 합니다.
WI가 사용 설정되어 있는지 확인하려면 다음 명령어를 실행하고 워크로드 아이덴티티 필드의 출력을 확인합니다.
gcloud container hub memberships describe MEMBERSHIP_NAME
워크로드 아이덴티티가 사용 설정되어 있지 않으면 멤버십을 업데이트하여 이를 사용 설정해야 합니다.
다음 명령어를 사용하여 클러스터의 OIDC 발급기관 URL을 검색합니다.
aws eks describe-cluster \ --region AWS_REGION \ --name CLUSTER_NAME \ --query "cluster.identity.oidc.issuer" \ --output text
이 명령어의 출력은 OIDC 발급기관의 URL입니다. 나중에 사용할 수 있도록 이 값을 저장하세요.
멤버십을 업데이트합니다.
gcloud container fleet memberships register MEMBERSHIP_NAME \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH \ --enable-workload-identity \ --public-issuer-url=OIDC_URL
다음과 같이 바꿉니다.
- MEMBERSHIP_NAME: 클러스터의 멤버십 이름
- KUBECONFIG_CONTEXT: EKS 클러스터에 액세스하기 위한 kubeconfig의 컨텍스트
- KUBECONFIG_PATH: kubeconfig 파일의 경로
- OIDC_URL: 앞에서 검색한 OIDC URL
클러스터 마이그레이션
GKE 연결 클러스터(이전 세대)에서 GKE 연결 클러스터로 클러스터를 마이그레이션하려면 다음 안내를 따르세요.
클러스터의 kubeconfig 컨텍스트를 추출하고 이를 KUBECONFIG_CONTEXT 환경 변수에 저장합니다.
KUBECONFIG_CONTEXT=$(kubectl config current-context)
다음 명령어를 실행하여 클러스터를 GKE 연결 클러스터의 현재 세대로 마이그레이션합니다. 이 명령어는 클러스터 구성의 관련 세부정보를 추출하고 클러스터를 Google Fleet Management에 등록하고, 수명 주기 에이전트와 같은 모든 필수 소프트웨어를 클러스터에 설치하거나 업그레이드합니다.
gcloud container attached clusters import \ --location=GOOGLE_CLOUD_REGION \ --fleet-membership=FLEET_MEMBERSHIP \ --platform-version=PLATFORM_VERSION \ --distribution=CLUSTER_DISTRIBUTION \ --context=KUBECONFIG_CONTEXT \ [--kubeconfig=KUBECONFIG_PATH]
다음과 같이 바꿉니다.
- GOOGLE_CLOUD_REGION: 클러스터가 관리되는 Google Cloud 위치
- FLEET_MEMBERSHIP: 등록된 클러스터의 정규화된 멤버십 지정자입니다(아래 참조).
- PLATFORM_VERSION: 마이그레이션할 GKE 연결 클러스터의 버전입니다(예: v1.22.0-gke.1).
- CLUSTER_DISTRIBUTION: 클러스터 유형 - AWS의 Elastic Kubernetes Service의 경우
eks
, Azure Kubernetes Service의 경우aks
, 또는 기타 배포의 경우generic
입니다. - KUBECONFIG_CONTEXT: 클러스터를 연결할
kubeconfig
의 컨텍스트 이름입니다. - KUBECONFIG_PATH:
kubeconfig
파일의 위치. 지정하지 않으면 기본값이~/.kube/config
입니다.
멤버십 지정자는 연결된 클러스터를 고유하게 식별하는
projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP_ID
형식의 문자열입니다. 자세한 내용은 다음과 같습니다.PROJECT_NUMBER: Fleet 호스트 프로젝트 번호입니다. 클러스터가 현재 속한 것과 동일한 프로젝트 번호를 지정해야 합니다.
MEMBERSHIP_ID: 기존 클러스터의 Fleet 멤버십 ID여야 합니다. GKE 연결 클러스터에서 이 값이 클러스터 이름으로 사용됩니다.