Istio アドオンを Cloud Service Mesh に移行する

以下の手順は、クラスタに Istio on GKE の入口ゲートウェイが構成されていることが特定されたインストールに固有のものです。このプロセスでは、Cloud Service Mesh バージョン 1.18 がマネージド コントロール プレーンとともにインストールされます。

始める前に

概要

一般に、マネージド コントロール プレーンを使用して「Istio アドオン」から Cloud Service Mesh に移行するプロセスは次のとおりです。

  1. Cloud Service Mesh マネージド コントロール プレーンをインストールします。
  2. 移行スクリプトを使用して Cloud Service Mesh Ingress ゲートウェイを構成します。

Cloud Service Mesh バージョン 1.18 に移行する

Cloud Service Mesh のドキュメント「Istio on GKE から Cloud Service Mesh への移行」の詳細な手順を行う必要があります。インストールが完了し、ワークロードが移行されたら、このページに戻って残りの構成手順を完了します。

  1. 「Istio アドオンの移行手順」を使用して、Google 管理のコントロール プレーンによって Cloud Service Mesh にインストールを移行します。

    このプロセスで注意すべき主な項目は次のとおりです。

    • custom envoy filters are not supported」というプロンプトが表示された場合、次の操作を行います。単に「はい」を選択して、移行を続行します。例:

      Detected custom envoy filters are not supported by Cloud Service Mesh.
      Please remove these if possible
      NAMESPACE    NAME                                 AGE
      gke-system   allowconnect-cluster-local-gateway   26m
      Continue anyways? [y/N] Y
      
    • 移行手順には、Cloud Service Mesh のインストールを完了する手順を実行するための、移行を正常に完了するセクションが含まれています。重要: これらの手順の実施後は、変更をロールバックできなくなります。

    Istio アドオンの移行手順: Istio on GKE から Cloud Service Mesh への移行

  2. 移行手順を完了し、ワークロードを Cloud Service Mesh に移行したら、次のコマンドを実行して Ingress Pod を再起動し、knative-serving 名前空間で Ingress Pod にラベルを付けます。

    1. Ingress Pod を再起動します。

      kubectl rollout restart deployment autoscaler activator webhook -n knative-serving
      
    2. istio: ingressgateway ラベルを追加します。

      kubectl patch deployment ${INGRESS_NAME} --namespace ${INGRESS_NAMESPACE} --patch  '{"spec": {"template": {"metadata": {"labels": {"istio": "ingressgateway"}}}}}'
      

Cloud Service Mesh Ingress を構成する

このセクションでは、移行スクリプトを使用して、Cloud Service Mesh マネージド コントロール プレーンのリリース チャンネルasm-managed-rapid に設定します。

次のコマンドを実行して、移行スクリプトを開始します。

 ./migration-addon.sh \
 --asm-revision asm-managed-rapid \
 --command set-up-asm-ingress

次のステップ

フリート コンポーネントをインストールする

ロールバック

前述の手順での変更をロールバックする必要がある場合は、次のことができます。

  • 移行スクリプトを使用して Cloud Service Mesh Ingress を削除する。
  • Cloud Service Mesh のインストールをロールバックする。

Google が管理するコントロール プレーンを使用して Cloud Service Mesh のインストールと構成をロールバックするには、次の手順を行います。

  1. 次のコマンドを実行して、Cloud Service Mesh Ingress を削除します。

    ./migration-addon.sh --command rollback-set-up-asm-ingress
    

    処理中のターミナル出力は次のようになります。

    Deleting Cloud Service Mesh ingress
    deployment.apps "istio-ingressgateway" deleted
    horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted
    role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    Cloud Service Mesh ingress is successfully deleted.
    
  2. ロールバックを確認するには、gke-system 名前空間に istio-ingressgateway サービスが存在しないことを確認します。

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Cloud Service Mesh のインストールをロールバックします

  4. 次のコマンドを実行して、「Istio アドオン」を再度有効にします。

    ./migration-addon.sh --command rollback-uninstall-istio-addon
    
  5. 引き続きインストールの変更を元の状態にロールバックするには、Istio アドオンをロールバックします。