協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS 混合節點閘道操作
此頁面涵蓋 Amazon EKS 混合節點閘道的第 2 天操作,包括高可用性、容錯移轉行為、監控、擴展和 VXLAN 通道生命週期。如需安裝指示,請參閱EKS 混合節點閘道入門。
高可用性和容錯移轉
混合節點閘道使用主動待命模型搭配以 Kubernetes Lease 為基礎的領導者選擇。兩個閘道 Pod 在單獨的 EC2 節點上執行,由 Pod 反親和性強制執行。兩個 Pod 都會在啟動時建立 VXLAN 界面,並執行節點調校程式,以維護所有混合節點的 VTEP 項目。只有領導者 Pod 會管理 VPC 路由表和 CiliumVTEPConfig CRD。待命 Pod 在容錯移轉時隨時準備好在 3-5 秒內轉送流量,因為它已經有一組完整的通道項目。
容錯移轉序列
當作用中閘道執行個體失敗時,會發生下列序列:
-
待命 Pod 偵測到領導者租用已過期。
-
待命 Pod 會取得租用,並成為新的領導者。
-
新的領導者會執行領導者設定序列:
-
更新 VPC 路由表項目,將混合 Pod CIDRs 指向新領導者的主要 ENI。
-
使用新領導者的節點 IP 和 VXLAN MAC 地址 Upsert
CiliumVTEPConfig自訂資源。
-
-
流量會繼續流經新的領導者。
由於兩個 Pod 都會隨時維護 VXLAN 介面和 VTEP 項目,因此新領導者不需要在容錯移轉期間重新建立 VXLAN 介面或重新設定通道項目。只需要 VPC 路由表和CiliumVTEPConfig更新。
預期的容錯移轉時間約為 3–5 秒。在容錯移轉期間,VPC 和混合 Pod 之間的流量會中斷。
可用區域建議
將閘道節點分散到兩個可用區域,讓 AZ 失敗不會同時佔用領導者和待命。使用 EKS Auto 模式時,NodeClass使用跨多個 AZs子網路選擇器來設定您的 。對於受管節點群組或自我管理節點,請在標記節點時選擇不同AZs節點。
注意
閘道與 VPC 中其他資源之間的跨可用區流量會產生標準 AWS 跨可用區資料傳輸費用。
領導者選擇參數
預設領導者選擇參數會針對快速容錯移轉進行調校:
| 參數 | 預設 | Description |
|---|---|---|
|
|
|
在領導者停止續約後,非領導者嘗試取得租用前的等待時間。 |
|
|
|
領導者嘗試續約租約多久才放棄。 |
|
|
|
候選者重試取得租用的頻率。 |
降低這些值可減少容錯移轉時間,但會增加網路分割區下錯誤容錯移轉的風險。對於大多數部署,預設值是適當的。如需詳細資訊,請參閱Amazon EKS 混合節點閘道組態參考。
VPC 路由表管理
閘道會管理 VPC 路由表項目,以便目的地為混合 Pod CIDRs流量到達作用中的閘道執行個體。
如何管理路由
當閘道 Pod 成為領導者時,它會在每個設定的 VPC 路由表中建立或取代路由。每個路由都會將目的地 CIDR 設定為混合 Pod CIDR,並將目標設定為領導者的主要 ENI。如果路由已存在並指向正確的 ENI,閘道會略過更新。
在容錯移轉期間,新領導者會取代現有的路由,使其指向自己的 ENI。這是將 VPC 流量重新導向至新作用中閘道的機制。
路由表項目範例
閘道設定路由之後,您的 VPC 路由表會包含類似下列的項目:
| 目標 | Target | 狀態 |
|---|---|---|
|
|
本機 |
active |
|
|
|
active |
IAM 許可
閘道需要下列 IAM 動作來管理路由表:
-
ec2:DescribeRouteTables -
ec2:CreateRoute -
ec2:ReplaceRoute -
ec2:DescribeInstances
將這些許可連接到與閘道節點的執行個體描述檔、Pod 身分或 IRSA 組態相關聯的 IAM 角色。
監控
運作狀態和準備程度端點
閘道會在連接埠 上公開運作狀態和準備程度端點8088:
| Endpoint | 路徑 | Description |
|---|---|---|
|
運作狀態檢查 |
|
當閘道程序運作狀態良好時,傳回 HTTP 200。供 Kubernetes 即時性探查使用。 |
|
準備度檢查 |
|
當閘道準備好提供流量時,傳回 HTTP 200。供 Kubernetes 整備探查使用。 |
您可以執行暫時偵錯容器或連接埠轉送,手動查詢這些端點以進行診斷:
kubectl port-forward -n eks-hybrid-nodes-gatewayPOD_NAME8088:8088 & curl -s http://localhost:8088/healthz curl -s http://localhost:8088/readyz
指標端點
閘道會在/metrics路徑10080的連接埠上公開 Prometheus 相容指標。除了標準控制器執行期指標之外,還提供下列自訂指標。
閘道資訊:
| 指標 | Type | 說明 |
|---|---|---|
|
|
量測計 |
閘道執行個體的靜態資訊。一律為 1。標籤: |
混合節點:
| 指標 | Type | 說明 |
|---|---|---|
|
|
量測計 |
已設定 VTEP 項目的混合節點目前數量。 |
VTEP 操作:
| 指標 | Type | 說明 |
|---|---|---|
|
|
計數器 |
成功的 VTEP 新增操作總數。 |
|
|
計數器 |
失敗的 VTEP 新增操作總數。 |
|
|
計數器 |
成功的 VTEP 移除操作總數。 |
|
|
計數器 |
失敗的 VTEP 移除操作總數。 |
領導者選擇和路由表:
| 指標 | Type | 說明 |
|---|---|---|
|
|
量測計 |
如果此 Pod 是作用中的領導者,則為 1;如果為待命,則為 0。 |
|
|
直方圖 |
領導者設定操作 (路由表 + CiliumVTEPConfig) 的持續時間,以秒為單位。 |
|
|
計數器 |
總成功 AWS 路由表更新操作。 |
|
|
計數器 |
失敗的 AWS 路由表更新操作總數。 |
|
|
直方圖 |
AWS 路由表更新操作的持續時間,以秒為單位。 |
網路統計資料 (每個湊集的隨需收集):
| 指標 | Type | 說明 |
|---|---|---|
|
|
量測計 |
VXLAN 界面上接收的總位元組數。 |
|
|
量測計 |
在 VXLAN 界面上傳輸的總位元組數。 |
|
|
量測計 |
VXLAN 界面上收到的封包總數。 |
|
|
量測計 |
在 VXLAN 界面上傳輸的總封包數。 |
|
|
量測計 |
在 VXLAN 界面接收時捨棄的封包總數。 |
|
|
量測計 |
VXLAN 介面傳輸時捨棄的封包總數。 |
|
|
量測計 |
VXLAN 界面上的總接收錯誤。 |
|
|
量測計 |
VXLAN 界面上的傳輸錯誤總數。 |
|
|
量測計 |
如果 VXLAN 介面為 UP,則為 1,否則為 0。 |
|
|
量測計 |
VXLAN 界面上 FDB 項目的目前數量。 |
|
|
量測計 |
透過 VXLAN 界面的目前路由數。 |
|
|
量測計 |
在主要網路界面上接收的總位元組數。 |
|
|
量測計 |
在主要網路界面上傳輸的總位元組數。 |
|
|
量測計 |
在主要網路介面上收到的封包總數。 |
|
|
量測計 |
在主要網路介面上傳輸的總封包數。 |
|
|
量測計 |
在主要 NIC 接收時捨棄的封包總數。 |
|
|
量測計 |
主要 NIC 在傳輸時捨棄的封包總數。 |
|
|
量測計 |
主要 NIC 的總接收錯誤。 |
|
|
量測計 |
主要 NIC 上的傳輸錯誤總數。 |
|
|
量測計 |
主要 NIC 名稱。一律為 1。標籤: |
CloudWatch 可觀測性附加元件
您可以使用 Amazon CloudWatch Observability 附加元件來收集閘道指標和日誌。設定附加元件以抓取連接埠 上的閘道命名空間 (eks-hybrid-nodes-gateway)10080。如需正確的組態格式,請參閱上面連結的附加元件文件。
擴展考量
混合節點閘道使用主動待命模型搭配領導者選擇,因此只有一個 Pod 會在任何指定時間處理流量。水平擴展閘道 (透過增加複本數量) 可以提供可在容錯移轉期間接管的額外待命 Pod,但它不會改善效能或輸送量,因為流量不會分散到複本。若要擴展效能,請為您的流量選擇具有足夠網路頻寬的 EC2 執行個體類型,以垂直擴展。
執行個體類型指引
閘道輸送量受限於 EC2 執行個體網路效能。選取執行個體類型時,請考慮下列事項:
-
網路頻寬 — 閘道會轉送 VPC 和混合 Pod 之間的所有流量。選擇網路頻寬符合您尖峰流量需求的執行個體類型。
-
每秒封包數 (PPS) — VXLAN 封裝會增加每個封包的額外負荷。具有許多小型封包的工作負載 (例如,具有高請求率的微服務) 受益於具有較高 PPS 限制的執行個體類型。
-
混合節點數量 — 每個混合節點都會新增 VXLAN 通道端點,閘道會透過此端點轉送流量。隨著混合節點數量的擴展,透過閘道的彙總流量也會增加。選取具有足夠網路頻寬的執行個體類型,以處理叢集的尖峰跨網路流量。
建議的執行個體類型
生產 (10–100 個混合節點、中等流量)
適用於具有穩定跨網路流量的標準生產工作負載。
| 執行個體類型 | vCPUs | 記憶體 | 網路 | 備註 |
|---|---|---|---|---|
|
|
4 |
8 GiB |
最高 12.5 Gbps |
成本和效能的良好平衡 |
|
|
4 |
8 GiB |
高達 30 Gbps |
網路最佳化;建議用於生產 |
|
|
4 |
8 GiB |
最高 12.5 Gbps |
最新一代的運算最佳化 |
|
|
4 |
16 GiB |
最高 12.5 Gbps |
適合在閘道節點上同時放置其他工作負載時 |
高輸送量生產 (超過 100 個混合節點、大量流量)
對於具有重大跨網路頻寬需求的環境,例如資料密集型工作負載或許多並行連線。
| 執行個體類型 | vCPUs | 記憶體 | 網路 | 備註 |
|---|---|---|---|---|
|
|
8 |
16 GiB |
高達 40 Gbps |
建議用於高輸送量生產 |
|
|
8 |
21 GiB |
最高 25 Gbps |
上一代網路最佳化、經濟實惠 |
|
|
16 |
32 GiB |
最高 50 Gbps |
非常繁重的工作負載的最大輸送量 |
|
|
16 |
42 GiB |
最高 25 Gbps |
極高封包速率的高 vCPU 計數 |
使用閘道指標監控網路使用率 (請參閱指標端點),並視需要調整執行個體類型。
VXLAN 通道生命週期
閘道會在混合節點加入或離開叢集時,自動維護混合節點的 VXLAN 通道。
如何管理通道
節點控制器會監看叢集中的CiliumNode物件。控制器會在每個閘道 Pod (不只是領導者) 上執行,因此領導者和待命都具有up-to-date通道狀態。CiliumNode 事件發生時,控制器會尋找eks.amazonaws.com/compute-type: hybrid標籤來檢查節點是否為混合節點。
當混合節點加入叢集時:
-
控制器會偵測新的
CiliumNode物件。 -
它會從
CiliumNode規格擷取節點的內部 IP 地址和 Pod CIDR。 -
它會在 VXLAN 界面上設定下列項目:
-
透過 VXLAN 界面透過節點 IP 的節點 Pod CIDR 路由。
-
將節點 IP 映射至決定性 MAC 地址的靜態 ARP 項目。
-
告知 VXLAN 模組將封裝封包傳送至節點 IP 的 FDB 項目。
-
當混合節點離開叢集時:
-
控制器會偵測
CiliumNode刪除。 -
它會從 VXLAN 介面移除該節點的路由、ARP 項目和 FDB 項目。
此生命週期是全自動的。新增或移除混合節點時,您不需要手動設定通道。
後續步驟
-
Amazon EKS 混合節點閘道組態參考 — 自訂 Helm 值、CLI 旗標和領導者選擇參數。
-
Amazon EKS 混合節點閘道疑難排解 — 診斷並解決常見問題。
-
Amazon EKS 混合節點閘道 — 返回概觀頁面。