EKS 自動模式 - Amazon EKS

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

EKS 自動模式

提示

有興趣獲得 Amazon EKS Auto Mode 的實作體驗嗎? 在 AWS Connected Community 上註冊,參加由 AWS 專家主持的即將推出的虛擬 Kubernetes 研討會。

Amazon EKS Auto Mode 代表 Kubernetes 基礎設施管理的重大發展,結合安全且可擴展的叢集基礎設施與 AWS 管理的整合式 Kubernetes 功能。此服務提供全受管的工作者節點操作,無需客戶設定受管節點群組或 AutoScaling 群組。

關鍵的架構差異在於 EKS Auto Mode 使用 Karpenter 型系統,自動佈建 EC2 執行個體以回應 Pod 請求 。這些執行個體會在 Bottlerocket AMIs 上執行,其中包含預先安裝的附加元件,例如 EBS CSI 驅動程式,讓基礎設施真正由 AWS 管理。與傳統擴展方法相反:

  • 傳統 Cluster Autoscaler (CAS) 需要手動節點群組管理,而且每個節點群組只能建立具有單一執行個體類型的節點

  • 自我管理的 Karpenter 透過使用 EC2 機群 API 提供更多彈性,並且可以佈建不同的執行個體類型,但需要客戶管理

  • EKS Auto Mode 會透過受管 NodePools 和 NodeClasses 自動處理所有擴展操作

新系統推出數個操作改進:

  • 無需手動節點群組組態的自動 Pod 驅動擴展

  • 內建的受管負載平衡器控制器,可根據輸入資源自動建立 ALB/NLB

  • 具有預先設定 Pod 身分的整合式安全功能

  • 自動取代的節點執行時間上限為 21 天

從成本角度來看,EKS Auto Mode 會維持標準 EC2 定價,同時僅針對 Auto Mode 受管節點新增管理費。重要的是,客戶仍然可以將 Auto Mode 受管節點與相同叢集 中的自我管理節點混合。

雖然 AWS 處理大多數操作層面,但客戶仍需負責叢集版本管理,並可執行可觸發工作者節點滾動更新的受控升級。

使用自動模式的原因

自動模式是針對想要 Kubernetes 和 EKS 優勢,但需要將 Kubernetes 的操作負擔降至最低的使用者,例如自動擴展、負載平衡和儲存等關鍵平台組件的升級和安裝/維護。自動模式進一步將 EKS 與 Kubernetes 維護一起進行的無差異繁重工作降至最低

常見問答集

EKS Auto Mode 和開放原始碼 Karpenter 之間的差異是什麼?

EKS Auto Mode 是一套大型功能,可讓執行生產級 Kubernetes 變得簡單。其中一個功能是 Karpenter 的自動擴展優勢,全受管。從操作的角度來看,唯一的差異在於 EKS Auto Mode,您不需要管理 Karpenter Pod 本身的部署、擴展和升級。受管 NodeClasses 和 NodePools 等所有其他操作的運作方式與開放原始碼 Karpenter 的運作方式相同。

我可以與 Auto Mode 受管節點一起執行受管節點群組嗎?

是,您可以透過受管節點群組與 Auto Mode 提供的自動擴展節點一起執行靜態節點

我可以將叢集從標準 EKS 遷移到 EKS Auto Mode 嗎?

是,可在官方 AWS 文件中找到在現有叢集上啟用 EKS Auto Mode 的說明

注意事項:1. 啟用自動模式後,您會想要解除安裝已安裝且現在由自動模式管理的任何元件,例如 Karpenter 或 AWS Load Balancer 控制器 2。您需要確保已安裝的附加元件是up-to-date。請參閱 文件。

如何在 EKS Auto 模式中設定 NodePools?

新的叢集將預先設定兩個 NodePools

一般用途

一般用途 NodePool

此 NodePool 會指示 Karpenter 啟動具有下列特性的節點:

  1. 「隨需」的容量類型

  2. C、M 或 R 的執行個體類型

  3. 執行個體產生 4

  4. AMD 架構

  5. Linux 作業系統

它還透過宣告只有 10% 的所有節點在任何指定時間都可能處於中斷狀態,並且只有在節點是空的或未充分利用時,才能進行合併,來定義縮減邏輯是什麼。

system

系統 NodePool

此 NodePool 類似於「一般用途」,但下列差異除外:

  1. 它允許具有 ARM 架構和 AMD 架構的節點

  2. 除非對「CriticalAddonsOnly」有公差,否則它會使用 NoSchedule 來污點這些節點。這是供 EKS 附加元件內部使用

自訂

您可以根據您的需求建立自己的自訂 NodePools。若要進一步了解 NodePools,請參閱 Karpenter 文件

啟動新節點時,我可以自訂自動模式使用的 AMI 嗎?

否,目前唯一支援的 AMIs 適用於 Amazon 提供的 Bottlerocket

如何在 Kubernetes 主機上安裝自訂工具或代理程式?

由於不支援 AMI 自訂,如果您需要主機層級軟體進行安全性掃描等操作,您應該將工作負載部署為 Kubernetes DaemonSet

當我佈建新的 EKS Auto Mode 叢集時,我的叢集資料平面中執行哪些元件?

如果您使用 eksctl 或 AWS 主控台建立叢集,EKS Auto Mode 叢集中執行的唯一 Pod 是 Kubernetes Metrics Server Pod。EKS Auto Mode 的其他元件,例如 Karpenter、AWS Load Balancer 控制器和 EBS CSI 驅動程式,都在叢集外執行和管理。

正在執行哪些受管元件以支援我的新 EKS Auto Mode 叢集?

EKS Auto Mode 完全自動化部署生產級 Kubernetes 所需的大部分資料平面。其中包含:

  • Karpenter,用於自動擴展叢集的運算

  • AWS Load Balancer 控制器可讓您透過自動化 Elastic Load Balancer 整合輕鬆公開 Kubernetes 服務

  • EBS CSI

  • VPC CNI

  • EKS Pod 身分識別代理程式

如何對用於在叢集中作為 Pod 執行的自動模式元件進行故障診斷?

使用 EKS Auto Mode 時,AWS Load Balancer 控制器和 Karpenter 等許多元件都會在叢集之外為您管理,因此您無法從自我管理時所使用的日誌中看到相同的可見性。如果您遇到需要對一段自動模式功能的功能進行故障診斷的情況,請建立 AWS Support 票證。