本頁面說明如何從叢集解除安裝 Config Sync、停用機群的 Config Management 機群功能,以及解除安裝 ConfigManagement Operator。
本頁面適用於負責管理基礎技術架構生命週期的 IT 管理員和作業人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
Config Management 車隊功能會使用 ConfigManagement Operator 管理 Config Sync。由於這種架構,解除安裝步驟必須依下列順序完成:
從叢集解除安裝 Config Sync
控制台
您無法只使用 Google Cloud 控制台解除安裝 Config Sync。請改用 Google Cloud CLI。
gcloud
使用 Google Cloud CLI 開啟您在安裝期間建立的 applySpec 資訊清單。
在 applySpec 資訊清單中,將
spec.configSync.enabled
設為false
:applySpecVersion: 1 spec: 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 Provider 的 gke_hub_feature_membership 資源安裝 Config Sync,請更新該資源以解除安裝 Config Sync。請勿使用 terraform destroy
指令。terraform destroy
指令無法完全解除安裝 Config Sync,部分元件仍會保留。
在 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.20.0" } }
套用 Terraform 設定:
terraform apply
輸入
yes
,確認要套用所述動作。
設定連接器
如果您使用 Config Connector,透過 GKEHubFeatureMembership 資源安裝 Config Sync,請更新該資源來解除安裝 Config Sync。
找出叢集上已填入
.spec.configmanagement.configSync
欄位的GKEHubFeatureMembership
資源物件。修補
GKEHubFeatureMembership
資源物件,將.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
資源物件的命名空間。
在車隊中停用 Config Management
控制台
- 前往 Google Cloud 控制台的「Feature Manager」頁面。
在「功能」表格的「設定管理」列中,按一下「詳細資料」。系統會顯示「狀態摘要」頁面。
按一下「停用 Config Management」。系統會顯示確認頁面。
在確認頁面上,按一下「停用 Config Management」。
gcloud
如要停用機群中所有叢集的 Config Management,請執行下列指令:
gcloud beta container fleet config-management disable
Terraform
如果您使用 Terraform,透過 Google Cloud Platform Provider 的 google_gke_hub_feature 資源,在車隊中啟用 Config Management 功能,請更新該資源,在車隊的所有叢集中停用 Config Management。
更新包含
google_gke_hub_feature
資源的 HCL 檔案,移除google_gke_hub_feature
資源。如果仍有
gke_hub_feature_membership
資源定義包含參照已移除google_gke_hub_feature
的feature
欄位,請一併移除該gke_hub_feature_membership
資源。套用 Terraform 設定:
terraform apply
輸入
yes
,確認要套用所述動作。
設定連接器
如果您使用 Config Connector,透過 GKEHubFeature 資源在叢集上啟用 Config Management 功能,請更新該資源,在叢集中的所有叢集上停用 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
在機群上停用 Config Management 功能,或從機群取消註冊叢集後,請使用 kubectl
刪除 ConfigManagement Operator。
如要移除 ConfigManagement Operator,請執行下列指令:
刪除叢集中的 ConfigManagement 物件:
kubectl delete configmanagement --all
執行這項指令後,會發生下列情況:
- ConfigManagement Operator 在叢集中建立的所有 ClusterRoles 和 ClusterRoleBindings 都會遭到刪除。
- ConfigManagement Operator 安裝的所有許可控制器設定都會遭到刪除。
config-management-system
命名空間的內容會遭到刪除 (git-creds
Secret 除外)。如果是 1.9.0 以上版本的 Config Sync,config-management-operator
Deployment 和config-management-operator
Pod 也會遭到刪除。沒有config-management-system
命名空間,ConfigManagement Operator 就無法運作。ConfigManagement Operator 控制器建立或修改的所有 CustomResourceDefinitions (CRD),都會從它們建立或修改時所在的叢集中移除。執行 ConfigManagement Operator 所需的 CRD 會繼續存在,因為從 Kubernetes 的角度來看,它們是由安裝 ConfigManagement Operator 的使用者新增的。我們將在下一個步驟說明如何移除這些元件。
如需保留
git-creds
Secret,請立即執行下列操作: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