Cloud Service Mesh をアンインストールする
このページでは、Cloud Service Mesh をアンインストールする方法について説明します。
Cloud Service Mesh をアンインストールする
以下のコマンドを使用して、Cloud Service Mesh のすべてのコンポーネントをアンインストールします。また、これらのコマンドでは、istio-system
名前空間と、すべてのカスタム リソース定義(CRD)(お客様が適用した CRD も含む)が削除されます。
アプリケーション トラフィックが中断されないようにするには:
- STRICT mTLS ポリシーを PERMISSIVE にダウングレードします。
- トラフィックをブロックする可能性のある AuthorizationPolicy をすべて削除します。
Fleet API を介した自動マネージド Cloud Service Mesh を無効にします(有効になっている場合)。
名前空間でサイドカーの自動挿入機能が有効になっている場合は、これを無効にします。次のコマンドを実行して、名前空間ラベルを表示します。
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-system
RELEASE_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-mcp
B.
mutatingwebhookconfiguration
を削除します。kubectl delete mutatingwebhookconfiguration 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 を使用している場合は、
mdp-controller
Deployment を削除します。kubectl delete deployment mdp-controller -n kube-system
istio-cni-node
daemonset を削除します。kubectl delete daemonset istio-cni-node -n kube-system
手順に沿ってフリートから各クラスタの登録を解除します。削除されたクラスタがフリートに登録されている可能性があるため、クラスタを削除した場合でも、このステップが必要です。