View a markdown version of this page

設定多叢集目標群組 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定多叢集目標群組

根據預設,Amazon EKS Auto Mode 負載平衡器控制器會完全控制其設定的目標群組。當目標群組向控制器註冊時,它會取消註冊目前不在叢集中的任何目標。這可確保目標群組反映該叢集所管理的確切目標集。

啟用 MultiCluster 支援會變更此行為。啟用 MultiCluster 支援的目標群組可以與多個 Kubernetes 叢集建立關聯,或支援來自其他來源的任意目標。每個叢集只會註冊和取消註冊其擁有的目標,而不是取消註冊屬於其他叢集或來源的目標。

運作方式

啟用 MultiCluster 支援時,每個叢集會追蹤其管理的目標集,並僅協調共用目標群組中的這些目標。Amazon EKS Auto Mode 會將每個叢集追蹤的目標儲存在ConfigMap名為 的 Kubernetes 中eks-lbc-targets-<targetgroupbinding-name>,與負載平衡器資源位於相同的命名空間中。

注意

上游 AWS Load Balancer控制器會將此狀態存放在ConfigMap具有 aws-lbc-targets-字首的 中。在 Amazon EKS Auto Mode 上,字首改為 eks-lbc-targets-,因此在遵循上游指引時,請檢查 eks-lbc-targets- ConfigMap

負載平衡器會將流量平均分配到所有已註冊的目標。控制器不支援跨叢集的加權分佈。MultiCluster 支援適用於 ipinstance 目標類型。

啟用 MultiCluster 支援

根據您的資源類型,使用下列其中一種方法啟用 MultiCluster 支援:

  • TargetGroupBinding — 設定 spec.multiClusterTargetGroup: true

  • 輸入 (ALB) — 新增註釋 alb.ingress.kubernetes.io/multi-cluster-target-group: "true"

  • 服務 (NLB) — 新增註釋 service.beta.kubernetes.io/aws-load-balancer-multi-cluster-target-group: "true"

Amazon EKS 自動模式的考量事項

AWS Load Balancer控制器 GitHub 網站上的上游MultiCluster目標群組指南會逐步解說在兩個叢集之間共用一個目標群組。如需多叢集架構的廣泛討論,請參閱 AWS 部落格上的使用 Amazon EKS 建置彈性多叢集應用程式。相同的流程適用於具有下列差異的 Amazon EKS Auto Mode:

  • TargetGroupBinding 自訂資源位於 eks.amazonaws.com/v1 API 群組中,而不是 elbv2.k8s.aws/v1beta1

  • IngressClass 控制器為 eks.amazonaws.com/alb

  • 請勿設定alb.ingress.kubernetes.io/tags註釋。AmazonEKSLoadBalancingPolicy 受管政策限制aws:TagKeys為允許清單,因此自訂標籤會導致存取遭拒錯誤,且控制器無法協調它們。這可能會導致傳入定稿器在刪除時卡住。

  • 所有參與的叢集都必須位於相同的 VPC 中,因為目標群組的範圍是單一 VPC。

範例

如需在兩個叢集之間共用單一目標群組step-by-step演練,其中一個叢集透過輸入擁有負載平衡器,另一個透過 聯結TargetGroupBinding,請參閱 在兩個叢集之間共用目標群組