マルチプライマリのインストール
このガイドに従って、cluster1とcluster2の両方にIstioコントロールプレーンをインストールし、それぞれをプライマリクラスタにします。両方のクラスタはnetwork1ネットワーク上にあり、両方のクラスタのポッド間に直接的な接続があることを意味します。
続行する前に、始める前にの手順を完了してください。
この構成では、各コントロールプレーンは、両方のクラスタのエンドポイントについてAPIサーバーを監視します。
サービスクラスタは、クラスタ境界を越えて直接(ポッド間)通信します。
cluster1をプライマリとして構成する
cluster1用のIstio構成を作成する
$ cat <<EOF > cluster1.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
global:
meshID: mesh1
multiCluster:
clusterName: cluster1
network: network1
EOF
構成をcluster1に適用する
$ istioctl install --context="${CTX_CLUSTER1}" -f cluster1.yaml
cluster2をプライマリとして構成する
cluster2用のIstio構成を作成する
$ cat <<EOF > cluster2.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
global:
meshID: mesh1
multiCluster:
clusterName: cluster2
network: network1
EOF
構成をcluster2に適用する
$ istioctl install --context="${CTX_CLUSTER2}" -f cluster2.yaml
エンドポイント検出を有効にする
cluster2 に、cluster1 の API サーバーへのアクセスを提供するリモートシークレットをインストールします。
$ istioctl create-remote-secret \
--context="${CTX_CLUSTER1}" \
--name=cluster1 | \
kubectl apply -f - --context="${CTX_CLUSTER2}"
cluster1 に、cluster2 の API サーバーへのアクセスを提供するリモートシークレットをインストールします。
$ istioctl create-remote-secret \
--context="${CTX_CLUSTER2}" \
--name=cluster2 | \
kubectl apply -f - --context="${CTX_CLUSTER1}"
おめでとうございます! 複数のプライマリクラスターにまたがる Istio メッシュのインストールに成功しました!
次のステップ
インストールを 検証する ことができます。
クリーンアップ
cluster1の Istio をアンインストールします。$ istioctl uninstall --context="${CTX_CLUSTER1}" -y --purge $ kubectl delete ns istio-system --context="${CTX_CLUSTER1}"cluster2の Istio をアンインストールします。$ istioctl uninstall --context="${CTX_CLUSTER2}" -y --purge $ kubectl delete ns istio-system --context="${CTX_CLUSTER2}"