구성 동기화를 Fleet 기본값으로 설치

Fleet에 추가되는 모든 새 클러스터에서 원하는 설정으로 구성 동기화가 자동으로 사용 설정되도록 구성 동기화를 Fleet 기본값으로 설치할 수 있습니다. Fleet 수준 기본값을 설정하면 Fleet에 등록된 모든 새 Google Cloud 기반 GKE 클러스터가 버전과 정보 소스 연결을 비롯한 표준 구성 동기화 설정을 상속받을 수 있습니다. 이 프로세스는 클러스터 프로비저닝을 간소화하고 균일한 구성 관리 기준을 유지하는 데 도움이 됩니다.

이 페이지에서는 다음 사항을 설명합니다.

  • Google Cloud CLI, Google Cloud 콘솔 또는 Terraform을 사용하여 이러한 Fleet 수준 기본 설정을 구성하는 방법
  • 기존 클러스터에 기본 설정을 적용하는 방법
  • 필요한 경우 Fleet 기본 구성을 사용 중지하는 방법

Fleet 기본 구성에 대한 일반적인 내용은 Fleet 수준 기능 관리를 참고하세요.

시작하기 전에

구성 동기화를 설치하기 전에 정보 소스와 적합한 클러스터를 준비합니다.

구성 동기화에 정보 소스 액세스 권한 부여

정보 소스의 구성을 클러스터에 동기화하려면 구성 동기화에 저장소에 대한 읽기 전용 액세스 권한이 필요합니다. 구성 동기화가 구성을 읽도록 승인하려면 다음 단계를 완료하세요.

클러스터 요구사항 검토

클러스터를 만들기 전에 클러스터 요구사항을 검토하세요.

제한사항

  • Helm을 소스 유형으로 구성하는 것은 Fleet 기본값으로 지원되지 않습니다.
  • Google Cloud 콘솔은 정보 소스에 기본 설정으로 연결하는 것을 지원하지 않습니다. 대신 클러스터를 만든 후 패키지 배포 기능을 사용해야 합니다.

Git 저장소의 Fleet 수준 기본값 구성

구성 동기화의 Fleet 수준 기본값을 구성하려면 다음 단계를 수행합니다.

gcloud

  1. 다음 콘텐츠로 apply-spec.yaml이라는 매니페스트를 만듭니다. 매니페스트를 이미 만든 경우 새로 만들 필요가 없습니다.

    applySpecVersion: 1
    spec:
      configSync:
        enabled: true
        sourceType: git
        sourceFormat: unstructured
        syncRepo: REPO
        syncRev: REVISION
        secretType: SECRET_TYPE
        # only required if gcpserviceaccount is the secretType
        # gcpServiceAccountEmail: EMAIL
        metricsGcpServiceAccountEmail: METRICS_EMAIL
        preventDrift: false
    

    다음을 바꿉니다.

    • REPO: Git 저장소의 URL(예: https://github.com/GoogleCloudPlatform/anthos-config-management-samples) URL에 HTTPS 형식을 사용하거나 ssh가 sourceType인 경우 SSH 형식을 사용합니다.
    • REVISION: 동기화할 Git 버전 (태그 또는 해시) 또는 브랜치 이름입니다. 해시를 사용하는 경우 축약된 양식이 아닌 전체 해시 양식을 사용해야 합니다.
    • SECRET_TYPE: Git 저장소에 연결하는 데 사용되는 인증 방법입니다. 공개 저장소의 경우 none을 사용합니다. 비공개 저장소의 경우 다음 중 하나를 사용하세요.

      • ssh: SSH 키 쌍을 사용합니다.
      • cookiefile: cookiefile 사용
      • token: 토큰을 사용합니다.
      • gcpserviceaccount: GKE용 워크로드 아이덴티티 제휴가 사용 설정된 경우 Google 서비스 계정을 사용합니다. Secure Source Manager 또는 Cloud Source Repositories만 해당합니다.
      • gcenode: GKE용 워크로드 아이덴티티 제휴가 사용 설정되지 않은 경우 Google 서비스 계정을 사용합니다. Secure Source Manager 또는 Cloud Source Repositories만 해당합니다.
      • githubapp: GitHub 앱을 사용하여 GitHub 저장소에 인증합니다.

      Git 저장소를 구성 동기화에 연결하는 방법에 대한 자세한 내용은 구성 동기화에 Git 액세스 권한 부여를 참고하세요.

    • EMAIL: gcpserviceaccountsecretType인 경우 이 필드의 주석을 해제하고 Google 서비스 계정 이메일 주소(예: config-sync@PROJECT_ID.iam.gserviceaccount.com)를 추가합니다.

    • METRICS_EMAIL: 구성 동기화 측정항목을 Cloud Monitoring으로 내보내기 위해 사용되는 Google Cloud서비스 계정 (GSA)의 이메일입니다. 측정항목 내보내기 설정에 대한 자세한 내용은 구성 동기화 모니터링을 참고하세요.

    apply-spec 매니페스트에 추가할 수 있는 전체 필드 목록은 gcloud 적용 사양 필드를 참고하세요.

  2. 다음 명령어를 실행하여 기본 Fleet 설정으로 apply-spec 파일을 적용합니다.

    gcloud beta container fleet config-management enable \
        --fleet-default-member-config=apply-spec.yaml
    

콘솔

  1. Google Cloud 콘솔에서 기능 관리자 페이지로 이동합니다.

    기능 관리자로 이동

  2. 구성 동기화 창에서 구성을 클릭합니다.

  3. Fleet 수준 설정을 검토합니다. Fleet에서 만드는 새 클러스터가 모두 이러한 설정을 상속합니다.

  4. 선택사항: 기본 설정을 변경하려면 Fleet 맞춤설정을 클릭합니다. 대화상자가 나타나면 다음을 수행합니다.

    1. 사용할 구성 동기화 버전을 선택합니다.
    2. 변경사항 저장을 클릭합니다.
  5. 구성을 클릭합니다.

  6. Fleet 설정 구성 확인 대화상자에서 확인을 클릭합니다. 이전에 구성 동기화를 사용 설정하지 않은 경우 확인을 클릭하면 anthosconfigmanagement.googleapis.com API도 사용 설정됩니다.

Google Cloud 콘솔에서 정보 소스 설정을 Fleet 기본값으로 구성할 수는 없지만 패키지 배포 기능을 사용할 때 여러 클러스터를 선택할 수 있습니다.

Terraform

구성 동기화를 Fleet 기본값으로 사용 설정하려면 다음 예시를 참고하세요.

resource "google_gke_hub_feature" "default" {
  name     = "configmanagement"
  location = "global"

  fleet_default_member_config {
    configmanagement {
      config_sync {
        # The field `enabled` was introduced in Terraform version 5.41.0, and
        # needs to be set to `true` explicitly to install Config Sync.
        enabled = true
        git {
          sync_repo   = "REPO"
          sync_branch = "BRANCH"
          policy_dir  = "DIRECTORY"
          secret_type = "SECRET"
        }
      }
    }
  }
}

다음을 바꿉니다.

  • REPO: 구성 파일이 포함된 Git 저장소의 URL
  • BRANCH: 저장소 브랜치(예: main)
  • DIRECTORY: 동기화하려는 저장소의 최상위 수준을 나타내는 Git 저장소 내의 경로
  • SECRET: 보안 비밀 인증 유형

Terraform 사용에 대한 자세한 내용은 Terraform으로 구성 동기화 리소스 프로비저닝을 참고하세요.

OCI 이미지의 Fleet 수준 기본값 구성

구성 동기화의 Fleet 수준 기본값을 구성하려면 다음 단계를 수행합니다.

gcloud

  1. 다음 콘텐츠로 apply-spec.yaml이라는 매니페스트를 만듭니다. 매니페스트를 이미 만든 경우 새로 만들 필요가 없습니다.

    applySpecVersion: 1
    spec:
      configSync:
        enabled: true
        sourceType: oci
        sourceFormat: unstructured
        syncRepo: REPO
        secretType: SECRET_TYPE
        # only required if gcpserviceaccount is the secretType
        # gcpServiceAccountEmail: EMAIL
        metricsGcpServiceAccountEmail: METRICS_EMAIL
        preventDrift: false
    

    다음을 바꿉니다.

    • REPO: LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME 형식의 OCI 이미지 URL입니다. 기본적으로 이미지는 latest 태그에서 가져오지만 대신 TAG 또는 DIGEST로 이미지를 가져올 수 있습니다. PACKAGE_NAME에서 TAG 또는 DIGEST를 지정합니다.

      • TAG로 가져오려면: LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
      • DIGEST로 가져오려면: LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
    • SECRET_TYPE: OCI 이미지에 연결하는 데 사용되는 인증 방법입니다. 공개 이미지의 경우 none을 값으로 사용합니다. 비공개 이미지의 경우 다음 중 하나를 사용하세요.

      • gcpserviceaccount: Secure Source Manager 또는 Cloud Source Repositories만 해당합니다. GKE용 워크로드 아이덴티티 제휴가 사용 설정된 경우 Google 서비스 계정을 사용합니다.
      • gcenode: Secure Source Manager 또는 Cloud Source Repositories만 해당합니다. GKE용 워크로드 아이덴티티 제휴가 사용 설정되어 있지 않은 경우 Google 서비스 계정을 사용합니다.

      OCI 이미지를 구성 동기화에 연결하는 방법에 관한 자세한 내용은 OCI 또는 Helm에 구성 동기화 액세스 권한 부여를 참고하세요.

    • EMAIL: gcpserviceaccountsecretType인 경우 이 필드의 주석을 해제하고 Google 서비스 계정 이메일 주소(예: config-sync@PROJECT_ID.iam.gserviceaccount.com)를 추가합니다.

    • METRICS_EMAIL: 구성 동기화 측정항목을 Cloud Monitoring으로 내보내기 위해 사용되는 Google Cloud서비스 계정 (GSA)의 이메일입니다. 측정항목 내보내기 설정에 대한 자세한 내용은 구성 동기화 모니터링을 참고하세요.

    apply-spec 매니페스트에 추가할 수 있는 전체 필드 목록은 gcloud 적용 사양 필드를 참고하세요.

  2. 다음 명령어를 실행하여 기본 Fleet 설정으로 apply-spec 파일을 적용합니다.

    gcloud beta container fleet config-management enable \
        --fleet-default-member-config=apply-spec.yaml
    

콘솔

  1. Google Cloud 콘솔에서 기능 관리자 페이지로 이동합니다.

    기능 관리자로 이동

  2. 구성 동기화 창에서 구성을 클릭합니다.

  3. Fleet 수준 설정을 검토합니다. Fleet에서 만드는 새 클러스터가 모두 이러한 설정을 상속합니다.

  4. 선택사항: 기본 설정을 변경하려면 Fleet 맞춤설정을 클릭합니다. 대화상자가 나타나면 다음을 수행합니다.

    1. 사용할 구성 동기화 버전을 선택합니다.
    2. 변경사항 저장을 클릭합니다.
  5. 구성을 클릭합니다.

  6. Fleet 설정 구성 확인 대화상자에서 확인을 클릭합니다. 이전에 구성 동기화를 사용 설정하지 않은 경우 확인을 클릭하면 anthosconfigmanagement.googleapis.com API도 사용 설정됩니다.

Google Cloud 콘솔에서 정보 소스 설정을 Fleet 기본값으로 구성할 수는 없지만 패키지 배포 기능을 사용할 때 여러 클러스터를 선택할 수 있습니다.

Terraform

구성 동기화를 Fleet 기본값으로 사용 설정하려면 다음 예시를 참고하세요.

resource "google_gke_hub_feature" "configmanagement_feature_member" {
  name     = "configmanagement"
  location = "global"

  fleet_default_member_config {
    configmanagement {
      config_sync {
        # The field `enabled` was introduced in Terraform version 5.41.0, and
        # needs to be set to `true` explicitly to install Config Sync.
        enabled = true
        oci {
          sync_repo   = "REPO"
          policy_dir  = "DIRECTORY"
          secret_type = "SECRET"
        }
      }
    }
  }
}

다음을 바꿉니다.

  • REPO: 구성 파일이 포함된 OCI 이미지 저장소의 URL
  • DIRECTORY: 동기화할 리소스가 포함된 디렉터리의 절대 경로. 루트 디렉터리를 사용하려면 이 필드를 비워 두세요.
  • SECRET: 보안 비밀 인증 유형

Terraform 사용에 대한 자세한 내용은 Terraform으로 구성 동기화 리소스 프로비저닝을 참고하세요.

Fleet 기본값을 상속하도록 기존 클러스터 업데이트

기존 클러스터를 업데이트하여 기본 구성 동기화 설정을 사용하려면 Google Cloud 콘솔이나 gcloud CLI를 사용하여 선택한 Fleet 클러스터를 Fleet 기본값에 동기화하면 됩니다. 또는 Terraform을 사용하고 이전 섹션의 구성 동기화 설치 안내에 따라 동일한 설정으로 각 클러스터를 수동으로 구성할 수 있습니다. 이전에 Terraform을 사용하여 Fleet 기본값을 지정한 경우 기본값을 설정하는 데 사용한 블록과 동일한 configmanagementconfig_sync 블록을 사용하여 선택한 클러스터를 구성합니다.

Fleet 전반에서 구성 동기화 기본 설정을 동기화하려면 다음 단계를 수행합니다.

gcloud

  1. 기존 멤버십을 Fleet 기본 구성과 동기화합니다.

    gcloud beta container fleet config-management apply \
        --origin=FLEET \
        --membership=MEMBERSHIP_NAME
    

    MEMBERSHIP_NAME을 Fleet 기본 구성과 동기화하려는 클러스터의 Fleet 멤버십 이름으로 바꿉니다.

  2. 멤버십 구성이 Fleet 기본값과 동기화되었는지 확인합니다.

    gcloud beta container fleet config-management status
    

    이 명령어의 출력은 동기화한 멤버십의 Synced_to_Fleet_Default 상태에 대해 Yes로 표시됩니다.

콘솔

  1. 기능 관리자로 이동

    기능 관리자: 구성 동기화로 이동

  2. 클러스터 테이블에서 Fleet 설정과 동기화할 클러스터를 선택합니다.

  3. Fleet 설정과 동기화를 클릭합니다.

Fleet 기본값 사용 중지

Fleet에서 구성 동기화 기본 설정을 중지하려면 다음 단계를 수행합니다.

  1. Fleet 기본 구성을 중지하려면 다음 명령어를 실행합니다.

    gcloud beta container fleet config-management disable --fleet-default-member-config
    
  2. Fleet 기본 구성이 중지되었는지 확인합니다.

    gcloud beta container fleet config-management status
    

다음 단계