混合節點的聯網概念 - Amazon EKS

協助改進此頁面

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

混合節點的聯網概念

本節詳細說明設計 EKS 混合節點的網路拓撲時,必須考量的核心聯網概念和限制條件。

EKS 混合節點的聯網概念

高階混合節點網路圖

VPC 作為網路集線器

所有跨雲端邊界路由的流量都會通過您的 VPC。這包括在 AWS 中執行的 EKS 控制平面或 Pod 與在其上執行的混合節點或 Pod 之間的流量。您可以將叢集的 VPC 視為混合節點與叢集其餘部分之間的網路集線器。此架構可讓您完全控制流量及其路由,但也可要求您須負責正確設定 VPC 的路由、安全群組和防火牆。

EKS 控制平面到 VPC

EKS 控制平面會將彈性網路介面 (ENI) 連接至您的 VPC。這些 ENI 會處理進出 EKS API 伺服器的流量。您可以在設定叢集時控制 EKS 控制平面 ENI 的置放,因為 EKS 會將 ENI 連接到您在叢集建立期間傳遞的子網路。

EKS 會將安全群組與 EKS 連接到子網路的 ENI 建立關聯。這些安全群組允許流量透過 ENI 進出 EKS 控制平面。這對 EKS 混合節點很重要,因為您必須允許流量從混合節點和在其上執行的 Pod 進入 EKS 控制平面 ENI。

遠端節點網路

遠端節點網路,特別是遠端節點 CIDR,是指派給您用作混合節點的機器的 IP 範圍。當您佈建混合節點時,它們位於您的內部部署資料中心或邊緣節點,這是與 EKS 控制平面和 VPC 不同的網路網域。每個混合節點都有來自遠端節點 CIDR 的 IP 位址或地址,而該 CIDR 與您 VPC 中的子網路不同。

您可以使用這些遠端節點 CIDR 設定 EKS 叢集,以便 EKS 知道透過叢集 VPC 路由所有以混合節點 IP 為目標的流量,例如請求到 kubelet API。

遠端 Pod 網路

遠端 Pod 網路是指派給在混合節點上執行的 Pod 的 IP 範圍。一般而言,您可以使用這些範圍設定 CNI,而 CNI 的 IP 位址管理 (IPAM) 功能會負責將這些範圍的配量指派給每個混合節點。當您建立 Pod 時,CNI 會從配置給已排程 Pod 的節點的配量,將 IP 指派給 Pod。

您可以使用這些遠端 Pod CIDR 設定 EKS 叢集,因此 EKS 控制平面知道透過叢集的 VPC 路由所有以混合節點上執行的 Pod 為目標的流量,例如與 Webhook 的通訊。

遠端 Pod 網路

內部部署到 VPC

您用於混合節點的內部部署網路必須路由到您用於 EKS 叢集的 VPC。若要將內部部署網路連接到 VPC,有數個網路到 Amazon VPC 連線選項可用。您也可以使用自己的 VPN 解決方案。

請務必在 VPC 和內部部署網路的 AWS 雲端側正確設定路由,以便兩個網路均可透過兩個網路的連線路由正確的流量。

在 VPC 中,所有流向遠端節點和遠端 Pod 網路的流量都必須透過連線路由至內部部署網路 (稱為「閘道」)。如果您的部分子網路具有不同的路由表,則您必須使用混合節點的路由和在其上執行的 Pod 來設定每個路由表。對於連接 EKS 控制平面 ENI 的子網路,以及包含必須與混合節點通訊的 EC2 節點或 Pod 的子網路而言,都是如此。

在內部部署網路中,您必須設定網路,以允許流量進出 EKS 叢集的 VPC 以及混合節點所需的其他 AWS 服務。EKS 叢集的流量可雙向周遊閘道。

聯網限制條件

完全路由的網路

主要限制條件是 EKS 控制平面和所有節點 (雲端或混合節點) 需要形成一個完全路由的網路。這表示所有節點都必須能夠透過 IP 位址在第三層彼此連接。

由於 EKS 控制平面和雲端節點位於平面網路 (VPC) 中,因此它們可以彼此連接。不過,混合節點會位於不同的網路網域中。因此,您需要在 VPC 和內部部署網路中設定額外的路由,以在混合節點和叢集的其餘部分之間路由流量。如果混合節點可從彼此和 VPC 連接,則您的混合節點可以位於單一平面網路或多個分段網路中。

可路由的遠端 Pod CIDR

若要讓 EKS 控制平面與在混合節點 (例如 Webhook 或指標伺服器) 上執行的 Pod 通訊,或讓在雲端節點上執行的 Pod 與在混合節點上執行的 Pod 通訊 (工作負載東西通訊),您的遠端 Pod CIDR 必須可從 VPC 路由。這表示 VPC 必須能夠透過閘道將流量路由至內部部署網路的 Pod CIDR,並且您的內部部署網路必須能夠將 Pod 的流量路由至正確的節點。

請務必注意 VPC 和內部部署中 Pod 路由要求之間的差異。VPC 只需要知道任何流向遠端 Pod 的流量均應通過閘道。如果您只有一個遠端 Pod CIDR,則僅需一個路由。

此要求適用於您內部部署網路中的所有躍點,直到與您的混合節點位於相同子網路的本機路由器為止。這是唯一需要了解指派給每個節點的 Pod CIDR 配量的路由器,從而確保特定 Pod 的流量會交付至已排程 Pod 的節點。

您可以選擇將這些內部部署 Pod CIDR 的路由從本機內部部署路由器傳播到 VPC 路由表,但這並非必要。如果您的內部部署 Pod CIDR 經常變更,且您的 VPC 路由表需要更新以反映不斷變化的 Pod CIDR,我們建議您將內部部署 Pod CIDR 傳播至 VPC 路由表,不過這並不常見。

請注意,將內部部署 Pod CIDR 設為可路由的限制條件為選用項。如果您不需要在混合節點上執行 Webhook,或讓雲端節點上的 Pod 與混合節點上的 Pod 通訊,則您無需為內部部署網路上的 Pod CIDR 設定路由。

為什麼內部部署 Pod CIDR 需要使用混合節點進行路由?

將 EKS 與雲端節點的 VPC CNI 搭配使用時,VPC CNI 會將 IP 直接從 VPC 指派給 Pod。這表示不需要任何特殊路由,因為雲端 Pod 和 EKS 控制平面都可以直接連接 Pod IP。

當在內部部署執行 (以及與雲端中的其他 CNI 一起執行) 時,Pod 通常會在隔離的覆蓋網路中執行,而 CNI 則負責在 Pod 之間交付流量。這通常透過封裝來完成:CNI 會將 pod 至 pod 流量轉換為節點至節點流量,並負責兩端的封裝和解封裝。如此一來,就節點和路由器上就不需要額外的組態。

與混合節點的聯網是唯一的,因為它會提供兩種拓撲的組合:EKS 控制平面和雲端節點 (使用 VPC CNI) 預期包括節點和 Pod 的平坦網路,而混合節點上執行的 Pod 則位於覆蓋網路 (預設位於 Cilium)中,可透過使用 VXLAN 進行封裝。在混合節點上執行的 Pod 可以連接在雲端節點上執行的 EKS 控制平面和 Pod,前提是內部部署網路可路由到 VPC。不過,如果沒有內部部署網路上的 Pod CIDR 的路由,而且網路不知道如何連接至覆蓋網路以及路由到正確的節點,則最終會捨棄任何返回內部部署 Pod IP 的流量。