Istio on GKE の無効化またはアンインストール

このガイドでは、クラスタから Istio on GKE アドオンを無効にするか、完全にアンインストールする方法を説明します。

Istio on GKE アドオンを無効にすると、クラスタ上の Istio のアドオン管理が無効になりますが、クラスタ上の Istio のインストールと構成は保持されます。Istio on GKE アドオンを無効にすると、Google はクラスタ上の Istio のインストールを管理しなくなります。クラスタ上の Istio の構成とライフサイクルを管理する責任はお客様にあります。Istio on GKE アドオンを無効にするには、Istio on GKE アドオンを無効にするの手順に従います。

アドオンを無効にする代わりに、Istio on GKE アドオンを完全にアンインストールできます。Istio on GKE アドオンをアンインストールすると、Istio と関連するすべての構成がクラスタから完全に削除されます。Istio on GKE アドオンをアンインストールするには、クラスタからの Istio のアンインストールの手順に従います。

Istio on GKE アドオンを無効にする

Google による Istio のインストールの管理が不要になった場合は、Istio on GKE アドオンを無効にできます。Istio のインストールと構成は保持されます。これを行うには、GKE バージョン 1.17.17-gke.3100 以降、1.18.16-gke.1600 以降、または 1.19.8-gke.1600 以降を実行していることを確認します。それ以前のバージョンの GKE で Istio on GKE アドオンを無効にすると、Istio(Istio のインストールと構成)が完全にアンインストールされるため、サービスのダウンタイムが発生する可能性があります。

  1. 次のコマンドを実行して、Istio on GKE を無効にします。

    gcloud beta container clusters update my-cluster --project=$PROJECT_ID \
      --update-addons=Istio=DISABLED
    

クラスタからの Istio のアンインストール

Istio on GKE アドオンを削除する最も簡単な方法は、クラスタを削除することです。ただし、クラスタの既存のアプリケーションを維持する必要がある場合は、Istio を無効にするために次の手順に従う必要があります。

  1. デフォルトの mTLS モードが [Permissive mTLS] に設定されていることを確認します。
  2. Istio Ingress ゲートウェイからトラフィックを転送します。
  3. サイドカー自動インジェクションが有効になっている場合は、これを無効します。
    kubectl label namespace your-namespace istio-injection=disabled
    
  4. アプリケーション ポッドを再起動して(ローリング再起動など)、Envoy サイドカーを削除する。
  5. gcloud を使用して Istio コントロール プレーンを削除します。
    gcloud beta container clusters update my-cluster --project=$PROJECT_ID \
      --update-addons=Istio=DISABLED
    
  6. IstioOperator CustomResource を削除します。

    kubectl delete istiooperator -n istio-system istio-1-6-11-gke-0
    

    クラスタのバージョンによっては、istio-1-6-11-gke-0 をクラスタにインストールされている CustomResource の名前に置き換える必要があります。名前を取得するには、次のコマンドを実行します。

    kubectl get istiooperator -n istio-system\
    
  7. Istio オペレーターがインストールしたリソースを削除するまで数分待ちます。

  8. istio-system 名前空間が存在する場合は削除します。

    kubectl delete ns istio-system

  9. 残りの Istio クラスタ リソースを削除します。

    for i in $(kubectl get clusterrole,clusterrolebinding,crd | grep istio | cut -f1 -d' '); do kubectl delete $i; done