Cloud Service Mesh をアンインストールする
このページでは、Cloud Service Mesh をアンインストールする方法について説明します。
Cloud Service Mesh をアンインストールする
以下のコマンドを使用して、Cloud Service Mesh のすべてのコンポーネントをアンインストールします。また、これらのコマンドでは、istio-system 名前空間と、すべてのカスタム リソース定義(CRD)(お客様が適用した CRD も含む)が削除されます。
アプリケーション トラフィックが中断されないようにするには:
- STRICT mTLS ポリシーを PERMISSIVE にダウングレードします。
 - トラフィックをブロックする可能性のある AuthorizationPolicy をすべて削除します。
 
次のコマンドで、このクラスタで自動管理を無効にします(直接適用したか、フリートのデフォルト構成を使用して適用したかに関わらず)。
gcloud container fleet mesh update --management manual名前空間でサイドカーの自動挿入機能が有効になっている場合は、これを無効にします。次のコマンドを実行して、名前空間ラベルを表示します。
kubectl get namespace YOUR_NAMESPACE --show-labels出力は次のようになります。
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
出力の
LABELS列の下にistio.io/rev=が表示されている場合は、削除します。kubectl label namespace YOUR_NAMESPACE istio.io/rev-出力の
LABELS列の下にistio-injectionが表示されている場合は、削除します。kubectl label namespace YOUR_NAMESPACE istio-injection-istio.io/revラベルまたはistio-injectionラベルが表示されていない場合、名前空間で自動挿入が有効になっていません。サイドカーが挿入されたワークロードを再起動してプロキシを削除します。
マネージド Cloud Service Mesh を使用している場合は、クラスタ内の
controlplanerevisionリソースを削除します。kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-systemRELEASE_CHANNEL は、
asm-managed、asm-managed-rapid、asm-managed-stableなど、プロビジョニングしたリリース チャンネルを示します。クラスタ内に Webhook が存在する場合は、それを削除します。
クラスタ内 Cloud Service Mesh
validatingwebhooksconfigurationとmutatingwebhookconfigurationを削除します。kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilotマネージド Cloud Service Mesh
A.
validatingwebhooksconfigurationを削除します。kubectl delete validatingwebhookconfiguration istiod-istio-system-mcpB.
mutatingwebhookconfigurationを削除します。kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNELすべてのワークロードが稼働し、プロキシが確認されなくなったら、クラスタ内コントロール プレーンを安全に削除して課金を停止できます。マネージド コントロール プレーンをデプロイした場合は、前のステップで自動的に削除されます。
クラスタ内コントロール プレーンを削除するには、次のコマンドを実行します。
istioctl x uninstall --purgeコントロール プレーンが他にない場合は、
istio-system名前空間を削除して、すべての Cloud Service Mesh リソースを削除できます。他のコントロール プレーンがある場合は、Cloud Service Mesh のリビジョンに対応するサービスを削除します。これにより、CRD などの共有リソースの削除を回避できます。名前空間
istio-systemとasm-systemを削除します。kubectl delete namespace istio-system asm-system --ignore-not-found=true削除が成功したかどうかを確認します。
kubectl get ns次に示すように、
Terminating状態を示す出力が返されます。出力されない場合は、名前空間内の残りのリソースを手動で削除して、もう一度試してください。NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m- クラスタを削除する場合、またはすでに削除している場合は、各クラスタがフリートから登録解除されていることを確認してください。
 
マネージド Cloud Service Mesh のフリートのデフォルト構成を有効にしていて、将来のクラスタで無効にする場合は、無効にします。単一クラスタからのアンインストールのみを行う場合は、この手順をスキップできます。
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_IDここで、FLEET_PROJECT_ID はフリート ホスト プロジェクトの ID です。
マネージド Cloud Service Mesh を使用している場合は、
mdp-controllerDeployment を削除します。kubectl delete deployment mdp-controller -n kube-systemistio-cni-plugin-configconfigmap が存在するかどうかを確認します。kubectl get configmap istio-cni-plugin-config -n kube-systemistio-cni-plugin-configconfigmap が存在する場合は削除します。kubectl delete configmap istio-cni-plugin-config -n kube-systemistio-cni-nodedaemonset を削除します。kubectl delete daemonset istio-cni-node -n kube-system
これらの手順を完了すると、プロキシ、クラスタ内認証局、RBAC のロールとバインディングを含むすべての Cloud Service Mesh コンポーネントが、クラスタから体系的に削除されます。インストール プロセス中に、Google 所有のサービス アカウントに、クラスタ内のサービス メッシュ リソースを確立するために必要な権限が付与されます。これらのアンインストール手順を実施しても、これらの権限は取り消されないため、今後 Cloud Service Mesh をシームレスに再有効化できます。