協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
EKS 功能考量事項
本主題涵蓋使用 EKS 功能的重要考量,包括存取控制設計、EKS 功能與自我管理解決方案之間的選擇、多叢集部署的架構模式,以及操作最佳實務。
功能 IAM 角色和 Kubernetes RBAC
每個 EKS 功能資源都有一個已設定的功能 IAM 角色。功能角色用於授予 AWS 服務許可,讓 EKS 功能代表您採取行動。例如,若要使用 ACK 的 EKS 功能來管理 Amazon S3 儲存貯體,您將授予 功能的 S3 儲存貯體管理許可,使其能夠建立和管理儲存貯體。
設定功能後,即可使用叢集中的 Kubernetes 自訂資源建立和管理 AWS 中的 S3 資源。Kubernetes RBAC 是叢集內存取控制機制,用於判斷哪些使用者和群組可以建立和管理這些自訂資源。例如,授予特定 Kubernetes RBAC 使用者和群組在您選擇的命名空間中建立和管理Bucket資源的許可。
如此一來,IAM 和 Kubernetes RBAC 是end-to-end存取控制系統的一半,可管理與 EKS 功能和資源相關的許可。請務必為您的使用案例設計正確的 IAM 許可和 RBAC 存取政策組合。
如需功能 IAM 角色和 Kubernetes 許可的詳細資訊,請參閱 EKS 功能的安全考量。
多叢集架構模式
在多個叢集之間部署功能時,請考慮這些常見的架構模式:
使用集中式管理進行對話
在集中受管叢集中執行這三種功能,以協調工作負載和管理跨多個工作負載叢集的雲端基礎設施。
-
管理叢集上的 Argo CD 會將應用程式部署到不同區域或帳戶中的工作負載叢集
-
管理叢集上的 ACK 會為所有叢集佈建 AWS 資源 (RDS、S3、IAM)
-
管理叢集上的 kro 會建立適用於所有叢集的可攜式平台抽象
此模式會集中工作負載和雲端基礎設施管理,並可簡化管理許多叢集的組織操作。
分散式 GitOps
工作負載和雲端基礎設施由執行工作負載的相同叢集上的功能管理。
-
Argo CD 會管理本機叢集上的應用程式資源。
-
ACK 資源用於叢集和工作負載需求。
-
安裝 kro 平台抽象並協調本機資源。
此模式會分散操作,讓團隊在一或多個叢集中管理自己的專用平台服務。
使用混合 ACK 部署的中樞和發言
結合集中式和分散式模型,以及根據範圍和擁有權的集中式應用程式部署和資源管理。
-
Hub 叢集:
-
Argo CD 會管理本機叢集和所有遠端工作負載叢集的 GitOps 部署
-
ACK 用於管理範圍資源的管理叢集 (生產資料庫、IAM 角色、VPCs)
-
kro 用於管理叢集上,用於可重複使用的平台抽象化
-
-
呼叫叢集:
-
工作負載是透過集中式中樞叢集上的 Argo CD 進行管理
-
ACK 在本機用於工作負載範圍的資源 (S3 儲存貯體、ElastiCache 執行個體、SQS 佇列)
-
kro 在本機用於資源組成和建置區塊模式
-
此模式可區分考量,平台團隊會集中管理管理叢集上的關鍵基礎設施,選擇性地包括工作負載叢集,而應用程式團隊則會指定和管理雲端資源與工作負載。
選擇模式
選取架構時,請考量下列因素:
-
組織結構:集中化平台團隊偏好中樞模式;分散式團隊可能偏好每個叢集的功能
-
資源範圍:管理員範圍的資源 (資料庫、IAM) 通常受益於集中管理;工作負載資源 (儲存貯體、佇列) 可在本機管理
-
自助式服務:集中式平台團隊可以撰寫和分發規範性自訂資源,以針對常見的工作負載需求啟用雲端資源的安全自助式服務
-
叢集機群管理:集中式管理叢集為 EKS 叢集機群管理提供客戶擁有的控制平面,以及其他管理員範圍的資源
-
合規要求:某些組織需要集中控制以進行稽核和控管
-
操作複雜性:功能執行個體較少可簡化操作,但可能會產生瓶頸
注意
您可以從一個模式開始,並在您的平台成熟時發展為另一個模式。功能是獨立的,您可以根據您的需求,在叢集之間以不同的方式部署這些功能。
比較 EKS 功能與自我管理解決方案
EKS 功能為在 EKS 中執行的熱門 Kubernetes 工具和控制器提供全受管體驗。這與您在叢集中安裝和操作的自我管理解決方案不同。
主要差異
部署和管理
AWS 完全管理 EKS 功能,無需安裝、設定或維護元件軟體。 會自動在叢集中 AWS 安裝和管理所有必要的 Kubernetes 自訂資源定義 (CRDs)。
透過自我管理解決方案,您可以使用 Helm Chart、kubectl 或其他運算子來安裝和設定叢集軟體。您可以完全控制自我管理解決方案的軟體生命週期和執行期組態,在解決方案的任何層提供自訂。
操作和維護
AWS 透過自動更新和安全性修補程式,管理 EKS 功能的修補和其他軟體生命週期操作。EKS 功能與簡化組態 AWS 的功能整合,提供內建的高可用性和容錯能力,並消除控制器工作負載的叢集內故障診斷。
自我管理解決方案需要您監控元件運作狀態和日誌、套用安全修補程式和版本更新、使用多個複本和 Pod 中斷預算設定高可用性、疑難排解和修復控制器工作負載問題,以及管理版本和版本。您可以完全控制部署,但這通常需要針對私有叢集存取和其他整合的自訂解決方案,這些解決方案必須符合組織標準和安全合規要求。
資源耗用
EKS 功能會在 EKS 和叢集之外執行,釋放節點資源和叢集資源。功能不會使用叢集工作負載資源、不會在工作者節點上使用 CPU 或記憶體、自動擴展,以及對叢集容量規劃的影響降到最低。
自我管理的解決方案會在工作者節點上執行控制器和其他元件,並直接使用工作者節點資源、叢集 IPs 和其他叢集資源。管理叢集服務需要工作負載的容量規劃,而且需要資源請求和限制的規劃和組態,才能管理擴展和高可用性需求。
功能支援
EKS 功能是全受管服務功能,與自我管理解決方案相比,依其本質進行評價。雖然 功能將支援大多數功能和使用案例,但與自我管理解決方案相比,涵蓋範圍會有所不同。
透過自我管理解決方案,您可以完全控制軟體的組態、選用功能和其他功能層面。您可以選擇執行自己的自訂映像、自訂組態的所有層面,以及完全控制自我管理的解決方案功能。
成本考量
每個 EKS 功能資源都有相關的每小時成本,因功能類型而異。由 功能管理的叢集資源也具有相關聯的每小時成本和自己的定價。如需詳細資訊,請參閱 Amazon EKS 定價
自我管理解決方案沒有與 AWS 費用相關的直接成本,但您需要支付控制器和相關工作負載使用的叢集運算資源。除了節點和叢集資源耗用之外,使用自我管理解決方案的總體擁有成本包括營運開銷,以及維護、故障診斷和支援的費用。
在 EKS 功能和自我管理解決方案之間進行選擇
EKS 功能 當您想要減少營運開銷並專注於軟體和系統中的差異化價值,而不是叢集平台操作的基本需求時,請考慮此選項。當您想要將安全修補程式和軟體生命週期管理的操作負擔降至最低、釋放應用程式工作負載的節點和叢集資源、簡化組態和安全管理,以及從 AWS 支援涵蓋範圍中獲益時,請使用 EKS 功能。EKS 功能適用於大多數生產使用案例,是新部署的建議方法。
自我管理解決方案 當您需要特定的 Kubernetes 資源 API 版本、自訂控制器建置、根據自我管理部署建置現有的自動化和工具,或需要控制器執行期組態的深度自訂時,請考慮此選項。自我管理解決方案可為特殊使用案例提供彈性,而且您可以完全控制部署和執行期組態。
注意
EKS 功能可以與自我管理解決方案共存於叢集中,並且可以實現逐步遷移。
功能特定比較
如需功能特定功能、上游差異和遷移路徑等詳細比較,請參閱: