5.4. プライマリーリモートマルチネットワークメッシュのインストール
2 つの OpenShift Container Platform クラスターのプライマリーリモートマルチネットワークトポロジーに Istio をインストールします。
この手順では、CLUSTER1
は East クラスター、CLUSTER2
は West クラスターです。East クラスターはプライマリークラスターで、West クラスターはリモートクラスターです。
これらの手順は、2 つ以上のクラスターにまたがるメッシュに適応できます。
前提条件
- メッシュを構成するすべてのクラスターに OpenShift Service Mesh 3 Operator をインストールした。
- 「マルチクラスターメッシュの証明書の作成」を完了した。
- 「マルチクラスタートポロジーへの証明書の適用」を完了した。
- Istio Container Network Interface (CNI) リソースを作成した。
-
この手順を実行するために使用するノートパソコンに
istioctl
をインストールした。
手順
以下のコマンドを実行して、インストールする Istio バージョンを定義する
ISTIO_VERSION
環境変数を作成します。export ISTIO_VERSION=1.24.3
$ export ISTIO_VERSION=1.24.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Istio を East クラスターにインストールします。
次のコマンドを実行して、East クラスターのデフォルトネットワークを設定します。
oc --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
$ oc --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、East クラスターに
Istio
リソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- これにより、East クラスターにインストールされたコントロールプレーンが、他のリモートクラスターの外部コントロールプレーンとして機能できるようになります。
次のコマンドを実行して、コントロールプレーンが "Ready" ステータス条件を返すまで待機します。
oc --context "${CTX_CLUSTER1}" wait --for condition=Ready istio/default --timeout=3m
$ oc --context "${CTX_CLUSTER1}" wait --for condition=Ready istio/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、East クラスターに East-West ゲートウェイを作成します。
oc --context "${CTX_CLUSTER1}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net1.yaml
$ oc --context "${CTX_CLUSTER1}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、West クラスターのサービスがコントロールプレーンにアクセスできるように、ゲートウェイを介してコントロールプレーンを公開します。
oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-istiod.yaml
$ oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-istiod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ゲートウェイを介してアプリケーションサービスを公開します。
oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-services.yaml
$ oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-services.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Istio を West クラスターにインストールします。
次のコマンドを実行して、East クラスターで実行されている East-West ゲートウェイの IP アドレスを保存します。
export DISCOVERY_ADDRESS=$(oc --context="${CTX_CLUSTER1}" \ -n istio-system get svc istio-eastwestgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
$ export DISCOVERY_ADDRESS=$(oc --context="${CTX_CLUSTER1}" \ -n istio-system get svc istio-eastwestgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、West クラスターに
Istio
リソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、West クラスター内の
istio-system
namespace にアノテーションを付けて、East クラスターのコントロールプレーンによって管理されるようにします。oc --context="${CTX_CLUSTER2}" annotate namespace istio-system topology.istio.io/controlPlaneClusters=cluster1
$ oc --context="${CTX_CLUSTER2}" annotate namespace istio-system topology.istio.io/controlPlaneClusters=cluster1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、West クラスターのデフォルトネットワークを設定します。
oc --context="${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
$ oc --context="${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、West クラスターの API サーバーへのアクセスを提供するリモートシークレットを、East クラスターにインストールします。
istioctl create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ oc --context="${CTX_CLUSTER1}" apply -f -
$ istioctl create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ oc --context="${CTX_CLUSTER1}" apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Istio
リソースが "Ready" ステータス条件を返すまで待機します。oc --context "${CTX_CLUSTER2}" wait --for condition=Ready istio/default --timeout=3m
$ oc --context "${CTX_CLUSTER2}" wait --for condition=Ready istio/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、West クラスターに East-West ゲートウェイを作成します。
oc --context "${CTX_CLUSTER2}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net2.yaml
$ oc --context "${CTX_CLUSTER2}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記West クラスターはリモートプロファイルとともにインストールされるため、East クラスターでアプリケーションサービスを公開すると、それらのサービスが両方のクラスターの East-West ゲートウェイで公開されます。