이 페이지에서는 클러스터에서 구성 동기화를 제거하고, Fleet에서 Config Management Fleet 기능을 사용 중지하고, ConfigManagement Operator를 제거하는 방법을 설명합니다.
Config Management Fleet 기능은 ConfigManagement Operator를 사용하여 구성 동기화, 정책 컨트롤러, 계층 구조 컨트롤러를 관리합니다. 이 아키텍처 때문에 제거 단계를 다음 순서로 완료해야 합니다.
클러스터에서 구성 동기화 제거
Console
Google Cloud 콘솔만으로는 구성 동기화를 제거할 수 없습니다. 대신 Google Cloud CLI를 사용하세요.
gcloud
Google Cloud CLI를 사용하여 설치하는 동안 만든 applySpec 매니페스트를 엽니다.
applySpec 매니페스트에서
spec.configSync.enabled
를false
로 설정합니다.applySpecVersion: 1 spec: configSync: enabled: false ...
(구성 동기화 자동 업그레이드를 사용하는 클러스터에만 필요) applySpec 매니페스트에서
spec.upgrades
를auto
로 설정합니다.applySpecVersion: 1 spec: upgrades: auto configSync: enabled: false ...
변경사항을 적용합니다.
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 리소스를 사용하여 구성 동기화를 설치한 경우, 해당 리소스를 업데이트하여 구성 동기화를 제거합니다.
Terraform 구성 파일에서
configmanagement
인수가 채워진gke_hub_feature_membership
리소스를 식별합니다.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" } }
Terraform 구성을 적용합니다.
terraform apply
yes
를 입력하여 기술된 작업 적용을 확인합니다.
구성 커넥터
구성 커넥터를 통해 GKEHubFeatureMembership 리소스를 사용하여 구성 동기화를 설치한 경우 해당 리소스를 업데이트하여 구성 동기화를 제거합니다.
클러스터에서
.spec.configmanagement.configSync
필드가 채워진GKEHubFeatureMembership
리소스 객체를 식별합니다.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
- Google Cloud 콘솔에서 Fleet 기능 섹션의 GKE Enterprise 기능 관리 페이지로 이동합니다.
기능 표의 구성 관리 행에서 세부정보를 클릭합니다. 상태 요약 페이지가 나타납니다.
구성 관리 사용 중지를 클릭합니다. 확인 페이지가 표시됩니다.
확인 페이지에서 구성 관리 사용 중지를 클릭합니다.
gcloud
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를 사용 중지합니다.
google_gke_hub_feature
리소스가 포함된 HCL 파일을 업데이트하여google_gke_hub_feature
리소스를 삭제합니다.삭제된
google_gke_hub_feature
를 참조하는feature
필드로 정의된gke_hub_feature_membership
리소스가 여전히 있는 경우 해당gke_hub_feature_membership
리소스도 삭제합니다.Terraform 구성을 적용합니다.
terraform apply
yes
를 입력하여 기술된 작업 적용을 확인합니다.
구성 커넥터
구성 커넥터를 통해 GKEHubFeature 리소스를 사용하여 Fleet에서 Config Management 기능을 사용 설정한 경우 해당 리소스를 업데이트하여 Fleet의 모든 클러스터에서 Config Management를 사용 중지합니다.
클러스터에서
.spec.resourceID
값이configmanagement
인GKEHubFeature
리소스 객체를 식별합니다.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
리소스 객체가 포함된 네임스페이스를 추가합니다.
클러스터에서
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를 삭제하려면 다음 명령어를 실행합니다.
클러스터에서 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를 설치한 사용자가 추가했으므로 아직 존재합니다. 다음 단계에서 이러한 구성요소 삭제에 대한 정보를 제공합니다.
git-creds
보안 비밀을 유지해야 하는 경우 다음을 수행합니다.kubectl -n config-management-system get secret git-creds -o yaml
config-management-system
네임스페이스를 삭제합니다.kubectl delete ns config-management-system
config-management-monitoring
네임스페이스를 삭제합니다.kubectl delete ns config-management-monitoring
ConfigManagement CustomResourceDefinition을 삭제합니다.
kubectl delete crd configmanagements.configmanagement.gke.io