OpenShift Service Mesh 3.0 is a Technology Preview feature only
Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. This documentation is a work in progress and might not be complete or fully tested.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.1
Istio を East クラスターにインストールします。
次のコマンドを実行して、East クラスターのデフォルトネットワークを設定します。
$ oc --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
次のコマンドを実行して、East クラスターに
Istio
リソースを作成します。$ cat <<EOF | oc --context "${CTX_CLUSTER1}" apply -f - apiVersion: sailoperator.io/v1alpha1 kind: Istio metadata: name: default spec: version: v${ISTIO_VERSION} namespace: istio-system values: global: meshID: mesh1 multiCluster: clusterName: cluster1 network: network1 externalIstiod: true 1 EOF
- 1
- これにより、East クラスターにインストールされたコントロールプレーンが、他のリモートクラスターの外部コントロールプレーンとして機能できるようになります。
次のコマンドを実行して、コントロールプレーンが "Ready" ステータス状態を返すまで待機します。
$ oc --context "${CTX_CLUSTER1}" wait --for condition=Ready istio/default --timeout=3m
次のコマンドを実行して、East クラスターに East-West ゲートウェイを作成します。
$ oc --context "${CTX_CLUSTER1}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/multicluster/east-west-gateway-net1.yaml
次のコマンドを実行して、West クラスターのサービスがコントロールプレーンにアクセスできるように、ゲートウェイを介してコントロールプレーンを公開します。
$ oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/multicluster/expose-istiod.yaml
次のコマンドを実行して、ゲートウェイを介してアプリケーションサービスを公開します。
$ oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/multicluster/expose-services.yaml
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}')
次のコマンドを実行して、West クラスターに
Istio
リソースを作成します。$ cat <<EOF | oc --context "${CTX_CLUSTER2}" apply -f - apiVersion: sailoperator.io/v1alpha1 kind: Istio metadata: name: default spec: version: v${ISTIO_VERSION} namespace: istio-system profile: remote values: istiodRemote: injectionPath: /inject/cluster/cluster2/net/network2 global: remotePilotAddress: ${DISCOVERY_ADDRESS} EOF
次のコマンドを実行して、West クラスター内の
istio-system
namespace にアノテーションを付けて、East クラスターのコントロールプレーンによって管理されるようにします。$ oc --context="${CTX_CLUSTER2}" annotate namespace istio-system topology.istio.io/controlPlaneClusters=cluster1
次のコマンドを実行して、West クラスターのデフォルトネットワークを設定します。
$ oc --context="${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
次のコマンドを実行して、West クラスターの API サーバーへのアクセスを提供する East クラスターにリモートシークレットをインストールします。
$ istioctl create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ oc --context="${CTX_CLUSTER1}" apply -f -
以下のコマンドを実行して、
Istio
リソースが "Ready" ステータス状態を返すまで待機します。$ oc --context "${CTX_CLUSTER2}" wait --for condition=Ready istio/default --timeout=3m
次のコマンドを実行して、West クラスターに East-West ゲートウェイを作成します。
$ oc --context "${CTX_CLUSTER2}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/multicluster/east-west-gateway-net2.yaml
注記West クラスターはリモートプロファイルとともにインストールされるため、East クラスターでアプリケーションサービスを公開すると、それらのサービスが両方のクラスターの East-West ゲートウェイで公開されます。