マルチプライマリのインストール
このガイドに従って、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}"