マルチプライマリのインストール

このガイドに従って、cluster1cluster2の両方にIstioコントロールプレーンをインストールし、それぞれをプライマリクラスタにします。両方のクラスタはnetwork1ネットワーク上にあり、両方のクラスタのポッド間に直接的な接続があることを意味します。

続行する前に、始める前にの手順を完了してください。

この構成では、各コントロールプレーンは、両方のクラスタのエンドポイントについてAPIサーバーを監視します。

サービスクラスタは、クラスタ境界を越えて直接(ポッド間)通信します。

Multiple primary clusters on the same network
同じネットワーク上の複数のプライマリクラスタ

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 メッシュのインストールに成功しました!

次のステップ

インストールを 検証する ことができます。

クリーンアップ

  1. cluster1 の Istio をアンインストールします。

    $ istioctl uninstall --context="${CTX_CLUSTER1}" -y --purge
    $ kubectl delete ns istio-system --context="${CTX_CLUSTER1}"
    
  2. cluster2 の Istio をアンインストールします。

    $ istioctl uninstall --context="${CTX_CLUSTER2}" -y --purge
    $ kubectl delete ns istio-system --context="${CTX_CLUSTER2}"
    
この情報は役に立ちましたか?
改善のためのご提案はありますか?

フィードバックありがとうございます!