Config Sync のアンインストール

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

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 リソース オブジェクトを含む名前空間を追加します。

フリートで Config Management を無効にする

コンソール

  1. Google Cloud コンソールで、[フリートの機能] セクションから GKE Enterprise の [機能管理] ページに移動します。

    [機能管理] に移動

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

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

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

gcloud

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

    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 リソース オブジェクトを含む名前空間を追加します。

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

  1. クラスタから ConfigManagement オブジェクトを削除します。

    kubectl delete configmanagement --all
    

    このコマンドを実行すると、次のようになります。

    • ConfigManagement Operator によってクラスタに作成された ClusterRole と ClusterRoleBinding がクラスタからすべて削除されます。
    • ConfigManagement Operator によってインストールされたアドミッション コントローラの構成がすべて削除されます。
    • config-management-system 名前空間の内容が削除されます。ただし、git-creds Secret を除外し、1.9.0 以降の Policy Controller、Config Sync、Config Controller のバージョンの場合は、config-management-operator Deployment と config-management-operator Pod を除外します。ConfigManagement Operator は、config-management-system 名前空間なしでは機能しません。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