安裝多主叢集

按照本指南在 cluster1cluster2 上安裝 Istio 控制平面,使每個叢集都成為主要叢集。兩個叢集都位於 network1 網路上,這表示兩個叢集中的 Pod 之間有直接連線。

在繼續之前,請務必完成開始之前中的步驟。

在此設定中,每個控制平面都會觀察兩個叢集中的 API 伺服器以尋找端點。

服務工作負載跨叢集邊界直接 (pod-to-pod) 通訊。

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}"
    
這項資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!