구성 동기화 제거

이 페이지에서는 클러스터에서 구성 동기화를 제거하고, Fleet에서 Config Management Fleet 기능을 사용 중지하고, ConfigManagement Operator를 제거하는 방법을 설명합니다.

Config Management Fleet 기능은 ConfigManagement Operator를 사용하여 구성 동기화, 정책 컨트롤러, 계층 구조 컨트롤러를 관리합니다. 이 아키텍처 때문에 제거 단계를 다음 순서로 완료해야 합니다.

  1. 클러스터에서 구성 동기화 제거
  2. Fleet에서 Config Management 기능 사용 중지
  3. 클러스터에서 ConfigManagement Operator 제거

클러스터에서 구성 동기화 제거

Console

Google Cloud 콘솔만으로는 구성 동기화를 제거할 수 없습니다. 대신 Google Cloud CLI를 사용하세요.

gcloud

  1. Google Cloud CLI를 사용하여 설치하는 동안 만든 applySpec 매니페스트를 엽니다.

  2. applySpec 매니페스트에서 spec.configSync.enabledfalse로 설정합니다.

    applySpecVersion: 1
    spec:
      configSync:
        enabled: false
    ...
    
  3. (구성 동기화 자동 업그레이드를 사용하는 클러스터에만 필요) applySpec 매니페스트에서 spec.upgradesauto로 설정합니다.

    applySpecVersion: 1
    spec:
      upgrades: auto
      configSync:
        enabled: false
    ...
    
  4. 변경사항을 적용합니다.

      gcloud beta container fleet config-management apply \
          --membership=MEMBERSHIP_NAME \
          --config=CONFIG_YAML \
          --project=PROJECT_ID
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME: 이 구성을 적용할 등록된 클러스터를 추가합니다. Google Cloud 콘솔에 클러스터를 등록한 경우 멤버십 이름은 클러스터 이름과 동일합니다.

    • CONFIG_YAML: apply-spec.yaml 파일의 경로를 추가합니다.

    • PROJECT_ID: 프로젝트 ID를 추가합니다.

Terraform

Terraform을 사용하여 Google Cloud Platform 제공업체gke_hub_feature_membership 리소스를 사용하여 구성 동기화를 설치한 경우, 해당 리소스를 업데이트하여 구성 동기화를 제거합니다.

  1. Terraform 구성 파일에서 configmanagement 인수가 채워진 gke_hub_feature_membership 리소스를 식별합니다.

  2. gke_hub_feature_membership 리소스를 업데이트하여 configmanagement에서 config_sync 인수를 삭제합니다.

    예를 들면 다음과 같습니다.

    resource "google_gke_hub_feature_membership" "feature_member" {
      location = "global"
      feature = google_gke_hub_feature.feature.name
      membership = google_gke_hub_membership.membership.membership_id
      membership_location = google_gke_hub_membership.membership.location
      configmanagement {
        version = "1.17.0"
      }
    }
    
  3. Terraform 구성을 적용합니다.

    terraform apply
    

    yes를 입력하여 기술된 작업 적용을 확인합니다.

구성 커넥터

구성 커넥터를 통해 GKEHubFeatureMembership 리소스를 사용하여 구성 동기화를 설치한 경우 해당 리소스를 업데이트하여 구성 동기화를 제거합니다.

  1. 클러스터에서 .spec.configmanagement.configSync 필드가 채워진 GKEHubFeatureMembership 리소스 객체를 식별합니다.

  2. GKEHubFeatureMembership 리소스 객체에 패치를 적용하여 null로 설정하여 .spec.configmanagement.configSync 필드를 삭제합니다.

    kubectl patch GKEHubFeatureMembership FEATURE_MEMBERSHIP_OBJECT_NAME \
        --namespace FEATURE_MEMBERSHIP_OBJECT_NAMESPACE \
        -p '{"spec":{"configmanagement":{"configSync": null}}}'
    

    다음을 바꿉니다.

    • FEATURE_MEMBERSHIP_OBJECT_NAME: 이전에 만든 GKEHubFeatureMembership 리소스 객체의 이름을 추가합니다.

    • FEATURE_MEMBERSHIP_OBJECT_NAMESPACE: 이전에 만든 GKEHubFeatureMembership 리소스 객체가 포함된 네임스페이스를 추가합니다.

Fleet에서 Config Management 사용 중지

Console

  1. Google Cloud 콘솔에서 Fleet 기능 섹션의 GKE Enterprise 기능 관리 페이지로 이동합니다.

    기능 관리로 이동

  2. 기능 표의 구성 관리 행에서 세부정보를 클릭합니다. 상태 요약 페이지가 나타납니다.

  3. 구성 관리 사용 중지를 클릭합니다. 확인 페이지가 표시됩니다.

  4. 확인 페이지에서 구성 관리 사용 중지를 클릭합니다.

gcloud

  1. Fleet의 모든 클러스터에서 Config Management를 사용 중지하려면 다음 명령어를 실행합니다.

    gcloud beta container fleet config-management disable
    

Terraform

Terraform을 통해 Google Cloud Platform 제공업체google_gke_hub_feature 리소스를 사용하여 Fleet에서 Config Management 기능을 사용 설정한 경우 해당 리소스를 업데이트하여 Fleet의 모든 클러스터에서 Config Management를 사용 중지합니다.

  1. google_gke_hub_feature 리소스가 포함된 HCL 파일을 업데이트하여 google_gke_hub_feature 리소스를 삭제합니다.

  2. 삭제된 google_gke_hub_feature를 참조하는 feature 필드로 정의된 gke_hub_feature_membership 리소스가 여전히 있는 경우 해당 gke_hub_feature_membership 리소스도 삭제합니다.

  3. Terraform 구성을 적용합니다.

    terraform apply
    

    yes를 입력하여 기술된 작업 적용을 확인합니다.

구성 커넥터

구성 커넥터를 통해 GKEHubFeature 리소스를 사용하여 Fleet에서 Config Management 기능을 사용 설정한 경우 해당 리소스를 업데이트하여 Fleet의 모든 클러스터에서 Config Management를 사용 중지합니다.

  1. 클러스터에서 .spec.resourceID 값이 configmanagementGKEHubFeature 리소스 객체를 식별합니다.

  2. GKEHubFeature 리소스 객체를 참조하는 .spec.featureRef 필드로 정의된 GKEHubFeatureMembership 리소스 객체가 아직 있으면 삭제합니다.

    kubectl delete GKEHubFeatureMembership FEATURE_MEMBERSHIP_OBJECT_NAME \
        --namespace FEATURE_MEMBERSHIP_OBJECT_NAMESPACE
    

    다음을 바꿉니다.

    • FEATURE_MEMBERSHIP_OBJECT_NAME: 이전에 만든 GKEHubFeatureMembership 리소스 객체의 이름을 추가합니다.

    • FEATURE_MEMBERSHIP_OBJECT_NAMESPACE: 이전에 만든 GKEHubFeatureMembership 리소스 객체가 포함된 네임스페이스를 추가합니다.

  3. 클러스터에서 GKEHubFeature 리소스를 삭제합니다.

    kubectl delete GKEHubFeature FEATURE_OBJECT_NAME \
        --namespace FEATURE_OBJECT_NAMESPACE
    

    다음을 바꿉니다.

    • FEATURE_OBJECT_NAME: 이전에 만든 GKEHubFeature 리소스 객체의 이름을 추가합니다.

    • FEATURE_OBJECT_NAMESPACE: 이전에 만든 GKEHubFeature 리소스 객체가 포함된 네임스페이스를 추가합니다.

ConfigManagement Operator 제거

Fleet에서 Config Management 기능을 사용 중지하거나 Fleet에서 클러스터를 등록 취소한 후 kubectl을 사용하여 ConfigManagement Operator를 삭제합니다.

ConfigManagement Operator를 삭제하려면 다음 명령어를 실행합니다.

  1. 클러스터에서 ConfigManagement 객체를 삭제합니다.

    kubectl delete configmanagement --all
    

    이 명령어를 실행하면 다음과 같은 결과가 나타납니다.

    • ConfigManagement Operator가 클러스터에 만든 ClusterRole과 ClusterRoleBinding 모두 클러스터에서 삭제됩니다.
    • ConfigManagement Operator가 설치한 허용 컨트롤러 구성이 모두 삭제됩니다.
    • git-creds 보안 비밀을 제외하고 1.9.0으로 시작하는 구성 동기화 버전, config-management-operator 배포, config-management-operator 포드의 config-management-system 네임스페이스 콘텐츠가 삭제됩니다. ConfigManagement Operator는 config-management-system 네임스페이스가 없으면 작동하지 않습니다. 생성되거나 수정된 클러스터에서 ConfigManagement Operator 컨트롤러가 만들거나 수정한 모든 CustomResourceDefinition(CRD)이 삭제됩니다. ConfigManagement Operator를 실행하는 데 필요한 CRD는 Kubernetes의 관점에서는 ConfigManagement Operator를 설치한 사용자가 추가했으므로 아직 존재합니다. 다음 단계에서 이러한 구성요소 삭제에 대한 정보를 제공합니다.
  2. git-creds 보안 비밀을 유지해야 하는 경우 다음을 수행합니다.

    kubectl -n config-management-system get secret git-creds -o yaml
    
  3. config-management-system 네임스페이스를 삭제합니다.

    kubectl delete ns config-management-system
    
  4. config-management-monitoring 네임스페이스를 삭제합니다.

    kubectl delete ns config-management-monitoring
    
  5. ConfigManagement CustomResourceDefinition을 삭제합니다.

    kubectl delete crd configmanagements.configmanagement.gke.io