この手順は、Knative serving「GKE アドオン」にデフォルトで含まれている Istio のバンドル バージョンに固有のものです。
Knative serving の「GKE アドオン」のアンインストール プロセスを実行したときに Istio のバンドル バージョンがアンインストールされるため、このページでは、クラスタに Cloud Service Mesh をインストールし、Ingress ゲートウェイを構成します。
始める前に
アップグレードの要件を満たしていることをまずレビューし、確認する必要があります。
このページのコマンドは、アップグレード準備手順の環境変数と移行スクリプトを使用します。
このプロセスの各ステップを、指定された順序で実行することが重要です。
概要
一般に、Istio のバンドル バージョンから移行するときに Cloud Service Mesh をインストールするプロセスは、Cloud Service Mesh をクリーンにインストールするプロセスと同じです。このプロセスでは、クラスタ内コントロール プレーンとともに Cloud Service Mesh バージョン 1.18 がインストールされます。
Cloud Service Mesh バージョン 1.18 をインストールする
Cloud Service Mesh をインストールするには、Cloud サービス メッシュのインストール ドキュメントを使用します。
始める前に:
移行では、以降の構成手順で Ingress ゲートウェイを個別にインストールする必要があります。インストール スクリプトは、デフォルトでは Ingress ゲートウェイをインストールしません。
省略可: Cloud Service Mesh 認証局(Mesh CA)を使用する場合は、Cloud Service Mesh インストール スクリプトに
--ca mesh_ca
フラグも含める必要があります。
Cloud Service Mesh をインストールするには:
Cloud Service Mesh ドキュメントの Cloud Service Mesh バージョン 1.18 をインストールするの手順に沿って操作します。
- 例
必須フラグを含むデフォルト コマンドの例を次に示します。
./asmcli install \ --project_id ${PROJECT_ID} \ --cluster_name ${CLUSTER_NAME} \ --cluster_location ${CLUSTER_LOCATION} \ --ca mesh_ca \ --output_dir DIR_PATH \ --enable_all
Cloud Service Mesh Ingress を構成する
このセクションでは、移行スクリプトを使用して、gke-system
名前空間内に Cloud Service Mesh Ingress ゲートウェイを作成します。
移行では、gke-system
名前空間を使用して、最近削除された「バンドルされた Istio」で使用されているのと同じ Namespace に Ingress ゲートウェイが配置されるようにします。したがって、Cloud Service Mesh Ingress Pod は、Ingress サービスの構成を変更しなくても、トラフィックをシームレスに引き継ぎます。たとえば、新しい外部 IP アドレスを構成する必要はありません。
gke-system
名前空間内に Ingress ゲートウェイを作成するには、次のコマンドを実行して移行スクリプトを開始します。./migration-addon.sh --command set-up-asm-ingress
処理中のターミナル出力は次のようになります。
Setting up Cloud Service Mesh ingress. Note that the Cloud 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 Cloud Service Mesh ingress is successfully installed.
次のコマンドを実行して、
istio-ingrerssgateway
Ingress ゲートウェイがgke-system
名前空間で実行されていることを確認します。kubectl get deployment istio-ingressgateway -n gke-system
istio-ingressgateway
Pod の数は、意図的に0
になっています。Knative serving フリート コンポーネントをインストールしたら、後続のステップで Cloud Service Mesh Ingress にすべてのトラフィックを移行します。
次のステップ
ロールバック
上記手順での変更をロールバックする必要がある場合は、移行スクリプトを使用して次のことを行えます。
- Cloud Service Mesh の Ingress ゲートウェイを削除します。
- Cloud Service Mesh をアンインストールします。
Cloud Service Mesh の構成とインストールをロールバックするには:
次のコマンドを実行して、エミュレータを起動します。
./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.
Cloud Service Mesh Ingress ゲートウェイが削除されたことを確認するには、
istio-ingressgateway
サービスがgke-system
名前空間に存在しないことを確認します。kubectl get deployment istio-ingressgateway -n gke-system
インストールの元の状態にすべての変更をロールバックするには、Knative serving「GKE アドオン」をロールバックします。