Config Sync をアンインストールする

このページでは、クラスタから Config Sync をアンインストールする方法、フリートで Config Management フリート機能を無効にする方法、ConfigManagement Operator をアンインストールする方法について説明します。

このページは、基盤となる技術インフラストラクチャのライフサイクルを管理する IT 管理者と運用担当者を対象としています。Google Cloud のコンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。

Config Management フリート機能は、ConfigManagement Operator を使用して Config Sync、Policy Controller、Hierarchy Controller を管理します。このアーキテクチャのため、アンインストールは次の順序で完了する必要があります。

  1. クラスタから Config Sync をアンインストールする
  2. フリートで Config Management 機能を無効にする
  3. クラスタから ConfigManagement Operator をアンインストールする

クラスタから Config Sync をアンインストールする

コンソール

Google Cloud コンソールだけでは Config Sync をアンインストールできません。代わりに Google Cloud CLI を使用してください。

gcloud

  1. Google Cloud CLI でインストール中に作成した applySpec マニフェストを開きます。

  2. applySpec マニフェストで spec.configSync.enabledfalse に設定します。

    applySpecVersion: 1
    spec:
      configSync:
        enabled: false
    ...
    
  3. Config Sync 自動アップグレードを使用するクラスタでのみ必要)applySpec マニフェストで、spec.upgradesauto に設定します。

    applySpecVersion: 1
    spec:
      upgrades: auto
      configSync:
        enabled: false
    ...
    
  4. 変更を適用します。

      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 Providergke_hub_feature_membership リソースを使用して Config Sync をインストールした場合は、そのリソースを更新して Config Sync をアンインストールします。

  1. Terraform 構成ファイルで、configmanagement 引数が設定されている gke_hub_feature_membership リソースを特定します。

  2. 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"
      }
    }
    
  3. Terraform 構成を適用します。

    terraform apply
    

    yes」と入力して、記述されている操作を適用することを確認します。

Config Connector

Config Connector を使用して、GKEHubFeatureMembership リソースを使用して Config Sync をインストールした場合は、そのリソースを更新して Config Sync をアンインストールします。

  1. .spec.configmanagement.configSync フィールドが入力されているクラスタの GKEHubFeatureMembership リソース オブジェクトを特定します。

  2. 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 を無効にする

コンソール

  1. Google Cloud コンソールで、[機能マネージャー] ページに移動します。

    機能マネージャーに移動

  2. [機能] の表の [構成管理] 行で、[詳細] をクリックします。[ステータス サマリー] ページが表示されます。

  3. [構成管理の無効化] をクリックします。確認ページが表示されます。

  4. 確認ページで [構成管理の無効化] をクリックします。

gcloud

  1. フリート内のすべてのクラスタで Config Management を無効にするには、次のコマンドを実行します。

    gcloud beta container fleet config-management disable
    

Terraform

Terraform を使用し、Google Cloud Platform Providergoogle_gke_hub_feature リソースを使用してフリートで Config Management 機能を有効にした場合は、そのリソースを更新して、フリート内のすべてのクラスタで Config Management を無効にします。

  1. google_gke_hub_feature リソースを含む HCL ファイルを更新して、google_gke_hub_feature リソースを削除します。

  2. 削除された google_gke_hub_feature を参照する feature フィールドで定義された gke_hub_feature_membership リソースがまだある場合は、その gke_hub_feature_membership リソースも削除します。

  3. Terraform 構成を適用します。

    terraform apply
    

    yes」と入力して、記述されている操作を適用することを確認します。

Config Connector

Config Connector を使用し、GKEHubFeature リソースを使用してフリートで Config Management 機能を有効にした場合は、そのリソースを更新して、フリート内のすべてのクラスタで Config Management を無効にします。

  1. .spec.resourceID の値が configmanagement であるクラスタの GKEHubFeature リソース オブジェクトを特定します。

  2. 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 を追加します。

  3. クラスタから 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 を削除するには、次のコマンドを実行します。

  1. クラスタから 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 をインストールしたユーザーによって追加されたものとされるため、削除されずに残ります。これらのコンポーネントを削除する方法については、次のステップで説明します。
  2. git-creds Secret を維持する必要がある場合は、ここで行います。

    kubectl -n config-management-system get secret git-creds -o yaml
    
  3. config-management-system 名前空間を削除します。

    kubectl delete ns config-management-system
    
  4. config-management-monitoring 名前空間を削除します。

    kubectl delete ns config-management-monitoring
    
  5. ConfigManagement CustomResourceDefinition を削除します。

    kubectl delete crd configmanagements.configmanagement.gke.io