協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在兩個叢集之間共用目標群組
下列範例會在兩個叢集之間共用一個目標群組。第一個叢集透過輸入擁有 Application Load Balancer,而第二個叢集透過手動建立的 加入共用目標群組TargetGroupBinding。開始之前,請檢閱 設定多叢集目標群組 以了解 MultiCluster 支援的運作方式,以及如何啟用它。
叢集 1 — 透過輸入擁有負載平衡器
部署您的應用程式 (例如,使用 NodePort服務的部署),然後建立Ingress具有多叢集註釋的 IngressClass和 。
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb-mc spec: controller: eks.amazonaws.com/alb --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: echoserver namespace: echoserver annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: instance alb.ingress.kubernetes.io/multi-cluster-target-group: "true" spec: ingressClassName: alb-mc rules: - http: paths: - path: / pathType: Exact backend: service: name: echoserver port: number: 80
控制器會佈建負載平衡器,並使用 產生 TargetGroupBinding spec.multiClusterTargetGroup: true。請注意所產生 TargetGroupBinding和 服務的下列值 — 第二個叢集需要這三個值:
-
targetGroupARN。 -
服務
nodePort。 -
來自 的負載平衡器安全群組 ID
spec.networking.ingress[].from[].securityGroup.groupID。
叢集 2 — 透過 TargetGroupBinding 加入共用目標群組
部署相同的應用程式,將服務nodePort從叢集 1 固定到 ,然後建立TargetGroupBinding參考叢集 1 目標群組 ARN 和安全群組 ID 的 。
apiVersion: eks.amazonaws.com/v1 kind: TargetGroupBinding metadata: name: mc-echoserver namespace: echoserver spec: multiClusterTargetGroup: true serviceRef: name: echoserver port: 80 targetGroupARN: <cluster-1-target-group-arn> targetType: instance networking: ingress: - from: - securityGroup: groupID: <cluster-1-alb-security-group-id> ports: - port: <cluster-2-node-port> protocol: TCP
在兩個繫結上啟用 MultiCluster 支援後,每個叢集只會註冊和取消註冊自己的目標。在單一共用目標群組中,兩個叢集的節點都正常運作,負載平衡器會將流量分配到所有叢集。