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) 支援。

電腦資料的照片

全受管的叢集

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

只需按一下,Amazon EKS 自動模式即可完全自動化 Kubernetes 叢集基礎設施管理,以用於 AWS 上的運算、儲存和聯網。它透過自動佈建基礎設施、選取最佳運算執行個體、動態擴展資源、持續最佳化成本、修補作業系統、管理附加元件以及與 AWS 安全服務整合來簡化 Kubernetes 管理。

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

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

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

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

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

運算

使用 Amazon EKS,您可以完全存取 EC2 執行個體類型,從而提供靈活性並讓您自動為工作負載佈建最佳運算。您可以透過 Savings Plans 或 Spot 隨需購買運算。

AWS Nitro System 結合了專用的硬體與輕量 Hypervisor,可助力加速創新和提升安全性。

AWS Graviton 是一系列精心設計的處理器,可針對執行於 Amazon EC2 的雲端工作負載提供最佳價格效能。

利用 AWS 雲端中未使用的 EC2 容量,相較於隨需價格,可提供最高 90% 的折扣。將 Spot 執行個體用於各種無狀態、容錯或彈性應用程式,例如大數據、容器化工作負載、CI/CD、Web 伺服器、高效能運算 (HPC),以及測試和開發工作負載。

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

聯網、安全與存取

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

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

Amazon EKS 支援使用 Elastic Load Balancing,包括 Application Load Balancer (ALB)、Network Load Balancer (NLB) 和 Classic Load Balancer。您可以使用 Amazon EKS 叢集,執行標準 Kubernetes 叢集負載平衡或任何 Kubernetes 支援的輸入控制器。

Amazon VPC Lattice 是一項全受管應用程式聯網服務,直接內建於 AWS 聯網基礎設施中,您可以用來連線、保護和監控跨多個帳戶和虛擬私有雲端 (VPC) 的服務。藉助 Amazon EKS,您可以透過使用 AWS Gateway API 控制器來利用 Amazon VPC Lattice,這是 Kubernetes Gateway API 的實作。使用 Amazon VPC Lattice,您可以簡單一致的方式使用標準 Kubernetes 語義設定跨叢集連線。

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

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

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

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

版本和更新

Amazon EKS 可讓您將執行中的叢集輕鬆更新至最新 Kubernetes 版本,不必管理更新程序。Kubernetes 版本更新採取就地進行,不再需要建立新叢集,或將應用程式遷移到新叢集上。當新的 Kubernetes 版本發佈,並通過驗證可與 Amazon EKS 搭配使用時,我們將支援三個穩定的 Kubernetes 版本,做為任何特定時間更新程序的一部分。您可以透過開發套件、CLI 或 AWS 主控台啟動新版本安裝並檢視執行中的更新狀態。

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

附加元件

Amazon EKS 提供一組精選的 Kubernetes 軟體,也稱為附加元件,可為 Kubernetes 叢集提供關鍵營運功能,並與各種 AWS 服務整合。這些附加元件包括可啟用叢集 DNS 功能之類的 CoreDNS 操作軟體,以及可在 Kubernetes 叢集中啟用服務網路功能的 kube-proxy。此外,這些附加元件還包括 Amazon VPC CNI 之類的操作軟體,可透過與 Amazon VPC 整合來啟用 Pod 聯網功能,以及可與 Amazon Elastic Block Storage (Amazon EBS)、Amazon Elastic File System (Amazon EFS) 和 Amazon Simple Storage Service (Amazon S3) 整合的 CSI 驅動程式。此外,附加元件包括可觀測性和安全代理程式,可與不同 AWS 服務整合。

Amazon EKS 可透過 EKS API、AWS 管理主控台、AWS Command Line Interface (AWS CLI)、eksctl、AWS CloudFormation 和第三方基礎設施即程式碼 (IaC) 工具來安裝、管理和設定附加元件。AWS 的所有 Amazon EKS 附加元件都包含最新的安全修補程式和錯誤修正,並且經過 AWS 驗證,可與 Amazon EKS 搭配使用。這可確保 Amazon EKS 叢集一致的安全性和穩定性,從而減少安裝、設定和更新附加元件所需的工作量。進一步了解 AWS 的附加元件,請參閱 EKS 使用者指南。

Amazon EKS 提供統一的管理體驗,可在 EKS 叢集上尋找、選取、安裝、管理和設定來自獨立軟體開發廠商的第三方 Kubernetes 操作軟體 (附加元件)。這可透過使用 EKS API、AWS 管理主控台、AWS CLI、eksctl、AWS CloudFormation 和第三方 IaC 工具來啟用,而這些工具也可用來管理 AWS 的 EKS 附加元件。這有助於簡化管理體驗,以查找、訂閱和部署第三方 Kubernetes 附加元件,這些附加元件提供了操作功能,包括可觀測性、服務網格、GitOps 以及 EKS 叢集上的儲存。第三方附加元件來自 AWS Marketplace,其會持續掃描軟體是否存在常見漏洞和入侵程式 (CVE)。僅顯示與不同 Kubernetes 版本相容的附加元件,從而減少驗證附加元件相容性的開銷。透過 EKS 選取這些附加元件可提供與 AWS Marketplace 中的任何其他產品相同的好處,包括合併帳單、靈活的付款選項,以及較低的長期合約定價。進一步了解 AWS 的附加元件,請參閱 EKS 使用者指南

可觀察性

Amazon Managed Service for Prometheus 為開放原始碼 Prometheus 提供可擴展、安全的 AWS 受管服務。您可以使用 Prometheus 查詢語言 (PromQL) 來監控容器化工作負載的效能,而無需管理用於擷取、儲存和查詢操作指標的基礎設施。您可以使用適用於 OpenTelemetry 的 AWS Distro 或 Prometheus 伺服器作為收集代理程式,從 Amazon EKS 收集 Prometheus 指標。Amazon Managed Service for Prometheus 提供了全受管的無代理抓取器,可自動從 Amazon EKS 叢集中抓取指標。抓取會自動從 Prometheus 相容的端點中擷取指標。

Amazon CloudWatch Container Insights 是一項全受管的監控和可觀測性服務,可為 DevOps 工程師、開發人員、網站可靠性工程師 (SRE) 和 IT 經理提供現成的可見性,了解其容器化應用程式和微型服務環境。使用 Amazon CloudWatch Container Insights,您可以輕鬆監控、隔離和診斷 EKS 叢集中的問題。它以指標和日誌的形式提供基礎設施遙測,例如叢集、服務和 Pod 的 CPU、記憶體、網路和磁碟用量,而這些指標和日誌可以在 CloudWatch 主控台中輕鬆視覺化。

您可以使用 Amazon CloudWatch 可觀測性 EKS 附加元件,為 Amazon EKS 叢集獲得增強的可觀測性。Amazon EKS 附加元件讓您能夠增強對 Amazon EKS 叢集的可觀測性。此附加元件安裝 CloudWatch 代理程式和 Fluent Bit,可為您提供基礎設施和容器日誌洞察。CloudWatch 代理程式會將重要基礎設施指標從叢集節點傳送至 CloudWatch。這樣一來,您亦可監控 CPU、網路、磁碟和其他低階節點指標。Fluent Bit 將容器日誌從叢集運送到 CloudWatch Logs。這樣,您即可深入了解容器中的應用程式和系統日誌。

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

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

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

AWS 整合

AWS Controllers for Kubernetes (ACK) 是一種可讓您直接透過 Kubernetes 管理 AWS 服務的工具。ACK 使您能夠輕鬆建置使用 AWS 服務的可擴展、可用性極高的 Kubernetes 應用程式。ACK 為 AWS 提供一致的 Kubernetes 介面,而無論 AWS 服務 API 為何。

Amazon ECR 是全受管容器登錄檔,提供高效能託管,因此您可以隨時隨地可靠地部署應用程式映像和成品。您可以從 Amazon ECR 擷取影像,以在 Amazon EKS 上執行 Kubernetes 工作負載。

GuardDuty EKS 保護可讓 Amazon GuardDuty 透過分析 Kubernetes 稽核日誌來偵測您 EKS 叢集的可疑活動和潛在損害。Amazon GuardDuty EKS 運行監控從 30 多個安全調查結果中偵測執行時期威脅,以保護您的 EKS 叢集。EKS 執行時期監控使用全受管 EKS 附加元件,可增加個別容器執行時期活動的可見性,例如檔案存取、程序執行和網路連線。GuardDuty 現在可識別 EKS 叢集內可能遭到入侵的特定容器,並偵測將權限從個別容器提升至基礎 Amazon EC2 主機和更廣泛的 AWS 環境的嘗試。GuardDuty EKS 執行時期監控調查結果提供中繼資料內容,可識別潛在威脅並在其升級之前予以控制。

混合部署

您可以使用相同的 Amazon EKS 在 AWS 區域、AWS Local Zones、AWS Wavelength Zone 中的 AWS 託管的基礎設施上執行節點,或使用 AWS Outposts 和 Amazon EKS 混合節點在您自己的內部部署環境中執行節點。AWS Outposts 是 AWS 受管基礎設施,您可以在資料中心或主機代管設施中執行,而 Amazon EKS 混合節點則在您於內部部署或邊緣環境中管理的虛擬機器或裸機基礎設施上執行。如果您需要在隔離或氣隙隔離環境中執行,您可以使用 Amazon EKS Anywhere,這是受 AWS 支援的 Kubernetes 管理軟體,可在您管理的基礎設施上執行。藉助 Amazon EKS Anywhere,您負責 Amazon EKS Anywhere 叢集的叢集生命週期操作和維護。Amazon EKS Connector 可用於在 Amazon EKS 主控台中檢視任何 Kubernetes 叢集及其資源。Amazon EKS Distro 是基礎 Kubernetes 元件的 AWS 分銷,可為所有 Amazon EKS 產品提供支援。

Amazon EKS 混合節點整合了跨雲端、內部部署和邊緣環境的 Kubernetes 管理,讓您能夠靈活地在任何地方執行工作負載,同時提高可用性、可擴展性和效率。它可在各個環境中標準化 Kubernetes 操作和工具,並與 AWS 服務原生整合,以進行集中式監控、日誌記錄和身分管理。EKS 混合節點可將 Kubernetes 控制平面的可用性和可擴展性卸載到 AWS,從而減少在內部部署和邊緣管理 Kubernetes 所需的時間和精力。EKS 混合節點可在您現有的基礎設施上執行,以加速現代化,且無需額外的硬體投資。

AWS OutpostsAWS Local ZonesAWS Wavelength Zones 可用於執行靠近最終使用者的應用程式,以滿足低延遲和資料落地需求。您可以使用 Amazon EKS 在這些 AWS 基礎設施類型上執行節點,也可以使用用於在 AWS 區域中執行應用程式的相同 Amazon EKS 叢集、功能和工具來執行節點。

Amazon EKS Anywhere 透過在內部部署和邊緣環境中自動化基礎設施設定和 Kubernetes 叢集生命週期操作等無差異的繁重工作,簡化了 Kubernetes 叢集管理。Amazon EKS Anywhere 建置在 Kubernetes 子專案叢集 API (CAPI) 上,並支援多種基礎設施,包括 VMware vSphere、裸機、Nutanix、Apache CloudStack 和 AWS Snow Family。Amazon EKS Anywhere 可以在氣隙隔離環境中執行,並提供與區域 AWS 服務的可選整合,以實現可觀測性和身分管理。若要獲得 Amazon EKS Anywhere 的支援,並存取 AWS 發布的 Kubernetes 附加元件,您可以購買 Amazon EKS Anywhere 企業版訂閱

您可以使用 Amazon EKS Connector 來註冊任何符合標準的 Kubernetes 叢集,並將其連線至 AWS,並在 Amazon EKS 主控台中進行檢視。連線叢集之後,您可以在 Amazon EKS 主控台中查看該叢集的狀態、組態和工作負載。您可以使用此功能在 Amazon EKS 主控台中檢視連線的叢集,但 Amazon EKS Connector 不會透過 Amazon EKS 主控台為連線的叢集啟用管理或變化操作。

Amazon EKS Distro 是基礎 Kubernetes 元件的 AWS 分銷,可為所有 Amazon EKS 產品提供支援。它包括功能齊全的 Kubernetes 叢集所需的核心元件,例如 Kubernetes 控制平面元件 (etcd、kube-apiserver、kube-scheduler 和 kube-controller-manager) 和網路元件 (CoreDNS、kube-proxy 和 CNI 外掛程式)。利用 Amazon EKS Distro,您即可透過您選擇的工具來自我管理 Kubernetes 叢集。