什麼是 AWS Load Balancer Controller? - Amazon EKS

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

什麼是 AWS Load Balancer Controller?

AWS Load Balancer Controller管理Kubernetes叢集的 AWS 彈性負載平衡器。您可以使用控制器將叢集應用程式公開至網際網路。控制器佈建指向叢集服務或 Ingress 資源的 AWS 負載平衡器。換句話說,控制器會建立指向叢集中多個網繭的單一 IP 位址或 DNS 名稱。

控制器監視KubernetesIngress或Service資源。作為回應,它會建立適當的 E AWS lastic Load Balancing 資源。您可以透過將註釋套用至Kubernetes資源來設定負載平衡器的特定行為。例如,您可以使用註釋將 AWS 安全群組附加至負載平衡器。

控制器會佈建以下資源:

Kubernetes Ingress

當您建立AWS 應用程式負載平衡器 (ALB) 時,LBC 會建立. Kubernetes Ingress 檢閱您可以套用至 Ingress 資源的註釋。

LoadBalancer 類型的 Kubernetes 服務

當您建立類型的Kubernetes服務時,LBC 會建立 AWS Network Load Balancer (NLB)LoadBalancer檢閱您可以套用至服務資源的註釋。

過去,Kubernetes網路負載平衡器用於執行個體目標,但 LBC 已用於 IP 目標。使用 AWS Load Balancer Controller 2.3.0 版或更新版本,您可以使用任一目標類型建立 NLB。如需 NLB 目標類型的詳細資訊,請參閱《Network Load Balancer 使用者指南》中的目標類型

控制器是一個管理的開源項目GitHub。

在部署控制器之前,我們建議您檢閱 Amazon EKS 上的應用程式負載平衡Amazon EKS 上的網路負載平衡 中的先決條件和考量事項。在這些主題中,您將部署包含 AWS 負載平衡器的範例應用程式。

部署控制器 🚀

移除已停用版本

  • 如果您已淘汰AWS Load Balancer Controller安裝的版本,請瞭解如何從棄用的控制器遷移

  • 已取代的版本無法升級。它們必須被刪除並AWS Load Balancer Controller安裝的當前版本。

  • 已過時的版本包括:

    • AWS ALB 入口控制器 Kubernetes (「入口控制器」),前身是. AWS Load Balancer Controller

    • 任何0.1.x版本的 AWS Load Balancer Controller

傳統雲端供應商

Kubernetes包括的舊版雲端供應商 AWS。舊版雲端提供者能夠佈建 AWS 負載平衡器,類似於AWS Load Balancer Controller. 舊版雲端提供者會建立傳統負載平衡器。如果您未安裝AWS Load Balancer Controller,Kubernetes將預設為使用舊版雲端提供者。您應該安裝AWS Load Balancer Controller並避免使用舊版雲端供應商。

重要

在 2.5 及更新版本中,AWS Load Balancer Controller會成為Kubernetes服務資源的預設控制器,type: LoadBalancer並為每個服務建立 AWS Network Load Balancer (NLB)。它透過為服務製作變異的 webhook 來做到這一點,此 webhook 會為 type: LoadBalancer 的新服務將 spec.loadBalancerClass 欄位設定至 service.k8s.aws/nlb。您可以關閉此功能並恢復為使用舊式雲端供應商作為預設控制器,方法是將 Helm Chart 值 enableServiceMutatorWebhook 設定為 false。除非您關閉此功能,否則叢集不會為您的服務佈建新的 Classic Load Balancer。現有的 Classic Load Balancer 會繼續運作。