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

以下の手順は、クラスタに Istio on GKE の Ingress ゲートウェイが構成されていることが特定されたインストールに固有のものです。このプロセスでは、マネージド コントロール プレーンを使用して 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 Namespace で 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. ロールバックを確認するには、istio-ingressgateway サービスが gke-system Namespace に存在しないことを確認します。

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

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

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