本页面介绍如何从集群中卸载 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 ...
(仅对使用 Config Sync 自动升级的集群才需要)在 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 资源安装 Config Sync,请更新该资源以卸载 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.17.0" } }
应用 Terraform 配置:
terraform apply
输入
yes
,确认您要应用所述操作。
Config Connector
如果您已使用 Config Connector 通过 GKEHubFeatureMembership 资源安装 Config Sync,请更新该资源以卸载 Config Sync。
识别集群上已填充
.spec.configmanagement.configSync
字段的GKEHubFeatureMembership
资源对象。修补
GKEHubFeatureMembership
资源对象,将.spec.configmanagement.configSync
字段设为 null 以将其移除: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。此时会显示一个确认页面。
在确认页面上,点击停用 Config Management。
gcloud
如需在舰队中的所有集群上停用 Config Management,请运行以下命令:
gcloud beta container fleet config-management disable
Terraform
如果您已使用 Terraform 通过来自 Google Cloud Platform 提供程序的 google_gke_hub_feature 资源在舰队上启用 Config Management 功能,请更新该资源,以在舰队中的所有集群上停用 Config Management。
更新包含
google_gke_hub_feature
资源的 HCL 文件以移除google_gke_hub_feature
资源。如果您仍定义了
gke_hub_feature_membership
资源,且feature
字段引用了已移除的google_gke_hub_feature
,请一并移除该gke_hub_feature_membership
资源。应用 Terraform 配置:
terraform apply
输入
yes
,确认您要应用所述操作。
Config Connector
如果您已使用 Config Connector 通过 GKEHubFeature 资源在舰队上启用 Config Management 功能,请更新该资源,以在舰队中的所有集群上停用 Config Management。
识别集群上
.spec.resourceID
值为configmanagement
的GKEHubFeature
资源对象。如果您仍定义了
GKEHubFeatureMembership
资源对象,并且该对象包含引用GKEHubFeature
资源对象的.spec.featureRef
字段,请将其删除: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 在集群中创建的任何 ClusterRole 和 ClusterRoleBinding 都将从集群中删除。
- ConfigManagement Operator 安装的任何准入控制器配置都将被删除。
- 除了
git-creds
Secret 以外,config-management-system
命名空间的内容都将被删除,而对于从 1.9.0 开始的 Config Sync 版本,config-management-operator
Deployment 和config-management-operator
Pod 也要排除在外。如果没有config-management-system
命名空间,ConfigManagement Operator 将无法运行。由 ConfigManagement Operator 控制器创建或修改的任何 CustomResourceDefinition (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