協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Load Balancer控制器路由網際網路流量
The AWS Load Balancer 控制器會管理 Kubernetes 叢集的 AWS Elastic Load Balancer。您可透過此控制器將叢集應用程式開放至網際網路。控制器會佈建指向叢集服務或輸入資源的 AWS 負載平衡器。換言之,控制器會建立單一 IP 位址或 DNS 名稱,並將其指向叢集中的多個 Pod。
控制器會持續監控 Kubernetes Ingress 或 Service 資源。為了回應,它會建立適當的 AWS Elastic Load Balancing資源。您可透過在 Kubernetes 資源上套用註解,設定負載平衡器的特定行為。例如,您可以使用註釋將 AWS 安全群組連接至負載平衡器。
控制器會佈建以下資源:
- Kubernetes
Ingress -
LBC 會在您建立
Ingress時,建立 AWS Application Load Balancer (ALB)。請檢閱可套用至 Ingress 資源的註釋。 - 類型為
LoadBalancer的 Kubernetes 服務 -
LBC 會在您建立類型
LoadBalancer的 Kubernetes 服務時,建立 AWS Network Load Balancer (NLB)。請檢閱可套用至 Service 資源的註釋。在過去,Kubernetes Network Load Balancer 用於執行個體目標,但 LBC 用於 IP 目標。使用 AWS Load Balancer控制器版本
2.3.0或更新版本,您可以使用任一目標類型建立 NLBs。如需 NLB 目標類型的詳細資訊,請參閱《Network Load Balancer 使用者指南》中的目標類型。
此控制器是託管於 GitHub 上的 開源專案
在部署控制器之前,我們建議您先檢閱透過 Application Load Balancer 路由應用程式與 HTTP 流量與 透過 Network Load Balancer 路由 TCP 與 UDP 流量 中的先決條件和考量事項。在這些主題中,您將部署包含 AWS 負載平衡器的範例應用程式。
- Kubernetes
GatewayAPI -
使用 AWS Load Balancer控制器版本
2.14.0或更新版本,LBC 會在您建立 Kubernetes 時建立 AWS Application Load Balancer (ALB)Gateway。Kubernetes Gateway 會將比輸入更多的組態標準化,這需要許多常見選項的自訂註釋。檢閱您可以套用至閘道資源的組態。如需 GatewayAPI 的詳細資訊,請參閱 Kubernetes 文件中的閘道 API。
安裝控制器
您可以使用下列其中一個程序來安裝 AWS Load Balancer控制器:
-
如果您是初次使用 Amazon EKS,我們建議您使用 Helm 進行安裝,因為它可簡化 AWS Load Balancer控制器安裝。如需詳細資訊,請參閱搭配 Helm 的 Install AWS Load Balancer 控制器。
-
若需進階設定,如對公有容器登錄庫的網路存取受限的叢集,請使用 Kubernetes 資訊清單。如需詳細資訊,請參閱具有資訊清單的 Install AWS Load Balancer 控制器。
從已淘汰的控制器版本移轉
-
如果您已安裝已棄用版本的 AWS Load Balancer控制器,請參閱 從已棄用的 ALB 傳入控制器移轉應用程式。
-
已棄用的版本無法升級。必須移除它們,並安裝目前版本的 AWS Load Balancer控制器。
-
已棄用的版本包含:
-
AWS 適用於 Kubernetes 的 ALB 輸入控制器 (「輸入控制器」),是 AWS Load Balancer控制器的前身。
-
任何
0.1.版本的 AWS Load Balancer控制器x
-
舊版雲端供應商
Kubernetes 包含 AWS的舊版雲端供應商。舊版雲端提供者能夠佈建 AWS 負載平衡器,類似於 AWS Load Balancer控制器。舊版雲端供應商建立的是 Classic Load Balancer。如果您未安裝 AWS Load Balancer控制器,Kubernetes 會預設為使用舊版雲端提供者。您應該安裝 AWS Load Balancer控制器,並避免使用舊版雲端提供者。
重要
在 2.5 版和更新版本中, AWS Load Balancer控制器會使用 成為 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 會繼續運作。