選單

本頁面使用了機器翻譯。某些內容可能不盡完善。請告訴我們如何改進。

分享意見

AWS EKS 架構:叢集、節點與網路

目錄

分享本頁

Yifat Perry
Yifat Perry

什麼是 AWS EKS?

Amazon Elastic Kubernetes Service (Amazon EKS) 是一項由 AWS 管理的 Kubernetes 服務,可擴展、管理及部署容器化應用程式。它通常運行於 Amazon 公有雲,但也可以部署在本地端。Amazon EKS 的 Kubernetes 管理基礎架構橫跨多個可用區(AZ)。AWS EKS 獲得 Kubernetes 兼容認證,這意味著您可以將 EKS 與現有工具整合使用。

在本文中,您將學到:

Amazon EKS 的運作方式為何?

EKS 叢集由以下主要元件構成:控制平面和工作節點。每個叢集都在其自身完全託管的 Virtual Private Cloud(VPC)中運作。

控制平面由三個主節點組成,每個節點運行在不同的 AZ 中,以確保AWS 高可用性。傳送至 Kubernetes API 的入站流量會經過 AWS 網路負載平衡器(NLB)。

工作節點運行於位於虛擬私有雲(VPC)內的 Amazon EC2 執行個體,該虛擬私有雲並非由 AWS 管理。你可以控制並設定分配給工作節點的 VPC。您可以使用 SSH 來授予現有自動化系統存取權限,或為工作節點進行配置。

主要有兩種部署選項。你可以為每個環境或應用程式部署一個叢集。或者,您也可以定義 IAM 安全政策和 Kubernetes 命名空間,以部署單一叢集供多個應用程式使用。

為了限制控制平面和叢集之間的流量,EKS 提供了 Amazon VPC 網路策略。只有經過 Kubernetes 基於角色的存取控制(RBAC)定義的授權叢集和帳戶才能查看控制平面元件或與控制平面元件通訊。

下圖說明了在 EKS 上部署叢集的過程 — 您指示 EKS 佈建叢集,雲端資源在背景中佈建,然後您可以連線到 Kubernetes 叢集並執行您的工作負載。

圖片來源:AWS

AWS EKS 元件

AWS EKS 架構由下列主要元件構成:叢集、節點和網路。

Amazon EKS 叢集

叢集由控制平面和 EKS 節點組成。


EKS 控制平面

控制平面運行在 Amazon 託管的 AWS 帳戶中的一組專用 EC2 執行個體上,並提供可供應用程式存取的 API 端點。它以單一租戶模式運行,負責控制 Kubernetes 主節點,例如 API Server 和 etcd。

etcd 上的資料使用 Amazon Key Management (KMS) 進行加密。Kubernetes 主節點分佈在多個AWS 可用區(AZ)中,流量由 Elastic Load Balancer (ELB) 管理。


EKS 節點

Kubernetes 工作節點在您組織的 AWS 帳戶中的 EC2 執行個體上運行。它們透過憑證檔案使用 API 端點連接到控制平面。每個叢集皆使用獨特的憑證。

相關內容:AWS Kubernetes 叢集:使用 EC2 和 EKS 快速建置

Amazon EKS 節點

Amazon EKS 叢集可以使用三種主要方法來排程 Pod。


自我管理節點

在 EKS 中,「節點」是指可供 Kubernetes pod 調度的 Amazon EC2 執行個體。Pod 會連接到 EKS 叢集的 API 端點。節點會組織成節點群組。節點群組中的所有 EC2 執行個體必須具備相同的:

  • Amazon 執行個體類型
  • Amazon Machine Image(IAM)
  • IAM 角色

您可以在叢集中擁有多個節點群組,每個節點群組代表不同類型的執行個體或具有不同角色的執行個體。


託管節點群組

Amazon EKS 提供受管節點群組,具備自動化的生命週期管理功能。這讓你可以透過單一操作自動建立、更新或關閉節點。EKS 使用 Amazon 最新、針對 EKS 最佳化的 Linux AMI。當你終止節點時,EKS 會優雅地排空它們,以確保服務不中斷。您可輕鬆地為整個節點群組套用 Kubernetes 標籤,以利管理。

受管節點透過由 Amazon EKS 服務管理的 EC2 自動擴展群組進行運作。你可以定義這些群組應該運行在哪些可用區。啟動受管節點群組有多種方式,包括 EKS 控制台、eksctl、Amazon CLI、Amazon API,或 Amazon 自動化工具(如 CloudFormation)。


Amazon Fargate

您可以使用 Amazon Fargate(一種無伺服器容器服務)來執行工作節點,無需管理底層伺服器基礎架構。Fargate 只會根據實際使用的 vCPU 與記憶體收費。它會根據叢集節點的實際需求,動態調配更多運算資源。

Amazon EKS 網路

下圖展示了 EKS 叢集的網路架構:

圖片來源:AWS

Amazon EKS 叢集運作在虛擬私有雲(VPC)中,VPC 是 Amazon 資料中心內的安全私有網路。EKS 會將所有資源部署到您選擇的 VPC 中現有子網路內,該 VPC 位於同一個 Amazon 區域內。

EKS 控制平面所使用的網路介面

EKS 控制平面在亞馬遜管理的 VPC 中運行。它會在你的帳戶中針對每個你建立的 EKS 叢集建立並管理網路介面。EC2 和 Fargate 執行個體使用這些網路介面連接到 EKS 控制平面。

預設情況下,EKS 會公開一個公共端點。如果你希望為叢集提供額外的安全性,可以啟用私有端點,和/或限制存取至特定 IP 位址。您可以設定本地網路或其他虛擬私有雲(VPC)與 EKS 叢集所使用的 VPC 之間的連線功能。


EKS 節點的網路

EKS 叢集使用的每個 EC2 執行個體都位於一個子網路中。您有兩種方式定義網路:

  • 使用 AWS CloudFormation 範本建立子網路—在這種情況下,公用子網路中的節點會被賦予一個公用 IP 位址,以及一個來自子網路所使用的 CIDR 區塊的私人 IP 位址。
  • 使用容器網路介面(CNI)實作自訂網路—這樣即使 EC2 執行個體不屬於該子網路,您也可以為來自任何子網路的 Pod 指派 IP 位址。您必須在啟動節點時啟用自訂網路。

AWS EKS Storage 與 Cloud Volumes ONTAP

NetApp Cloud Volumes ONTAP 是領先業界的企業級儲存管理解決方案,可在 AWS、Azure 和 Google Cloud 上提供安全可靠、實證肯定的儲存管理服務。Cloud Volumes ONTAP 支援高達 368TB 的容量,並支援各種使用案例,例如檔案服務、資料庫、DevOps 或任何其他企業工作負載,並具有一系列強大的功能,包括高可用度、資料保護、儲存效率、Kubernetes 整合等。

特別是,Cloud Volumes ONTAP 支援容器化工作負載的 Kubernetes Persistent Volume 資源配置和管理需求。

Drift chat loading