Amazon EKS 功能

概觀

Amazon Elastic Kubernetes Service (Amazon EKS) 是一種受管 Kubernetes 服務,可讓您輕鬆在 AWS 和內部部署執行 Kubernetes。Kubernetes 是一種開放原始碼系統,用於自動化容器化應用程式的部署、擴展和管理。Amazon EKS 已獲得 Kubernetes 一致性授權,因此在上游 Kubernetes 執行的現有應用程式可與 Amazon EKS 相容。

Amazon EKS 能夠自動管理 Kubernetes 控制平面節點的可用性和可擴展性,而這些節點負責排定容器的行程、管理應用程式可用性、存放叢集資料及其他關鍵任務。

Amazon EKS 可讓您在 Amazon Elastic Compute Cloud (Amazon EC2) 和 AWS Fargate 上執行 Kubernetes 應用程式。您可以使用 Amazon EKS,充分利用 AWS 基礎設施的所有效能、可擴展性、可靠性和可用性,以及與 AWS 聯網和安全性服務的整合,例如載入分佈的 Application Load Balancer (ALB)、具有角色型存取控制權 (RBAC) 的 AWS Identity and Access Management (IAM) 整合,以及實現 pod 聯網的 AWS Virtual Private Cloud (VPC) 支援。

電腦資料的照片

受管 Kubernetes 叢集

Amazon EKS 提供可擴展且高度可用的 Kubernetes 控制平面,可跨多個 AWS 可用區域 (AZ) 執行。Amazon EKS 可自動管理 Kubernetes API 伺服器的可用性和可擴展性,以及 etcd 耐久儲存層。Amazon EKS 在三個 AZ 執行 Kubernetes 控制平面,以確保高可用性,此外還可自動偵測及替換運作狀態不佳的控制平面節點。

AWS Controllers for Kubernetes (ACK) 可讓您在 Kubernetes 環境中直接管理 AWS 服務。ACK 使您能夠輕鬆建置利用 AWS 服務的可擴展、可用性極高的 Kubernetes 應用程式。

EKS 為 Kubernetes 叢集提供整合的主控台。叢集操作員和應用程式開發人員都可以將 EKS 作為單一的位置,來為在 Amazon EKS 上執行的 Kubernetes 應用程式進行組織、視覺化和疑難排解。EKS 主控台由 AWS 託管,並自動可供所有 EKS 叢集使用。

Amazon EKS 可讓您使用單一命令,建立、更新、擴展或終止叢集的節點。這些節點也能夠利用 Amazon EC2 Spot 執行個體來降低成本。 受管節點群組會使用您 AWS 帳戶中針對 EKS 最佳化的最新或自訂 Amazon Machine Image (AMI),來執行 Amazon EC2 執行個體,同時更新和終止會正常耗盡節點,以確保您的應用程式保持隨時可用。

混合部署

您可以在 AWS Outposts 上使用 EKS 來執行需要對內部部署系統實現特別低延遲的容器化應用程式。AWS Outposts 是一項全受管的服務,可將 AWS 基礎設施、AWS 服務、API 和工具擴展幾乎至任何連網網站。藉助 Outposts 上的 EKS,您可以像在雲端中管理容器一樣輕鬆地管理內部部署容器。

您可以將在 AWS Local ZonesAWS Wavelength 中執行的節點連接到 EKS,為在邊緣的 AWS 受管基礎設施提供更多選擇。

Amazon EKS Distro 封裝在 AWS 上 Amazon EKS 中使用的相同開源 Kubernetes 軟體發行版,可供您在自己的基礎設施內部部署使用。使用您自己的工具或 Amazon EKS Anywhere 來管理 EKS Distro 叢集。

Amazon EKS Anywhere 可讓您輕鬆在內部部署 (包含您專屬的虛擬機器 (VM) 和裸機伺服器),建立和操作 Kubernetes 叢集 (建立方式為 Amazon EKS Distro 中的軟體)。EKS Anywhere 可為您省去建立和支援您專屬工具來管理 Kubernetes 叢集的複雜過程。EKS Anywhere 提供自動化工具,可簡化裸機、VMware vSphere 和雲端虛擬機器等基礎設施上的叢集建立、管理和操作。這還包括具有預設記錄、監控、聯網和儲存組態的雲端虛擬機器。EKS Anywhere 提供在生產中執行 Kubernetes 所需的額外工具和元件,例如叢集安裝和生命週期管理、可觀測性、叢集備份和政策管理。

使用 eksctl 來啟動節點和進行單一命令列管理

使用 eksctl 命令列工具在幾分鐘內啟動並執行 Amazon EKS。只需執行 "eksctl create cluster" 命令即可建立 EKS 叢集。您可以使用 eksctl 來簡化叢集的管理與操作,包含節點和附加元件的管理。

Amazon EKS 支援 Windows 工作節點和 Windows 容器調度。EKS 支援同時執行 Windows 工作節點和 Linux 工作節點,讓您在任一作業系統都能使用相同的叢集管理應用程式。

AWS Graviton2 處理器能為以 ARM 為基礎的 EC2 執行個體賦能,在效能和功能方面的進步十分顯著,同時也節省大量的成本。提高應用程式成本效益是執行容器的主要目標。結合兩者,您就能獲得絕佳的價格效能。例如,工作負載測試顯示基於 Graviton2 處理器的執行個體類型比基於 x86 的 M5、C5 和 R5 系列同等產品的價格效能高出 40%。AWS Graviton2 上的 Amazon EKS 現已在兩種服務皆可使用的區域正式推出。

聯網和安全

Amazon EKS 可讓您透過進階功能、與 AWS 服務整合和技術合作夥伴解決方案,輕鬆為 Kubernetes 叢集提供安全性。例如,IAM 提供精細的存取控制和 Amazon VPC,將您的 Kubernetes 叢集與其他客戶隔離。

Amazon Elastic Kubernetes Service (EKS) 支援 IPv6,讓客戶能夠在 Kubernetes 上擴展容器化應用程式,使其遠遠超出私有 IPv4 地址空間的限制。憑藉 EKS 對 IPv6 的支援,Pod 僅指派一個全域可路由的 IPv6 地址,從而允許您在叢集中擴展應用程式,而不會佔用有限的私有 IPv4 地址空間。此全球可路由的 IPv6 地址可用於直接與您的 Amazon VPC、內部部署網路或公有網際網路中的任何 IPv6 端點進行通訊。此外,EKS 會設定聯網,以便 Pod 仍然可以與叢集外部以 IPv4 為基礎的端點通訊,讓您能夠使用 Kubernetes 獲得 IPv6 的優勢,而無需將整個組織中部署的所有相依服務遷移至 IPv6。

EKS Pod Identity 可簡化客戶在 EKS 叢集上設定應用程式,以存取 AWS 服務所需的工作。EKS 叢集管理員可簡化取得驗證 Kubernetes 應用程式所需 IAM 憑證的工作流程,以存取 S3 儲存貯體、DynamoDB 資料表等 AWS 資源。EKS Pod Identity 可讓您輕鬆地在多個叢集中使用 IAM 角色,並透過支援跨 IAM 角色重複使用政策,來簡化 IAM 政策管理。

AWS Cloud Map 是一項雲端資源探索服務。 藉助 Cloud Map,您可以定義自訂名稱並維護動態變化的應用程式資源的新位置。由於 Web 服務始終能發現其資源的最新位置,因此這能提高應用程式的可用性。Cloud Map 會處理外部 DNS (此為開放原始碼的 Kubernetes 連接器);在 Kubernetes 服務啟動時,此連接器會自動將內部服務位置傳播到 Cloud Map 服務登錄檔,並且在終止時移除這些位置。所有以 Kubernetes 為基礎的服務就可透過 Cloud Map 供探索,為所有容器工作負載提供統一的服務登錄檔。

服務網格透過標準化應用程式中每個微型服務通訊的方式,可讓您輕鬆建置和執行複雜的微型服務應用程式。 AWS App Mesh 可用於設定應用程式,以實現端對端的可見性和高可用性。您可以使用適用於 Kubernetes 的 AWS App Mesh 控制器,來建立連線至網格的新服務、定義流量路由,以及設定加密等安全性功能。此外,App Mesh 還讓您能夠在 AWS Cloud Map 中自動註冊 Kubernetes Pod 以進行服務探索。App Mesh 將指標、日誌和追蹤匯出到所提供之 Envoy 引導組態中指定的端點。App Mesh 提供 API,在啟用 Mesh 的微服務之間設定流量路由、斷路、重試和其他控制。 App Mesh Mutual TLS 可協助在各個服務之間加密所有請求,即使那些請求在您的私有網路中發生亦然。此外,您可以新增身分驗證控制以僅允許您所允許的服務之間進行通訊。

您在 Amazon VPC 中執行的 EKS 叢集可讓您使用自己的 VPC 安全群組和網路存取控制清單 (ACL)。不會與其他客戶共用運算資源為您提供了高度的隔離,以便建置安全可靠的應用程式。EKS 使用 Amazon VPC 容器網路介面 (CNI),允許 Kubernetes pod 從 VPC 接收 IP 位址。 Amazon EKS 與 Project Calico 網路政策引擎合作,為您的 Kubernetes 工作負載提供更細緻的聯網政策。使用 Kubernetes 網路政策 API 控制每個服務的存取。

Amazon EKS 整合 Kubernetes RBAC (Kubernetes 原生角色型存取控制系統) 和 AWS IAM。您可以直接將 RBAC 角色指派給每個 IAM 實體,讓您精密地控制 Kubernetes 控制平面節點的存取許可。

Amazon EKS 允許您將 IAM 許可指派給您的 Kubernetes 服務帳戶。IAM 角色可以控制存取其他的容器化服務、叢集外部的 AWS 資源 (如資料庫和機密) 或在 AWS 外部執行的第三方服務和應用程式。當執行具有多個共址服務的叢集時,這為您提供了更細緻的 pod 級存取控制,並且可讓您簡化叢集可用性和成本最佳化。

Amazon EKS 已取得多種合規計劃認證,適用於受監管和敏感的應用程式。Amazon EKS 符合 SOCPCIISOFedRAMP-ModerateIRAPC5K-ISMSENS 高級OSPARHITRUST CSF 的要求,並且是 HIPAA 合格服務。

Amazon EKS 與容器映像簽名驗證相容,可以使用核准的映像和成品部署容器工作負載。在 Amazon EKS 叢集中部署映像之前,您可以驗證由全受管的簽署解決方案 AWS Signer 簽署的映像 (或任何其他 OCI 成品,例如軟體物料清單)。AWS 支援以開放原始碼為基礎的映像簽署和驗證解決方案,因此您可以輕鬆簽署儲存在登錄檔中的成品,並使用開放原始碼政策即代碼或許可控制器進行驗證。

負載平衡

Amazon EKS 支援使用 Elastic Load Balancing,包括 Application Load Balancer (ALB)、Network Load Balancer (NLB) 和 Classic Load Balancer。

您可以使用 Amazon EKS 叢集,執行標準 Kubernetes 叢集負載平衡或任何 Kubernetes 支援的輸入控制器。

無伺服器運算

EKS 支援 AWS Fargate 使用無伺服器運算來執行 Kubernetes 應用程式。Fargate 消除了佈建和管理伺服器的需求,讓您指定每個應用程式的資源和支付每個應用程式的資源費用,並且透過經設計的應用程式隔離來增強安全性。

成本監控

無論是在叢集級別,還是在個別應用程式級別,Amazon EKS 都可簡化您了解 Kubernetes 用量關聯成本的程序。

Amazon EKS 會自動為每個加入叢集的 EC2 執行個體新增 AWS 成本分配標籤。這讓您不必在整個組織中強制執行自訂標記政策,即可深入了解叢集層級的成本。在 AWS 帳單主控台中啟用 EKS 叢集名稱成本分配標籤後,您可以使用 AWS Cost and Usage Report 來追蹤與 EKS 叢集關聯的 EC2 成本。

Amazon EKS 支援 Kubecost,讓您能夠監控依 Kubernetes 資源 (包括 Pod、節點、命名空間和標籤) 細分的成本。Kubernetes 平台管理員和財務負責人可使用 Kubecost 來視覺化其 Amazon EKS 關聯費用的明細、分配成本,以及向應用程式團隊等組織單位收費。您可以根據其實際 AWS 帳單,為內部團隊和業務部門提供透明且準確的成本資料,並根據其基礎設施環境和叢集內的用量模式來取得定製的成本最佳化建議。

記錄日誌

Amazon EKS 與 AWS CloudTrail 整合,提供 EKS 管理操作的可見性,其中包括稽核歷史記錄。您可以使用 CloudTrail 查看 Amazon EKS API 的 API 呼叫。Amazon EKS 還將 Kubernetes 控制平面日誌提供給 Amazon CloudWatch,以供分析、偵錯和稽核。

一致性認證

Amazon EKS 執行上游 Kubernetes 且已獲得 Kubernetes 一致性授權,因此您可以使用 Kubernetes 社群中所有現有的外掛程式和工具。在 Amazon EKS 上執行的應用程式與任何標準 Kubernetes 環境中執行的應用程式完全相容,無論它們是在內部部署資料中心或公有雲端執行。這代表您可以將任何標準 Kubernetes 應用程式輕鬆遷移至 Amazon EKS,不必重構程式碼。

受管叢集更新

Amazon EKS 可讓您將執行中的叢集輕鬆更新至最新 Kubernetes 版本,不必管理更新程序。Kubernetes 版本更新採取就地進行,不再需要建立新叢集,或將應用程式遷移到新叢集上。

當新的 Kubernetes 版本發佈,並通過驗證可與 Amazon EKS 搭配使用時,我們將支援三個穩定的 Kubernetes 版本,做為任何特定時間更新程序的一部分。您可以透過開發套件、CLI 或 AWS 主控台啟動新版本安裝並檢視執行中的更新狀態。

進階工作負載支援

Amazon EKS 提供優化 Amazon Machine Image (AMI),為啟用 GPU 的 P2 和 P3 Amazon EC2 執行個體提供設定好的 NVIDIA 驅動程式。如此一來,便可輕鬆使用 Amazon EKS 執行需要進階運算功能的工作負載,包括機器學習 (ML)、Kubeflow、深度學習 (DL) 容器、高效能運算 (HPC)、財務分析和影片轉碼。

開放原始碼相容性

Amazon EKS 與 Kubernetes 社群工具完全相容,並支援常用的 Kubernetes 附加元件。這些包含可為叢集建立 DNS 服務的 CoreDNS,還有 Kubernetes 儀表板 Web UI 和 kubectl 這兩個命令列工具,用於存取和管理 Amazon EKS 上的叢集。

如需詳細資訊,請參閱 Kubernetes 社群工具 GitHub 頁面。

EKS Connector

Amazon EKS 可讓您將任何符合標準的 Kubernetes 叢集連線至 AWS,並在 Amazon EKS 主控台中進行視覺化。您可以任何符合要求的 Kubernetes 叢集,包括在內部部署執行的 Amazon EKS Anywhere 叢集、在 Amazon Elastic Compute Cloud (Amazon EC2) 上自我管理的叢集以及在 AWS 之外執行的其他 Kubernetes 叢集。不論叢集在何處執行,您都可以使用 Amazon EKS 主控台來檢視所有連線叢集和其上執行的 Kubernetes 資源。