

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

# Amazon EKS 混合節點閘道操作
<a name="hybrid-nodes-gateway-operations"></a>

此頁面涵蓋 Amazon EKS 混合節點閘道的第 2 天操作，包括高可用性、容錯移轉行為、監控、擴展和 VXLAN 通道生命週期。如需安裝指示，請參閱[EKS 混合節點閘道入門](hybrid-nodes-gateway-getting-started.md)。

## 高可用性和容錯移轉
<a name="hybrid-nodes-gateway-ha"></a>

混合節點閘道使用主動待命模型搭配以 Kubernetes Lease 為基礎的領導者選擇。兩個閘道 Pod 在單獨的 EC2 節點上執行，由 Pod 反親和性強制執行。兩個 Pod 都會在啟動時建立 VXLAN 界面，並執行節點調校程式，以維護所有混合節點的 VTEP 項目。只有領導者 Pod 會管理 VPC 路由表和 `CiliumVTEPConfig` CRD。待命 Pod 在容錯移轉時隨時準備好在 3-5 秒內轉送流量，因為它已經有一組完整的通道項目。

### 容錯移轉序列
<a name="hybrid-nodes-gateway-failover-sequence"></a>

當作用中閘道執行個體失敗時，會發生下列序列：

1. 待命 Pod 偵測到領導者租用已過期。

1. 待命 Pod 會取得租用，並成為新的領導者。

1. 新的領導者會執行領導者設定序列：
   + 更新 VPC 路由表項目，將混合 Pod CIDRs 指向新領導者的主要 ENI。
   + 使用新領導者的節點 IP 和 VXLAN MAC 地址 Upsert `CiliumVTEPConfig`自訂資源。

1. 流量會繼續流經新的領導者。

由於兩個 Pod 都會隨時維護 VXLAN 介面和 VTEP 項目，因此新領導者不需要在容錯移轉期間重新建立 VXLAN 介面或重新設定通道項目。只需要 VPC 路由表和`CiliumVTEPConfig`更新。

預期的容錯移轉時間約為 3–5 秒。在容錯移轉期間，VPC 和混合 Pod 之間的流量會中斷。

### 可用區域建議
<a name="hybrid-nodes-gateway-az-recommendation"></a>

將閘道節點分散到兩個可用區域，讓 AZ 失敗不會同時佔用領導者和待命。使用 EKS Auto 模式時，`NodeClass`使用跨多個 AZs子網路選擇器來設定您的 。對於受管節點群組或自我管理節點，請在標記節點時選擇不同AZs節點。

**注意**  
閘道與 VPC 中其他資源之間的跨可用區流量會產生標準 AWS 跨可用區資料傳輸費用。

### 領導者選擇參數
<a name="hybrid-nodes-gateway-leader-params"></a>

預設領導者選擇參數會針對快速容錯移轉進行調校：


| 參數 | 預設 | Description | 
| --- | --- | --- | 
|  `--leader-election-lease-duration`  |  `3s`  | 在領導者停止續約後，非領導者嘗試取得租用前的等待時間。 | 
|  `--leader-election-renew-deadline`  |  `2s`  | 領導者嘗試續約租約多久才放棄。 | 
|  `--leader-election-retry-period`  |  `1s`  | 候選者重試取得租用的頻率。 | 

降低這些值可減少容錯移轉時間，但會增加網路分割區下錯誤容錯移轉的風險。對於大多數部署，預設值是適當的。如需詳細資訊，請參閱[Amazon EKS 混合節點閘道組態參考](hybrid-nodes-gateway-configuration.md)。

## VPC 路由表管理
<a name="hybrid-nodes-gateway-route-table-mgmt"></a>

閘道會管理 VPC 路由表項目，以便目的地為混合 Pod CIDRs流量到達作用中的閘道執行個體。

### 如何管理路由
<a name="hybrid-nodes-gateway-route-how"></a>

當閘道 Pod 成為領導者時，它會在每個設定的 VPC 路由表中建立或取代路由。每個路由都會將目的地 CIDR 設定為混合 Pod CIDR，並將目標設定為領導者的主要 ENI。如果路由已存在並指向正確的 ENI，閘道會略過更新。

在容錯移轉期間，新領導者會取代現有的路由，使其指向自己的 ENI。這是將 VPC 流量重新導向至新作用中閘道的機制。

### 路由表項目範例
<a name="hybrid-nodes-gateway-route-example"></a>

閘道設定路由之後，您的 VPC 路由表會包含類似下列的項目：


| 目標 | Target | 狀態 | 
| --- | --- | --- | 
|  `10.0.0.0/16`  | 本機 | active | 
|  {{HYBRID\_POD\_CIDR}}  |  {{eni-LEADER\_ENI\_ID}}  | active | 

### IAM 許可
<a name="hybrid-nodes-gateway-route-iam"></a>

閘道需要下列 IAM 動作來管理路由表：
+  `ec2:DescribeRouteTables` 
+  `ec2:CreateRoute` 
+  `ec2:ReplaceRoute` 
+  `ec2:DescribeInstances` 

將這些許可連接到與閘道節點的執行個體描述檔、Pod 身分或 IRSA 組態相關聯的 IAM 角色。

## 監控
<a name="hybrid-nodes-gateway-monitoring"></a>

### 運作狀態和準備程度端點
<a name="hybrid-nodes-gateway-health-endpoints"></a>

閘道會在連接埠 上公開運作狀態和準備程度端點`8088`：


| Endpoint | 路徑 | Description | 
| --- | --- | --- | 
| 運作狀態檢查 |  `/healthz`  | 當閘道程序運作狀態良好時，傳回 HTTP 200。供 Kubernetes 即時性探查使用。 | 
| 準備度檢查 |  `/readyz`  | 當閘道準備好提供流量時，傳回 HTTP 200。供 Kubernetes 整備探查使用。 | 

您可以執行暫時偵錯容器或連接埠轉送，手動查詢這些端點以進行診斷：

```
kubectl port-forward -n eks-hybrid-nodes-gateway {{POD_NAME}} 8088:8088 &
curl -s http://localhost:8088/healthz
curl -s http://localhost:8088/readyz
```

### 指標端點
<a name="hybrid-nodes-gateway-metrics"></a>

閘道會在`/metrics`路徑`10080`的連接埠上公開 Prometheus 相容指標。除了標準控制器執行期指標之外，還提供下列自訂指標。

 **閘道資訊：**


| 指標 | Type | 說明 | 
| --- | --- | --- | 
|  `hybrid_gateway_info`  | 量測計 | 閘道執行個體的靜態資訊。一律為 1。標籤：`node_ip`、`node_name`、`vxlan_interface`、`vpc_cidr`、`pod_cidr`。 | 

 **混合節點：**


| 指標 | Type | 說明 | 
| --- | --- | --- | 
|  `hybrid_gateway_hybrid_nodes_configured`  | 量測計 | 已設定 VTEP 項目的混合節點目前數量。 | 

 **VTEP 操作：**


| 指標 | Type | 說明 | 
| --- | --- | --- | 
|  `hybrid_gateway_vtep_add_total`  | 計數器 | 成功的 VTEP 新增操作總數。 | 
|  `hybrid_gateway_vtep_add_errors_total`  | 計數器 | 失敗的 VTEP 新增操作總數。 | 
|  `hybrid_gateway_vtep_remove_total`  | 計數器 | 成功的 VTEP 移除操作總數。 | 
|  `hybrid_gateway_vtep_remove_errors_total`  | 計數器 | 失敗的 VTEP 移除操作總數。 | 

 **領導者選擇和路由表：**


| 指標 | Type | 說明 | 
| --- | --- | --- | 
|  `hybrid_gateway_leader_is_active`  | 量測計 | 如果此 Pod 是作用中的領導者，則為 1；如果為待命，則為 0。 | 
|  `hybrid_gateway_leader_setup_duration_seconds`  | 直方圖 | 領導者設定操作 （路由表 \+ CiliumVTEPConfig) 的持續時間，以秒為單位。 | 
|  `hybrid_gateway_aws_route_table_update_total`  | 計數器 | 總成功 AWS 路由表更新操作。 | 
|  `hybrid_gateway_aws_route_table_update_errors_total`  | 計數器 | 失敗的 AWS 路由表更新操作總數。 | 
|  `hybrid_gateway_aws_route_table_update_duration_seconds`  | 直方圖 |  AWS 路由表更新操作的持續時間，以秒為單位。 | 

 **網路統計資料 （每個湊集的隨需收集）：**


| 指標 | Type | 說明 | 
| --- | --- | --- | 
|  `hybrid_gateway_vxlan_rx_bytes_total`  | 量測計 | VXLAN 界面上接收的總位元組數。 | 
|  `hybrid_gateway_vxlan_tx_bytes_total`  | 量測計 | 在 VXLAN 界面上傳輸的總位元組數。 | 
|  `hybrid_gateway_vxlan_rx_packets_total`  | 量測計 | VXLAN 界面上收到的封包總數。 | 
|  `hybrid_gateway_vxlan_tx_packets_total`  | 量測計 | 在 VXLAN 界面上傳輸的總封包數。 | 
|  `hybrid_gateway_vxlan_rx_dropped_total`  | 量測計 | 在 VXLAN 界面接收時捨棄的封包總數。 | 
|  `hybrid_gateway_vxlan_tx_dropped_total`  | 量測計 | VXLAN 介面傳輸時捨棄的封包總數。 | 
|  `hybrid_gateway_vxlan_rx_errors_total`  | 量測計 | VXLAN 界面上的總接收錯誤。 | 
|  `hybrid_gateway_vxlan_tx_errors_total`  | 量測計 | VXLAN 界面上的傳輸錯誤總數。 | 
|  `hybrid_gateway_vxlan_interface_up`  | 量測計 | 如果 VXLAN 介面為 UP，則為 1，否則為 0。 | 
|  `hybrid_gateway_vxlan_fdb_entries`  | 量測計 | VXLAN 界面上 FDB 項目的目前數量。 | 
|  `hybrid_gateway_vxlan_route_count`  | 量測計 | 透過 VXLAN 界面的目前路由數。 | 
|  `hybrid_gateway_primary_nic_rx_bytes_total`  | 量測計 | 在主要網路界面上接收的總位元組數。 | 
|  `hybrid_gateway_primary_nic_tx_bytes_total`  | 量測計 | 在主要網路界面上傳輸的總位元組數。 | 
|  `hybrid_gateway_primary_nic_rx_packets_total`  | 量測計 | 在主要網路介面上收到的封包總數。 | 
|  `hybrid_gateway_primary_nic_tx_packets_total`  | 量測計 | 在主要網路介面上傳輸的總封包數。 | 
|  `hybrid_gateway_primary_nic_rx_dropped_total`  | 量測計 | 在主要 NIC 接收時捨棄的封包總數。 | 
|  `hybrid_gateway_primary_nic_tx_dropped_total`  | 量測計 | 主要 NIC 在傳輸時捨棄的封包總數。 | 
|  `hybrid_gateway_primary_nic_rx_errors_total`  | 量測計 | 主要 NIC 的總接收錯誤。 | 
|  `hybrid_gateway_primary_nic_tx_errors_total`  | 量測計 | 主要 NIC 上的傳輸錯誤總數。 | 
|  `hybrid_gateway_primary_nic_info`  | 量測計 | 主要 NIC 名稱。一律為 1。標籤：`interface_name`。 | 

### CloudWatch 可觀測性附加元件
<a name="hybrid-nodes-gateway-cloudwatch"></a>

您可以使用 [Amazon CloudWatch Observability 附加元件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html)來收集閘道指標和日誌。設定附加元件以抓取連接埠 上的閘道命名空間 (`eks-hybrid-nodes-gateway`)`10080`。如需正確的組態格式，請參閱上面連結的附加元件文件。

## 擴展考量
<a name="hybrid-nodes-gateway-scaling"></a>

混合節點閘道使用主動待命模型搭配領導者選擇，因此只有一個 Pod 會在任何指定時間處理流量。水平擴展閘道 （透過增加複本數量） 可以提供可在容錯移轉期間接管的額外待命 Pod，但它不會改善效能或輸送量，因為流量不會分散到複本。若要擴展效能，請為您的流量選擇具有足夠網路頻寬的 EC2 執行個體類型，以垂直擴展。

### 執行個體類型指引
<a name="hybrid-nodes-gateway-instance-guidance"></a>

閘道輸送量受限於 EC2 執行個體網路效能。選取執行個體類型時，請考慮下列事項：
+  **網路頻寬** — 閘道會轉送 VPC 和混合 Pod 之間的所有流量。選擇網路頻寬符合您尖峰流量需求的執行個體類型。
+  **每秒封包數 (PPS)** — VXLAN 封裝會增加每個封包的額外負荷。具有許多小型封包的工作負載 （例如，具有高請求率的微服務） 受益於具有較高 PPS 限制的執行個體類型。
+  **混合節點數量** — 每個混合節點都會新增 VXLAN 通道端點，閘道會透過此端點轉送流量。隨著混合節點數量的擴展，透過閘道的彙總流量也會增加。選取具有足夠網路頻寬的執行個體類型，以處理叢集的尖峰跨網路流量。

### 建議的執行個體類型
<a name="hybrid-nodes-gateway-instance-recommendations"></a>

 **生產 (10–100 個混合節點、中等流量）** 

適用於具有穩定跨網路流量的標準生產工作負載。


| 執行個體類型 | vCPUs | 記憶體 | 網路 | 備註 | 
| --- | --- | --- | --- | --- | 
|  `c6i.xlarge`  | 4 | 8 GiB | 最高 12.5 Gbps | 成本和效能的良好平衡 | 
|  `c6in.xlarge`  | 4 | 8 GiB | 高達 30 Gbps | 網路最佳化；建議用於生產 | 
|  `c7i.xlarge`  | 4 | 8 GiB | 最高 12.5 Gbps | 最新一代的運算最佳化 | 
|  `m6i.xlarge`  | 4 | 16 GiB | 最高 12.5 Gbps | 適合在閘道節點上同時放置其他工作負載時 | 

 **高輸送量生產 （超過 100 個混合節點、大量流量）** 

對於具有重大跨網路頻寬需求的環境，例如資料密集型工作負載或許多並行連線。


| 執行個體類型 | vCPUs | 記憶體 | 網路 | 備註 | 
| --- | --- | --- | --- | --- | 
|  `c6in.2xlarge`  | 8 | 16 GiB | 高達 40 Gbps | 建議用於高輸送量生產 | 
|  `c5n.2xlarge`  | 8 | 21 GiB | 最高 25 Gbps | 上一代網路最佳化、經濟實惠 | 
|  `c6in.4xlarge`  | 16 | 32 GiB | 最高 50 Gbps | 非常繁重的工作負載的最大輸送量 | 
|  `c5n.4xlarge`  | 16 | 42 GiB | 最高 25 Gbps | 極高封包速率的高 vCPU 計數 | 

使用閘道指標監控網路使用率 （請參閱[指標端點](#hybrid-nodes-gateway-metrics))，並視需要調整執行個體類型。

## VXLAN 通道生命週期
<a name="hybrid-nodes-gateway-vxlan-lifecycle"></a>

閘道會在混合節點加入或離開叢集時，自動維護混合節點的 VXLAN 通道。

### 如何管理通道
<a name="hybrid-nodes-gateway-tunnel-mgmt"></a>

節點控制器會監看叢集中的`CiliumNode`物件。控制器會在每個閘道 Pod （不只是領導者） 上執行，因此領導者和待命都具有up-to-date通道狀態。`CiliumNode` 事件發生時，控制器會尋找`eks.amazonaws.com/compute-type: hybrid`標籤來檢查節點是否為混合節點。

 **當混合節點加入叢集時：**

1. 控制器會偵測新的`CiliumNode`物件。

1. 它會從`CiliumNode`規格擷取節點的內部 IP 地址和 Pod CIDR。

1. 它會在 VXLAN 界面上設定下列項目：
   + 透過 VXLAN 界面透過節點 IP 的節點 Pod CIDR 路由。
   + 將節點 IP 映射至決定性 MAC 地址的靜態 ARP 項目。
   + 告知 VXLAN 模組將封裝封包傳送至節點 IP 的 FDB 項目。

 **當混合節點離開叢集時：**

1. 控制器會偵測`CiliumNode`刪除。

1. 它會從 VXLAN 介面移除該節點的路由、ARP 項目和 FDB 項目。

此生命週期是全自動的。新增或移除混合節點時，您不需要手動設定通道。

## 後續步驟
<a name="hybrid-nodes-gateway-operations-next"></a>
+  [Amazon EKS 混合節點閘道組態參考](hybrid-nodes-gateway-configuration.md) — 自訂 Helm 值、CLI 旗標和領導者選擇參數。
+  [Amazon EKS 混合節點閘道疑難排解](hybrid-nodes-gateway-troubleshooting.md) — 診斷並解決常見問題。
+  [Amazon EKS 混合節點閘道](hybrid-nodes-gateway-overview.md) — 返回概觀頁面。