このページでは、クラスタから Config Sync をアンインストールする方法、フリートで Config Management フリート機能を無効にする方法、ConfigManagement Operator をアンインストールする方法について説明します。
このページは、基盤となる技術インフラストラクチャのライフサイクルを管理する IT 管理者と運用担当者を対象としています。Google Cloud のコンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。
Config Management フリート機能は、ConfigManagement Operator を使用して Config Sync、Policy Controller、Hierarchy Controller を管理します。このアーキテクチャのため、アンインストールは次の順序で完了する必要があります。
- クラスタから 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 ...
(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 Console にクラスタを登録した場合、メンバーシップ名はクラスタの名前と同じになります。
CONFIG_YAML:
apply-spec.yaml
ファイルのパスを追加します。PROJECT_ID: プロジェクト ID を追加します。
Terraform
Terraform を使用して、Google Cloud Platform Provider の 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
リソース オブジェクトを含む 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-creds
Secret を除き、config-management-system
Namespace の内容が削除されます。1.9.0 以降の Config Sync のバージョンの場合は、config-management-operator
Deployment とconfig-management-operator
Pod も削除されます。ConfigManagement Operator は、config-management-system
Namespace なしでは機能しません。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