Google Cloud 기반 클러스터를 Fleet에 등록

이 페이지에서는 Google Cloud 기반 GKE 클러스터를 Fleet에 추가하는 방법을 보여줍니다. 프로젝트 및 사용 사례에 따라 등록에 Google Cloud 콘솔, Terraform, 구성 커넥터, Google Cloud CLI를 사용할 수 있습니다. Google Cloud CLI, Google Cloud 콘솔, Terraform을 사용해 한 단계만으로 새 클러스터를 만들고 등록할 수도 있습니다.

시작하기 전에

클러스터 등록을 위한 일반 기본 요건을 따랐는지 확인합니다.

또한 사용 사례에 따라 Google Cloud 기반 GKE 클러스터 등록에 다음이 필요할 수 있습니다.

Google Cloud 기반 GKE 클러스터 등록

기본 요건에 나타난 것처럼 애플리케이션에서 Google Cloud API 및 서비스에 인증하는 일관된 방법을 제공하도록 GKE용 Fleet 워크로드 아이덴티티 제휴가 사용 설정된 GKE 클러스터를 등록하는 것이 좋습니다. GKE용 Fleet 워크로드 아이덴티티 제휴를 사용 설정할 때의 이점은 GKE용 Fleet 워크로드 아이덴티티 제휴 사용을 참조하세요. 다음 옵션 중 하나를 사용해서 클러스터를 등록하면 필요에 따라 GKE용 Fleet 워크로드 아이덴티티 제휴를 사용 설정할 수 있습니다.

클러스터를 만드는 동안 새 클러스터를 등록하거나 기존 클러스터를 등록할 수 있습니다.

새 클러스터 등록

GKE Enterprise를 사용 설정했으면 클러스터를 만드는 동안 Fleet에 새 클러스터를 등록하는 것이 좋습니다. 이는 'Fleet 기반' 클러스터가 다양한 엔터프라이즈 기능에 대해 선택된 Fleet 수준 기본 설정과 이미 사용 설정된 권장 로그 및 측정항목을 기반으로 만들어지기 때문입니다. 자세한 내용은 다음 가이드를 참조하세요.

GKE Enterprise를 사용 설정하지 않은 경우에도 다음 안내에 따라 클러스터를 만드는 동안 클러스터를 계속 등록할 수 있지만, Fleet 수준 기본 구성을 가져오지 않습니다.

콘솔

  1. Google Cloud 콘솔에서 관련 클러스터 만들기 페이지로 이동합니다.

  2. GKE 문서의 안내에 따라 Google Cloud 콘솔에서 Autopilot, Standard 리전 또는 Standard 영역 클러스터를 만들기 위한 섹션을 완료합니다.

  3. Fleet 등록 섹션에서 Fleet에 등록 체크박스를 선택합니다. 기본적으로 Fleet 이름은 프로젝트 ID를 기반으로 합니다.

  4. 나머지 섹션을 작성합니다.

  5. 표준 클러스터를 만들도록 선택하고 등록된 클러스터가 Fleet 워크로드 아이덴티티 제휴(권장)를 사용하도록 하려면 탐색창에서 보안을 클릭하고 GKE용 워크로드 아이덴티티 제휴 사용 설정이 선택되어 있는지 확인합니다. Autopilot 클러스터에는 이 기능이 기본적으로 사용 설정되어 있습니다.

  6. 클러스터 세부정보 검토를 마치면 만들기를 클릭하여 클러스터를 만들고 해당 클러스터를 Fleet에 등록합니다.

gcloud

이러한 명령어를 사용하려면 gcloud CLI 버전 450.0.0 이상이 필요합니다.

Google Cloud CLI를 사용하여 클러스터를 등록하면 기본적으로 클러스터에 리전 멤버십 위치가 제공됩니다.

  • 새 GKE Autopilot 클러스터를 만들고 등록하려면 다음 명령어를 실행합니다.

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet
    

    CLUSTER_NAME을 만들려는 클러스터의 고유 이름으로 바꿉니다. 이 이름은 클러스터의 멤버십 이름이 됩니다. 선택한 Fleet에 이 이름의 클러스터가 이미 있으면 명령어가 오류를 반환합니다.

  • GKE용 워크로드 아이덴티티 제휴가 사용 설정된 새 GKE Standard 클러스터를 만들고 등록하려면 다음 명령어를 실행합니다.

    gcloud container clusters create CLUSTER_NAME --enable-fleet \
    --workload-pool=PROJECT_ID.svc.id.goog
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 만들려는 클러스터의 고유 이름입니다. 이 이름은 클러스터의 멤버십 이름이 됩니다. 선택한 Fleet에 이 이름의 클러스터가 이미 있으면 명령어가 오류를 반환합니다.
    • PROJECT_ID: 새 클러스터를 소유할 프로젝트의 Google Cloud 프로젝트 ID입니다.

    Standard 클러스터를 만드는 경우 GKE용 워크로드 아이덴티티 제휴가 사용 설정된 클러스터를 만드는 것이 좋습니다. 그러면 등록된 클러스터에 Fleet 워크로드 아이덴티티 제휴가 사용 설정됩니다. 하지만 이 기능을 사용하지 않으려면 --workload-pool 플래그를 생략할 수 있습니다. Autopilot 클러스터에는 기본적으로 GKE용 워크로드 아이덴티티 제휴가 사용 설정되어 있습니다.

만들려는 클러스터에 따라 표준 영역, 표준 리전 또는 Autopilot 클러스터를 만들기 위한 다른 옵션을 지정할 수도 있습니다. 또한 Google Cloud CLI에 대해 기본 영역을 구성하지 않았으면 Compute Engine 영역을 지정하고, 기본 프로젝트를 구성하지 않았으면 클러스터를 소유할 Google Cloud 프로젝트를 지정해야 할 수 있습니다.

GKE 문서에서 다양한 유형의 GKE 클러스터를 만드는 방법을 자세히 알아보세요.

Terraform

google 제공업체를 사용하여 GKE 클러스터를 만들고 Terraform에 등록할 수 있습니다. GKE 클러스터를 관리하는 데 사용되는 google_container_cluster 리소스에 대한 전체 참조는 Terraform 레지스트리를 확인하세요.

이 안내를 따르기 전에 기본 요건에 설명된 대로 Terraform에서 사용하도록 서비스 계정을 만들었는지 확인합니다.

새 클러스터를 만들고 등록하려면 Terraform 구성에서 다음 블록을 추가합니다.

  1. google 제공자를 필수 제공자로 지정합니다.

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = "VERSION"
        }
      }
    }
    

    VERSION을 5.6.0 이상으로 바꿉니다.

  2. 새 클러스터를 만들고 등록합니다.

    resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" {
      provider = google
      name               = "CLUSTER_NAME"
      location           = "ZONE"
      initial_node_count = 1
      fleet {
        project = "FLEET_HOST_PROJECT"
      }
    }
    

    다음을 바꿉니다.

    • TF_CLUSTER_RESOURCE_NAME: 만들려는 새 google_container_cluster 리소스의 고유 이름입니다.
    • CLUSTER_NAME: 만들고 등록하려는 새 GKE 클러스터의 고유 이름입니다.
    • ZONE: GKE 클러스터 리소스의 영역입니다. 예를 들면 us-central1-a입니다.
    • FLEET_HOST_PROJECT: 클러스터를 만들고 등록 중인 Google Cloud 프로젝트 ID입니다. 이를 설정하지 않으면 클러스터가 Fleet에 등록되지 않습니다. 클러스터를 다른 프로젝트에 있는 Fleet에 등록하려는 경우 다른 프로젝트 ID를 지정합니다.

기존 클러스터 등록

다음 옵션 중 하나를 사용하여 기존 클러스터를 자체 프로젝트의 Fleet 또는 다른 프로젝트의 Fleet에 등록합니다(Google Cloud 콘솔을 제외한 모든 옵션). 또한 GKE Enterprise로 업그레이드하는 동안 기존 클러스터를 일부 또는 모두 등록하도록 선택할 수 있습니다.

기존 GKE 클러스터를 등록하려면 다음 안내를 따르세요.

Console

클러스터에 Fleet 워크로드 아이덴티티 제휴(권장)를 사용하려면 다음 안내를 따르기 전에 클러스터에서 GKE용 워크로드 아이덴티티 제휴가 사용 설정되어 있는지 확인합니다. Autopilot 클러스터에는 기본적으로 GKE용 워크로드 아이덴티티 제휴가 사용 설정되어 있습니다. Google Cloud 콘솔에서 등록하면 GKE용 워크로드 아이덴티티 제휴가 있는 클러스터에 Fleet 워크로드 아이덴티티 제휴가 자동으로 사용 설정됩니다.

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

    GKE 클러스터 페이지로 이동

  2. Fleet에 추가할 등록 취소된 클러스터 옆에 있는 등록을 클릭합니다.

  3. 확인 대화상자가 나타나면 등록을 다시 클릭합니다.

gcloud

이러한 명령어를 사용하려면 gcloud CLI 버전 450.0.0 이상이 필요합니다.

Google Cloud CLI를 사용하여 클러스터를 등록하면 기본적으로 클러스터에 리전 멤버십 위치가 제공됩니다.

클러스터에 GKE용 워크로드 아이덴티티 제휴가 이미 사용 설정된 경우 두 명령어 모두 클러스터에 Fleet 워크로드 아이덴티티 제휴를 사용 설정합니다.

  • Google Cloud의 기존 GKE 클러스터를 프로젝트의 Fleet에 등록하려면 다음 명령어를 실행합니다.

    gcloud container clusters update CLUSTER_NAME --enable-fleet
    

    CLUSTER_NAME을 등록하려는 클러스터 이름으로 바꿉니다. 이 이름은 클러스터의 멤버십 이름이 됩니다.

  • 다른 프로젝트의 Fleet에 클러스터를 등록하려면 다음과 같이 --fleet-project 플래그를 사용합니다. 이 명령어를 실행하기 전에 프로젝트 간 등록에 필요한 권한을 설정했는지 확인합니다.

    gcloud container clusters update CLUSTER_NAME --fleet-project=PROJECT_ID_OR_NUMBER
    
    • CLUSTER_NAME을 등록하려는 클러스터 이름으로 바꿉니다. 이 이름은 클러스터의 멤버십 이름이 됩니다.
    • PROJECT_ID_OR_NUMBER를 선택한 Fleet 호스트 프로젝트의 프로젝트 ID 또는 번호로 바꿉니다.

Terraform

google 제공업체를 사용하여 Terraform에 GKE 클러스터를 등록할 수 있습니다. GKE 클러스터를 관리하는 데 사용되는 google_container_cluster 리소스에 대한 전체 참조는 Terraform 레지스트리를 확인하세요.

이 안내를 따르기 전에 기본 요건에 설명된 대로 Terraform에서 사용하도록 서비스 계정을 만들었는지 확인합니다.

기존 클러스터 등록

기존 클러스터를 등록하려면 클러스터의 google_container_cluster 리소스 구성에 다음 블록을 추가합니다.

fleet {
        project = "FLEET_HOST_PROJECT"
      }

FLEET_HOST_PROJECT를 클러스터가 속하는 Google Cloud 프로젝트 ID로 바꾸거나 다른 프로젝트의 Fleet에 클러스터를 등록하려는 경우 다른 프로젝트 ID로 바꿉니다.

등록된 클러스터에서 GKE용 워크로드 아이덴티티 제휴 사용 설정

Terraform을 사용해서 클러스터에 GKE용 워크로드 아이덴티티 제휴를 사용 설정할 수 있습니다.

신규 또는 기존 클러스터에 GKE용 워크로드 아이덴티티 제휴를 사용 설정하려면 관련 클러스터의 google_container_cluster 리소스 구성에 다음 블록을 추가합니다.

  workload_identity_config {
    workload_pool = "PROJECT_ID.svc.id.goog"
  }
  ```

 Replace <code><var>PROJECT_ID</var></code> with the Google Cloud project ID for your Terraform resources.

구성 커넥터

구성 커넥터 부가기능이 설치되었으면 구성 커넥터를 사용하여 GKE 클러스터를 등록할 수 있습니다. 구성 커넥터 버전이 1.47.0 이상이고 기본 요건에 설명된 대로 서비스 계정을 만들었는지 확인합니다.

GKEHubMembership 리소스에 대한 전체 참조는 구성 커넥터 참조 문서를 확인하세요.

GKE 클러스터 등록

클러스터를 등록하려면 먼저 Config Connector 가이드 안내에 따라 리소스를 만들려는 위치를 지정합니다. 그런 후 다음과 같이 클러스터를 등록하고 (선택적으로) 만들기 위해 YAML 파일을 만듭니다.

GKE 클러스터 만들기 및 등록

  1. 다음의 간단한 예시처럼 GKE 클러스터를 만듭니다.

    apiVersion: container.cnrm.cloud.google.com/v1beta1
    kind: ContainerCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      location: LOCATION
      initialNodeCount: 1
    

    다음을 바꿉니다.

    • CLUSTER_NAME: Config Connector로 생성된 클러스터를 고유하게 나타내기 위해 선택한 이름입니다.
    • LOCATION: GKE 클러스터 리소스를 프로비저닝하도록 선택한 영역이나 리전입니다. 예를 들면 us-central1-a입니다.

    구성 커넥터로 GKE 클러스터를 만들 때 전체 옵션 목록은 구성 커넥터 문서를 참조하세요.

  2. GKE 클러스터의 멤버십을 등록합니다.

    apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
    kind: GKEHubMembership
    metadata:
      name: MEMBERSHIP_NAME
    spec:
      location: MEMBERSHIP_LOCATION
      endpoint:
        gkeCluster:
          resourceRef:
            name: CLUSTER_NAME
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME: Fleet에 등록되는 클러스터를 고유하게 나타내기 위해 선택한 멤버십 이름입니다.
    • MEMBERSHIP_LOCATION: 클러스터 멤버십을 관리하려는 Fleet 서비스의 위치입니다. 클러스터 자체 위치(권장) 또는 global일 수 있습니다. Fleet 멤버십 위치에서 자세히 알아보세요. 클러스터 위치와 다른 위치를 지정할 수 없습니다. 이렇게 하면 등록이 실패합니다.
    • CLUSTER_NAME: Config Connector로 생성된 클러스터를 고유하게 나타내기 위해 선택한 이름입니다.

다른 프로젝트에서 클러스터 등록

다음을 GKEHubMembership 리소스의 metadata 필드에 추가해 다른 프로젝트의 Fleet에 클러스터를 등록합니다.

   metadata:
     annotations:
       cnrm.cloud.google.com/project-id: FLEET_PROJECT_ID

다음을 바꿉니다.

  • FLEET_PROJECT_ID: GKE 클러스터를 등록하도록 선택한 Fleet 호스트 프로젝트입니다.

기존 클러스터 등록

생성 방법에 관계없이 기존 클러스터를 등록하려면 다음 구성을 사용합니다. 여기에서는 Config Connector가 찾을 수 있도록 클러스터의 전체 리소스 이름을 지정해야 합니다. GKEHubMembership 리소스의 resourceRef 필드를 다음으로 바꿉니다.

   resourceRef:
     external: //container.googleapis.com/CLUSTER_RESOURCE_NAME

다음을 바꿉니다.

  • CLUSTER_RESOURCE_NAME: GKE 클러스터의 Google Cloud 리소스 이름입니다. 예를 들면 projects/my-project/zones/us-west1-a/clusters/my-cluster입니다.

구성 커넥터로 클러스터를 만든 경우 정규화된 클러스터 이름을 지정할 필요가 없습니다.

등록된 클러스터에서 GKE용 워크로드 아이덴티티 제휴 사용 설정

GKE용 워크로드 아이덴티티 제휴를 사용 설정하면 클러스터를 등록할 때와 동일한 구성이 사용되며, 다음 단계가 추가됩니다.

  1. ContainerCluster 리소스의 spec 필드에 다음을 추가하여 GKE용 워크로드 아이덴티티 제휴를 사용 설정합니다. 신규 및 기존 클러스터 모두에 대해 이를 수행해야 합니다.

    spec:
      workloadIdentityConfig:
        workloadPool: PROJECT_ID.svc.id.goog
    

    다음을 바꿉니다.

  2. GKEHubMembership 리소스 블록의 spec 필드에 다음을 추가하여 Fleet 워크로드 아이덴티티 제휴를 사용 설정합니다.

    spec:
      authority:
        issuer: https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: GKE 클러스터 리소스를 만들기 위해 네임스페이스 주석을 통해 선택한 기본 프로젝트입니다.
    • LOCATION: GKE 클러스터 리소스를 프로비저닝하도록 선택한 영역이나 리전입니다. 예를 들면 us-central1-a입니다.
    • CLUSTER_NAME: 생성된 클러스터를 고유하게 나타내기 위해 선택한 이름입니다.

문제 해결

이 설정 중에 문제가 발생하면 문제 해결 가이드를 참조하세요.

다음 단계