協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
使用服務注釋設定 Network Load Balancer
了解如何使用 Kubernetes 服務註釋,在 Amazon EKS 中設定 Network Load Balancer (NLB)。本主題解釋了 EKS 自動模式支援用於自訂 NLB 行為的註釋,包括網際網路可存取性、運作狀態檢查、SSL/TLS 終止及 IP 目標模式。
當您在 EKS 自動模式中建立類型為 LoadBalancer 的 Kubernetes 服務時,EKS 會根據您指定的註釋自動佈建和設定 AWS Network Load Balancer。這種宣告式方法允許您直接透過 Kubernetes 資訊清單來管理負載平衡器組態,維持基礎結構即程式碼的實踐。
EKS 自動模式預設為處理所有 LoadBalancer 類型服務的 Network Load Balancer 佈建 - 無需安裝或設定額外的控制器。loadBalancerClass: eks.amazonaws.com/nlb 規格被自動設定為叢集預設值,簡化了部署程序,同時保持了與現有 Kubernetes 工作負載的相容性。
注意
範例服務
如需有關 Kubernetes Service 資源的詳細資訊,請參閱 Kubernetes 文件中
請檢閱下面的範例 Service 資源:
apiVersion: v1 kind: Service metadata: name: echoserver annotations: # Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB) service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing spec: selector: app: echoserver ports: - port: 80 targetPort: 8080 protocol: TCP type: LoadBalancer # Specify the new load balancer class for NLB as part of EKS Auto Mode feature # For clusters with Auto Mode enabled, this field can be omitted as it's the default loadBalancerClass: eks.amazonaws.com/nlb
常用註釋
下表列出 EKS 自動模式支援的常用註釋。請注意,EKS 自動模式可能不支援所有註釋。
提示
下列所有註釋都需要加上字首 service.beta.kubernetes.io/
| 欄位 | 描述 | 範例 |
|---|---|---|
|
|
指定負載平衡器類型。將 |
|
|
|
指定是將流量路由到節點執行個體,還是直接路由到 Pod IP。將 |
|
|
|
控制負載平衡器是內部或是面向網際網路。 |
|
|
|
目標群組的運作狀態檢查通訊協定。常見選項是 |
|
|
|
使用 HTTP/HTTPS 通訊協定時,用於運作狀態檢查的 HTTP 路徑。 |
|
|
|
用於運作狀態檢查的連接埠。可以是特定連接埠號碼或 |
|
|
|
指定要在哪些子網路中建立負載平衡器。可使用子網路 ID 或名稱。 |
|
|
|
來自 AWS Certificate Manager 的 SSL 憑證 ARN,用於 HTTPS/TLS。 |
|
|
|
指定哪些連接埠應使用 SSL/TLS。 |
|
|
|
允許存取負載平衡器的 CIDR 範圍。 |
|
|
|
要套用至負載平衡器及相關資源的額外 AWS 標籤。 |
|
|
|
指定負載平衡器是使用 IPv4,還是雙堆疊 (IPv4 + IPv6)。 |
|
考量事項
-
您必須更新叢集 IAM 角色,以啟用從 Kubernetes 到 AWS 負載平衡器資源的標籤傳播。如需詳細資訊,請參閱 用於 EKS Auto 資源的自訂 AWS 標籤。
-
有關將資源與 EKS 自動模式或自我管理的 AWS 負載平衡器控制器關聯的資訊,請參閱 移轉參考。
-
有關修復負載平衡器問題的資訊,請參閱 EKS 自動模式疑難排解。
-
有關使用 EKS 自動模式負載平衡功能的更多考量,請參閱 負載平衡。
當移轉至 EKS 自動模式進行負載平衡時,服務註釋與資源組態中需要進行多項變更。以下表格概述了先前與新實作之間的關鍵差異,包括不支援的選項和推薦的替代方案。
服務註釋
| 先前的 | 新增 | 描述 |
|---|---|---|
|
|
不支援 |
在服務上使用 |
|
|
不支援 |
在服務上使用 |
|
|
不支援 |
使用 |
|
各種負載平衡器屬性 |
不支援 |
使用 |
|
|
不支援 |
改用 |
|
|
不支援 |
改用 |
|
|
不支援 |
改用 |
|
|
不支援 |
改用 |
|
|
不支援 |
改用 |
要從已棄用的負載平衡器屬性註釋移轉,請將這些設定合併至 service.beta.kubernetes.io/aws-load-balancer-attributes 註釋中。此註釋接受逗號分隔的鍵值對清單,用於各種負載平衡器屬性。例如,若要指定代理通訊協定、存取日誌和跨區域負載平衡,請使用以下格式:
service.beta.kubernetes.io/aws-load-balancer-attributes: access_logs.s3.enabled=true,access_logs.s3.bucket=my-bucket,access_logs.s3.prefix=my-prefix,load_balancing.cross_zone.enabled=true
這種合併格式提供了一種更一致、更靈活的方式來設定負載平衡器屬性,同時減少了所需單獨注釋的數量。請檢閱您現有的服務組態,並將其更新為使用此合併格式。
TargetGroupBinding
| 先前的 | 新增 | 描述 |
|---|---|---|
|
|
|
API 版本變更 |
|
|
|
明確的目標類型規格 |
|
|
不支援 |
不再支援沒有安全群組的 NLB |