バンドルされた Istio から Anthos Service Mesh に移行する

この手順は、Knative serving「GKE アドオン」にデフォルトで含まれている Istio のバンドル バージョンに固有のものです。

Knative serving の「GKE アドオン」のアンインストール プロセスを実行したときに Istio のバンドル バージョンがアンインストールされるため、次の手順に沿って操作します。このページでは、クラスタに Anthos Service Mesh をインストールし、Ingress ゲートウェイを構成します。

始める前に

概要

一般に、Istio のバンドル バージョンから移行するときに Anthos Service Mesh をインストールするプロセスは、クリーンな Anthos Service Mesh をインストールするプロセスと同じです。このプロセスでは、Anthos Service Mesh バージョン 1.18 がクラスタ内コントロール プレーンにインストールされます。

Anthos Service Mesh バージョン 1.18 をインストールする

Anthos Service Mesh のインストールには、Anthos Service Mesh のインストール ドキュメントを使用します。

始める前に:

  • 移行の場合は、以降の構成手順で Ingress ゲートウェイを個別にインストールする必要があります。デフォルトで、インストール スクリプトは Ingress ゲートウェイをインストールしません。

  • 省略可: Anthos Service Mesh 認証局(Mesh CA)を使用する場合は、Anthos Service Mesh のインストール スクリプトに --ca mesh_ca フラグも含める必要があります。

Anthos Service Mesh をインストールするには:

Anthos Service Mesh バージョン 1.18 のインストールの Anthos Service Mesh のドキュメントの手順を行います。

必須フラグを含むデフォルトのコマンドの例を次に示します。

./asmcli install \
  --project_id ${PROJECT_ID} \
  --cluster_name ${CLUSTER_NAME} \
  --cluster_location ${CLUSTER_LOCATION} \
  --ca mesh_ca \
  --output_dir DIR_PATH \
  --enable_all

Anthos Service Mesh Ingress を構成する

このセクションでは、移行スクリプトを使用して gke-system Namespace 内に Anthos Service Mesh Ingress ゲートウェイを作成します。

移行では、gke-system 名前空間が使用され、Ingress ゲートウェイは最近削除された「バンドルされた Istio」によって使用される名前空間と同じ名前空間に配置されます。そのため、Anthos Service Mesh Ingress Pod は、Ingress サービスに対して必要な構成の変更を行うことなく、トラフィックをシームレスに引き継ぎます。たとえば、新しい外部 IP アドレスを構成する必要はありません。

  1. gke-system 名前空間内に Ingress ゲートウェイを作成するには、次のコマンドを実行して移行スクリプトを開始します。

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

    プロセス中のターミナルの出力は次のようになります。

    Setting up Anthos Service Mesh ingress. Note that the Anthos Service Mesh ingress is not
    serving traffic at this step.
    namespace/gke-system labeled
    deployment.apps/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    Anthos Service Mesh ingress is successfully installed.
    
  2. 次のコマンドを実行して、gke-system 名前空間で istio-ingrerssgateway Ingress ゲートウェイが実行されていることを確認します。

    kubectl get deployment istio-ingressgateway -n gke-system
    

    istio-ingressgateway Pod の数は意図的に 0 になっています。 Knative serving フリート コンポーネントをインストールしたら、後続のステップで Anthos Service Mesh Ingress にすべてのトラフィックを移行します。

次のステップ

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

ロールバック

上記手順での変更をロールバックする必要がある場合は、移行スクリプトを使用して次のことを行えます。

  • Anthos Service Mesh Ingress ゲートウェイを削除します。
  • Anthos Service Mesh をアンインストールする

Anthos Service Mesh の構成とインストールをロールバックするには:

  1. 次のコマンドを実行して、エミュレータを起動します。

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

    プロセス中のターミナルの出力は次のようになります。

    Deleting Anthos 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
    Anthos Service Mesh ingress is successfully deleted.
    
  2. Anthos Service Mesh Ingress ゲートウェイが削除されたことを確認するには、istio-ingressgateway サービスが gke-system 名前空間に存在しなくなったことを確認します。

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Anthos Service Mesh をアンインストールする

  4. インストールの元の状態にすべての変更をロールバックするには、Knative serving「GKE アドオン」をロールバックします。