공유 VPC를 사용하여 멀티 클러스터 서비스 설정


이 페이지에서는 일반적인 멀티 클러스터 서비스(MCS) 시나리오를 설명합니다. 이 페이지에 제시된 시나리오는 다음과 같은 특성을 공유합니다.

  • 2개의 GKE 클러스터: 첫 번째 GKE 클러스터는 자체 프로젝트의 Fleet에 등록되며, Fleet 호스트 프로젝트입니다. 두 번째 GKE 클러스터는 동일한 Fleet에 등록되지만 시나리오에 따라 동일한 프로젝트에 위치하지 않을 수 있습니다. 두 GKE 클러스터 모두 VPC 기반 클러스터입니다.
  • 동일한 VPC 네트워크: 두 GKE 클러스터 모두 동일한 공유 VPC 네트워크의 서브넷을 사용합니다.
  • 두 클러스터 모두에 GKE용 워크로드 아이덴티티 제휴가 사용 설정됩니다.

용어

공유 VPC 호스트 프로젝트GKE Fleet 호스트 프로젝트라는 용어는 서로 다른 의미를 갖습니다.

  • 공유 VPC 호스트 프로젝트는 공유 VPC 네트워크가 포함된 프로젝트입니다.
  • GKE Fleet 호스트 프로젝트는 클러스터를 등록하는 Fleet이 포함된 프로젝트입니다.

Scenarios

다음 표는 일반적인 MCS 시나리오를 설명합니다.

시나리오 Fleet 호스트 프로젝트(첫 번째 클러스터가 포함된 프로젝트) 두 번째 클러스터의 위치
동일한 공유 VPC 서비스 프로젝트의 클러스터 공유 VPC 서비스 프로젝트 첫 번째 클러스터와 동일한 공유 VPC 서비스 프로젝트
Fleet 호스트 프로젝트로서 공유 VPC 호스트 프로젝트(공유 VPC 호스트 프로젝트의 첫 번째 클러스터, 공유 VPC 서비스 프로젝트의 두 번째 클러스터) 공유 VPC 호스트 프로젝트 공유 VPC 서비스 프로젝트
다른 공유 VPC 서비스 프로젝트의 클러스터 공유 VPC 서비스 프로젝트 다른 공유 VPC 서비스 프로젝트

기본 요건

MCS의 프로젝트 간 구성을 설정하기 전에 다음 사항을 숙지해야 합니다.

동일한 공유 VPC 서비스 프로젝트의 클러스터

이 섹션에서는 동일한 공유 VPC 서비스 프로젝트에 있는 두 개의 기존 GKE 클러스터가 포함된 MCS 구성 예시를 제공합니다.

  • 두 클러스터 모두 SHARED_VPC_HOST_PROJ에서 동일한 공유 VPC 네트워크를 사용합니다.
  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 첫 번째 VPC 기반 GKE 클러스터 FIRST_CLUSTER_NAMEFLEET_HOST_PROJ에 생성됩니다. Fleet 호스트 프로젝트는 이 시나리오에서 SHARED_VPC_HOST_PROJ에 연결된 서비스 프로젝트입니다.
  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 두 번째 VPC 기반 GKE 클러스터 SECOND_CLUSTER_NAMEFLEET_HOST_PROJ에 생성됩니다.

필요한 API 사용 설정

필요한 API를 사용 설정합니다. API가 이미 사용 설정되었는지 여부는 Google Cloud CLI 출력에 표시됩니다.

  1. Cloud DNS API 사용 설정:

    gcloud services enable dns.googleapis.com \
        --project SHARED_VPC_HOST_PROJ
    

    이 시나리오에서 Fleet 호스트 프로젝트는 공유 VPC 호스트 프로젝트에 연결된 서비스 프로젝트입니다. 공유 VPC 네트워크가 위치한 곳이므로 공유 VPC 호스트 프로젝트에 Cloud DNS API를 사용 설정해야 합니다. GKE는 호스트 프로젝트에 Cloud DNS 관리형 비공개 영역을 만들고 공유 VPC 네트워크에 대해 승인합니다.

  2. GKE 허브(Fleet) API 사용 설정. GKE 허브 API는 Fleet 호스트 프로젝트에서만 사용 설정해야 합니다.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    Fleet 호스트 프로젝트에서 이 API를 사용 설정하면 service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com 서비스 계정이 생성되거나 보장됩니다.

  3. Fleet 호스트 프로젝트에서 Cloud Service Mesh, Resource Manager, 멀티 클러스터 서비스 검색 API를 사용 설정합니다.

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project FLEET_HOST_PROJ
    

Fleet 호스트 프로젝트에서 멀티 클러스터 서비스 사용 설정

  1. Fleet 호스트 프로젝트에서 멀티 클러스터 서비스를 사용 설정합니다.

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    Fleet 호스트 프로젝트에서 멀티 클러스터 서비스를 사용 설정하면 다음의 service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com이라는 서비스 계정이 생성되거나 보장됩니다.

IAM 바인딩 만들기

  1. Fleet 호스트 프로젝트 MCS 서비스 계정에 공유 VPC 호스트 프로젝트의 MCS 서비스 에이전트 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding SHARED_VPC_HOST_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  2. Fleet 호스트 프로젝트 MCS 서비스 계정에 자체 프로젝트의 네트워크 사용자 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    이 시나리오에서는 GKE용 워크로드 아이덴티티 제휴를 사용하므로 Fleet 호스트 프로젝트의 MCS Importer GKE 서비스 계정에는 자체 프로젝트의 네트워크 사용자 역할이 필요합니다.

    다음을 바꿉니다.

    • SHARED_VPC_HOST_PROJ: 공유 VPC 호스트 프로젝트의 프로젝트 ID
    • FLEET_HOST_PROJ_NUMBER: Fleet 호스트 프로젝트의 프로젝트 번호(이 시나리오의 공유 VPC 서비스 프로젝트)
    • FLEET_HOST_PROJ: 첫 번째 클러스터 프로젝트의 프로젝트 ID

Fleet에 클러스터 등록

  1. Fleet에 첫 번째 클러스터를 등록합니다. 첫 번째 클러스터가 등록되는 Fleet과 동일한 프로젝트에 있기 때문에 --gke-cluster 플래그를 이 명령어에 사용할 수 있습니다.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME_1: 이 Fleet에서 이 클러스터의 고유 식별자입니다. 예를 들어 첫 번째 GKE 클러스터의 이름을 사용할 수 있습니다.
    • FLEET_HOST_PROJ: 이 시나리오의 공유 VPC 호스트 프로젝트와 동일한 Fleet 호스트 프로젝트의 프로젝트 ID입니다.
    • LOCATION: 영역 클러스터의 경우 클러스터가 포함된 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 포함된 Compute Engine 리전입니다.
    • FIRST_CLUSTER_NAME: 첫 번째 클러스터의 이름입니다.
  2. 두 번째 클러스터를 Fleet 호스트 프로젝트에 등록합니다. 두 번째 클러스터도 Fleet 호스트 프로젝트에 있기 때문에 --gke-cluster 플래그를 이 명령어에 사용할 수 있습니다.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/SECOND_CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME_2: 이 Fleet에서 이 클러스터의 고유 식별자입니다. 예를 들어 두 번째 GKE 클러스터의 이름을 사용할 수 있습니다.
    • FLEET_HOST_PROJ: 이 시나리오의 공유 VPC 호스트 프로젝트와 동일한 Fleet 호스트 프로젝트의 프로젝트 ID입니다.
    • LOCATION: 영역 클러스터의 경우 클러스터가 포함된 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 포함된 Compute Engine 리전입니다.
    • SECOND_CLUSTER_NAME: 두 번째 클러스터의 이름입니다.

클러스터의 공통 네임스페이스 만들기

  1. 각 클러스터에 서비스를 공유할 네임스페이스가 있는지 확인합니다. 필요한 경우 각 클러스터에서 다음 명령어를 사용하여 네임스페이스를 만듭니다.

    kubectl create ns NAMESPACE
    

    NAMESPACE를 네임스페이스 이름으로 바꿉니다.

Fleet 호스트 프로젝트로서 공유 VPC 호스트 프로젝트

이 섹션에서는 두 개의 기존 GKE 클러스터가 포함된 MCS 구성 예시를 제공합니다.

  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 첫 번째 VPC 기반 GKE 클러스터 FIRST_CLUSTER_NAMEFLEET_HOST_PROJ에 생성되었습니다. 이 시나리오에서 Fleet 호스트 프로젝트는 공유 VPC 호스트 프로젝트이기도 합니다.
  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 두 번째 VPC 기반 GKE 클러스터 SECOND_CLUSTER_NAMESECOND_CLUSTER_PROJ에 생성되었습니다.

필요한 API 사용 설정

필요한 API를 사용 설정합니다. API가 이미 사용 설정되었는지 여부는 Google Cloud CLI 출력에 표시됩니다.

  1. Cloud DNS API 사용 설정:

    gcloud services enable dns.googleapis.com \
        --project FLEET_HOST_PROJ
    

    이 시나리오에서 Fleet 호스트 프로젝트는 공유 VPC 호스트 프로젝트이기도 합니다. 공유 VPC 네트워크가 위치한 곳이므로 공유 VPC 호스트 프로젝트에 Cloud DNS API를 사용 설정해야 합니다. GKE는 호스트 프로젝트에 Cloud DNS 관리형 비공개 영역을 만들고 공유 VPC 네트워크에 대해 승인합니다.

  2. GKE 허브(Fleet) API 사용 설정. GKE 허브 API는 Fleet 호스트 프로젝트에서만 사용 설정해야 합니다.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    Fleet 호스트 프로젝트에서 GKE 허브 API를 사용 설정하면 다음의 service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com 서비스 계정이 생성되거나 보장됩니다.

  3. Fleet 호스트 프로젝트 및 두 번째 클러스터의 프로젝트 모두에서 Cloud Service Mesh, Resource Manager, 멀티 클러스터 서비스 검색 API를 사용 설정합니다.

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project FLEET_HOST_PROJ
    
    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project SECOND_CLUSTER_PROJ
    

Fleet 호스트 프로젝트에서 멀티 클러스터 서비스 사용 설정

  1. Fleet 호스트 프로젝트에서 멀티 클러스터 서비스를 사용 설정합니다.

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    Fleet 호스트 프로젝트에서 멀티 클러스터 서비스를 사용 설정하면 다음의 service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com이라는 서비스 계정이 생성되거나 보장됩니다.

IAM 바인딩 만들기

  1. Fleet 호스트 프로젝트의 GKE 서비스 계정에 두 번째 클러스터 프로젝트의 GKE 서비스 에이전트 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com" \
        --role roles/gkehub.serviceAgent
    
  2. Fleet 호스트 프로젝트의 MCS 서비스 계정에 두 번째 클러스터 프로젝트의 MCS 서비스 에이전트 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  3. 각 프로젝트의 MCS 서비스 계정에 자체 프로젝트의 네트워크 사용자 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    
    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:SECOND_CLUSTER_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    이 시나리오에서는 GKE용 워크로드 아이덴티티 제휴를 사용하므로 각 프로젝트의 MCS Importer GKE 서비스 계정에는 자체 프로젝트의 네트워크 사용자 역할이 필요합니다.

    다음을 바꿉니다.

    • SECOND_CLUSTER_PROJ: 두 번째 클러스터 프로젝트의 프로젝트 ID
    • FLEET_HOST_PROJ: 첫 번째 클러스터 프로젝트의 프로젝트 ID
    • FLEET_HOST_PROJ_NUMBER: Fleet 호스트 프로젝트의 프로젝트 번호(이 시나리오의 공유 VPC 호스트 프로젝트와 동일함)

Fleet에 클러스터 등록

  1. Fleet에 첫 번째 클러스터를 등록합니다. 첫 번째 클러스터가 등록되는 Fleet과 동일한 프로젝트에 있기 때문에 --gke-cluster 플래그를 이 명령어에 사용할 수 있습니다.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME_1: 이 Fleet에서 이 클러스터의 고유 식별자입니다. 예를 들어 첫 번째 GKE 클러스터의 이름을 사용할 수 있습니다.
    • FLEET_HOST_PROJ: 이 시나리오의 공유 VPC 호스트 프로젝트와 동일한 Fleet 호스트 프로젝트의 프로젝트 ID입니다.
    • LOCATION: 영역 클러스터의 경우 클러스터가 포함된 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 포함된 Compute Engine 리전입니다.
    • FIRST_CLUSTER_NAME: 첫 번째 클러스터의 이름입니다.
  2. Fleet에 두 번째 클러스터를 등록합니다. 두 번째 클러스터가 Fleet과 동일한 프로젝트에 있지 않기 때문에 --gke-uri 플래그를 이 명령어에 사용해야 합니다. gcloud container clusters list --uri를 실행하면 전체 클러스터 URI를 가져올 수 있습니다.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-uri https://container.googleapis.com/v1/projects/SECOND_CLUSTER_PROJ/locations/LOCATION/clusters/SECOND_CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME_2: 이 Fleet에서 이 클러스터의 고유 식별자입니다. 예를 들어 두 번째 GKE 클러스터의 이름을 사용할 수 있습니다.
    • FLEET_HOST_PROJ: 이 시나리오의 공유 VPC 호스트 프로젝트와 동일한 Fleet 호스트 프로젝트의 프로젝트 ID입니다.
    • LOCATION: LOCATION를 다음으로 바꿉니다.
      • 클러스터가 영역 클러스터인 경우 클러스터의 Compute Engine 영역
      • 클러스터가 리전 클러스터인 경우 클러스터의 Compute Engine 리전
    • SECOND_CLUSTER_PROJECT: 두 번째 클러스터가 포함된 프로젝트입니다.
    • SECOND_CLUSTER_NAME: 두 번째 클러스터의 이름입니다.

클러스터의 공통 네임스페이스 만들기

  1. 각 클러스터에 서비스를 공유할 네임스페이스가 있는지 확인합니다. 필요한 경우 각 클러스터에서 다음 명령어를 사용하여 네임스페이스를 만듭니다.

    kubectl create ns NAMESPACE
    

    NAMESPACE를 네임스페이스 이름으로 바꿉니다.

다른 공유 VPC 서비스 프로젝트의 클러스터

이 섹션에서는 각각 다른 공유 VPC 서비스 프로젝트에 있는 두 개의 기존 GKE 클러스터가 포함된 MCS 구성 예시를 제공합니다.

  • 두 클러스터 모두 SHARED_VPC_HOST_PROJ에서 동일한 공유 VPC 네트워크를 사용합니다.
  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 첫 번째 VPC 기반 GKE 클러스터 FIRST_CLUSTER_NAMEFLEET_HOST_PROJ에 생성되었습니다. Fleet 호스트 프로젝트는 이 시나리오에서 SHARED_VPC_HOST_PROJ에 연결된 서비스 프로젝트입니다.
  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 두 번째 VPC 기반 GKE 클러스터 SECOND_CLUSTER_NAMESECOND_CLUSTER_PROJ에 생성되었습니다. SECOND_CLUSTER_PROJ는 이 시나리오에서 SHARED_VPC_HOST_PROJ에 연결된 서비스 프로젝트이기도 합니다.

필요한 API 사용 설정

필요한 API를 사용 설정합니다. API가 이미 사용 설정되었는지 여부는 Google Cloud CLI 출력에 표시됩니다.

  1. Cloud DNS API 사용 설정:

    gcloud services enable dns.googleapis.com \
        --project SHARED_VPC_HOST_PROJ
    

    이 시나리오에서 Fleet 호스트 프로젝트는 공유 VPC 호스트 프로젝트에 연결된 서비스 프로젝트입니다. 공유 VPC 네트워크가 위치한 곳이므로 공유 VPC 호스트 프로젝트에 Cloud DNS API를 사용 설정해야 합니다. GKE는 호스트 프로젝트에 Cloud DNS 관리형 비공개 영역을 만들고 공유 VPC 네트워크에 대해 승인합니다.

  2. GKE 허브(Fleet) API. GKE 허브 API는 Fleet 호스트 프로젝트 FLEET_HOST_PROJ에서만 사용 설정되어야 합니다.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    Fleet 호스트 프로젝트에서 이 API를 사용 설정하면 service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com 서비스 계정이 생성되거나 보장됩니다.

  3. Fleet 호스트 프로젝트 및 두 번째 클러스터의 프로젝트 모두에서 Cloud Service Mesh, Resource Manager, 멀티 클러스터 서비스 검색 API를 사용 설정합니다.

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project=FLEET_HOST_PROJ
    
    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project SECOND_CLUSTER_PROJ
    

Fleet 호스트 프로젝트에서 멀티 클러스터 서비스 사용 설정

  1. Fleet 호스트 프로젝트에서 멀티 클러스터 서비스를 사용 설정합니다.

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    Fleet 호스트 프로젝트에서 멀티 클러스터 서비스를 사용 설정하면 다음의 service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com이라는 서비스 계정이 생성되거나 보장됩니다.

IAM 바인딩 만들기

  1. Fleet 호스트 프로젝트의 GKE 허브 서비스 계정에 두 번째 클러스터 프로젝트의 GKE 서비스 에이전트 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com" \
        --role roles/gkehub.serviceAgent
    
  2. Fleet 호스트 프로젝트의 MCS 서비스 계정에 두 번째 클러스터 프로젝트의 MCS 서비스 에이전트 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  3. Fleet 호스트 프로젝트 MCS 서비스 계정에 공유 VPC 호스트 프로젝트의 MCS 서비스 에이전트 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding SHARED_VPC_HOST_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  4. 각 프로젝트의 MCS 서비스 계정에 자체 프로젝트의 네트워크 사용자 역할을 부여하는 IAM 바인딩을 만듭니다.

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    
    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:SECOND_CLUSTER_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    이 시나리오에서는 GKE용 워크로드 아이덴티티 제휴를 사용하므로 각 프로젝트의 MCS Importer GKE 서비스 계정에는 자체 프로젝트의 네트워크 사용자 역할이 필요합니다.

    필요에 따라 이전 명령어에서 다음을 바꿉니다.

    • SECOND_CLUSTER_PROJ: 두 번째 클러스터 프로젝트의 프로젝트 ID
    • SHARED_VPC_HOST_PROJ: 공유 VPC 호스트 프로젝트의 프로젝트 ID. 이 예시에서 두 클러스터 모두 동일한 공유 VPC 네트워크를 사용하지만 두 클러스터 모두 공유 VPC 호스트 프로젝트에 없습니다.
    • FLEET_HOST_PROJ: 첫 번째 클러스터 프로젝트의 프로젝트 ID
    • FLEET_HOST_PROJ_NUMBER: Fleet 호스트 프로젝트의 프로젝트 번호

Fleet에 클러스터 등록

  1. Fleet에 첫 번째 클러스터를 등록합니다. 첫 번째 클러스터가 등록되는 Fleet과 동일한 프로젝트에 있기 때문에 --gke-cluster 플래그를 이 명령어에 사용할 수 있습니다.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME_1: 이 Fleet에서 이 클러스터의 고유 식별자입니다. 예를 들어 첫 번째 GKE 클러스터의 이름을 사용할 수 있습니다.
    • FLEET_HOST_PROJ: 이 시나리오의 공유 VPC 호스트 프로젝트와 동일한 Fleet 호스트 프로젝트의 프로젝트 ID입니다.
    • LOCATION: 영역 클러스터의 경우 클러스터가 포함된 Compute Engine 영역입니다. 리전 클러스터의 경우 클러스터가 포함된 Compute Engine 리전입니다.
    • FIRST_CLUSTER_NAME: 첫 번째 클러스터의 이름입니다.
  2. Fleet에 두 번째 클러스터를 등록합니다. 두 번째 클러스터가 Fleet과 동일한 프로젝트에 있지 않기 때문에 --gke-uri 플래그를 이 명령어에 사용해야 합니다. gcloud container clusters list --uri를 실행하면 전체 클러스터 URI를 가져올 수 있습니다.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-uri https://container.googleapis.com/v1/projects/SECOND_CLUSTER_PROJ/locations/LOCATION/clusters/SECOND_CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME_2: 이 Fleet에서 이 클러스터의 고유 식별자입니다. 예를 들어 두 번째 GKE 클러스터의 이름을 사용할 수 있습니다.
    • FLEET_HOST_PROJ: 이 시나리오의 공유 VPC 호스트 프로젝트와 동일한 Fleet 호스트 프로젝트의 프로젝트 ID입니다.
    • LOCATION: LOCATION를 다음으로 바꿉니다.
      • 클러스터가 영역 클러스터인 경우 클러스터의 Compute Engine 영역
      • 클러스터가 리전 클러스터인 경우 클러스터의 Compute Engine 리전
    • SECOND_CLUSTER_PROJECT: 두 번째 클러스터가 포함된 프로젝트입니다.
    • SECOND_CLUSTER_NAME: 두 번째 클러스터의 이름입니다.

클러스터의 공통 네임스페이스 만들기

  1. 각 클러스터에 서비스를 공유할 네임스페이스가 있는지 확인합니다. 필요한 경우 각 클러스터에서 다음 명령어를 사용하여 네임스페이스를 만듭니다.

    kubectl create ns NAMESPACE
    

    NAMESPACE를 네임스페이스 이름으로 바꿉니다.

다음 단계