本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
什麼是 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 使用者指南》中的目標類型。
控制器是一個管理的開源項目
在部署控制器之前,我們建議您檢閱 Amazon EKS 上的應用程式負載平衡 和 Amazon EKS 上的網路負載平衡 中的先決條件和考量事項。在這些主題中,您將部署包含 AWS 負載平衡器的範例應用程式。
部署控制器 🚀
-
瞭解如何安裝使AWS Load Balancer Controller用頭盔。如果您是 Amazon EKS 的新手,請使用此程序。此程序使用 Helm
(套件管理員)Kubernetes,並 eksctl
簡化 LBC 的安裝程序。 -
或者,使用資Kubernetes訊清單安裝AWS Load Balancer Controller附加元件. 此程序適用於進階叢集配置。這包括對公用容器登錄具有限制網路存取權的叢集。
移除已停用版本
-
如果您已淘汰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
。您可以關閉此功能並恢復為使用舊式雲端供應商enableServiceMutatorWebhook
設定為 false
。除非您關閉此功能,否則叢集不會為您的服務佈建新的 Classic Load Balancer。現有的 Classic Load Balancer 會繼續運作。