このページでは、クラスタから Config Sync をアンインストールする方法、フリートで Config Management フリート機能を無効にする方法、ConfigManagement Operator をアンインストールする方法について説明します。
このページは、基盤となる技術インフラストラクチャのライフサイクルを管理する IT 管理者と運用担当者を対象としています。 Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーのロールとタスクをご覧ください。
構成管理のフリートの機能は、ConfigManagement Operator を使用して Config Sync を管理します。このアーキテクチャにより、アンインストールは次の順序で行う必要があります。
- クラスタから Config Sync をアンインストールする
- フリートで Config Management 機能を無効にする
- クラスタから ConfigManagement Operator をアンインストールする
クラスタから 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
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リソース オブジェクトを含む Namespace を追加します。
フリートで Config Management を無効にする
コンソール
- Google Cloud コンソールで、機能マネージャーのページに移動します。
[機能] の表の [構成管理] 行で、[詳細] をクリックします。[ステータス サマリー] ページが表示されます。
[構成管理の無効化] をクリックします。確認ページが表示されます。
確認ページで [構成管理の無効化] をクリックします。
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リソースを削除します。削除された
google_gke_hub_featureを参照するfeatureフィールドで定義されたgke_hub_feature_membershipリソースがまだある場合は、そのgke_hub_feature_membershipリソースも削除します。Terraform 構成を適用します。
terraform apply「
yes」と入力して、記述されている操作を適用することを確認します。
Config Connector
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リソース オブジェクトを含む Namespace を追加します。
クラスタから
GKEHubFeatureリソースを削除します。kubectl delete GKEHubFeature FEATURE_OBJECT_NAME \ --namespace FEATURE_OBJECT_NAMESPACE次のように置き換えます。
FEATURE_OBJECT_NAME: 以前に作成した
GKEHubFeatureリソース オブジェクトの名前を追加します。FEATURE_OBJECT_NAMESPACE: 以前に作成した
GKEHubFeatureリソース オブジェクトを含む Namespace を追加します。
ConfigManagement Operator をアンインストールする
フリートで Config Management 機能を無効にするか、フリートからクラスタの登録を解除した後、kubectl を使用して ConfigManagement Operator を削除します。
ConfigManagement Operator を削除するには、次のコマンドを実行します。
クラスタから ConfigManagement オブジェクトを削除します。
kubectl delete configmanagement --allこのコマンドを実行すると、次のようになります。
- ConfigManagement Operator によってクラスタに作成された ClusterRole と ClusterRoleBinding がすべてクラスタから削除されます。
- ConfigManagement Operator によってインストールされたアドミッション コントローラの構成がすべて削除されます。
git-credsSecret を除き、config-management-systemNamespace の内容が削除されます。1.9.0 以降の Config Sync のバージョンの場合は、config-management-operatorDeployment とconfig-management-operatorPod も削除されます。ConfigManagement Operator は、config-management-systemNamespace なしでは機能しません。ConfigManagement Operator コントローラによって作成または変更された CustomResourceDefinition(CRD)は、それらが作成または変更されたクラスタからすべて削除されます。ConfigManagement Operator の実行に必要な CRD は、Kubernetes の観点からは ConfigManagement Operator をインストールしたユーザーによって追加されたものとされるため、削除されずに残ります。これらのコンポーネントを削除する方法については、次のステップで説明します。
git-credsSecret を維持する必要がある場合は、ここで行います。kubectl -n config-management-system get secret git-creds -o yamlconfig-management-system名前空間を削除します。kubectl delete ns config-management-systemconfig-management-monitoring名前空間を削除します。kubectl delete ns config-management-monitoringConfigManagement CustomResourceDefinition を削除します。
kubectl delete crd configmanagements.configmanagement.gke.io