協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS 架構
Amazon EKS 與 Kubernetes 的一般叢集架構一致。如需詳細資訊,請參閱 Kubernetes 文件中的 Kubernetes 原件
控制平面
Amazon EKS 能確保每個叢集都有自己獨一無二的 Kubernetes 控制平面。此設計會將每個叢集的基礎設施分開,而不會在叢集或 AWS 帳戶之間重疊。設定包含:
- 分散式元件
-
控制平面會在 AWS 區域內的三個 AWS 可用區域中,定位至少兩個 API 伺服器執行個體和三個等化
執行個體。 - 最佳效能
-
Amazon EKS 會主動監控和調整控制平面執行個體,以維持尖峰效能。
- 彈性
-
如果控制平面執行個體淡出,Amazon EKS 會視需要使用不同的可用區域快速取代它。
- 一致的執行時間
-
透過在多個可用區域之中執行叢集的方式來達成可靠的 API 伺服器端點可用性服務水準協議 (SLA)
。
Amazon EKS 會使用 Amazon Virtual Private Cloud (Amazon VPC) 來限制單一叢集內控制平面元件之間的流量。叢集元件無法檢視或接收來自其他叢集或 AWS 帳戶的通訊,除非 Kubernetes 角色型存取控制 (RBAC) 政策授權。
運算
除了控制平面之外,Amazon EKS 叢集還有一組稱為節點的工作者機器。選取適當的 Amazon EKS 叢集節點類型,對於滿足您特定的需求與最佳化資源使用率而言十分關鍵。Amazon EKS 提供下列主節點類型:
- EKS 自動模式
-
EKS Auto Mode 將 AWS 管理延伸到控制平面之外,以包含資料平面,自動化叢集基礎設施管理。它整合了核心 Kubernetes 功能作為內建元件,包括運算自動擴展、聯網、負載平衡、DNS、儲存和 GPU 支援。EKS 自動模式根據工作負載需求動態管理節點,使用具有增強安全功能的不可變 AMI。它在遵守 Pod 中斷預算的同時,自動化更新與升級,並包含原本需要附加元件管理的受管元件。此選項非常適合希望利用day-to-day操作 AWS 專業知識、將營運開銷降至最低,以及專注於應用程式開發而非基礎設施管理的使用者。
- AWS Fargate
-
Fargate 是適用於容器的無伺服器運算引擎,無需管理基礎執行個體。使用 Fargate,您可以指定應用程式的資源需求,並 AWS 自動佈建、擴展和維護基礎設施。此選項非常適合優先考慮簡單易用的使用者,也相當適合希望專注於應用程式開發和部署,而不是管理基礎結構的使用者。
- Karpenter
-
Karpenter
是一款靈活的高效能 Kubernetes 叢集自動擴展程式,可協助提升應用程式的可用性和叢集效率。Karpenter 會根據應用程式負載的變化啟動大小適中的運算資源。此選項可佈建符合工作負載要求的即時運算資源。 - 受管節點群組
-
受管節點群組是自動化和自訂的混合,用於管理 Amazon EKS 叢集中的 Amazon EC2 執行個體集合。 AWS 負責修補、更新和擴展節點等任務,從而減輕操作層面。同時,也支援自訂
kubelet引數,為進階 CPU 和記憶體管理政策開啟了可能性。此外,它們透過服務帳戶的 AWS Identity and Access Management (IAM) 角色來增強安全性,同時減少每個叢集對個別許可的需求。 - 自我管理節點
-
自我管理節點提供對 Amazon EKS 叢集中的 Amazon EC2 執行個體的完全控制權。您負責管理、擴展和維護節點,讓您完全掌握基礎結構。此選項適合需要精細控制和自訂其節點的使用者,也適合已經準備好投入時間來管理和維護其基礎架構的使用者。
- Amazon EKS 混合節點
-
透過 Amazon EKS 混合節點,您可使用內部部署和邊緣基礎結構作為 Amazon EKS 叢集中的節點。Amazon EKS 混合節點整合跨環境 AWS 的 Kubernetes 管理,並為內部部署和邊緣應用程式將 Kubernetes 控制平面管理卸載至 。
EKS 功能
Amazon EKS 提供全受管叢集功能,在叢集中安裝和管理 Kubernetes APIs (使用 Kubernetes 自訂資源定義),同時操作控制器和其他元件 AWS的擁有基礎設施,與您的叢集分開。EKS 提供這些功能的自動化修補、擴展和監控,完全管理其生命週期,以減輕為工作負載協同運作、 AWS 資源管理等操作叢集內服務的負擔。
EKS 提供下列功能類型:
- AWS Kubernetes (ACK) 的控制器
-
AWS Kubernetes (ACK) 的控制器可讓您使用 Kubernetes APIs 管理 AWS 資源,讓您將 S3 儲存貯體、RDS 資料庫、IAM 角色和其他 AWS 資源定義為 Kubernetes 自訂資源。您可以使用相同的工具和工作流程來管理 AWS 資源與 Kubernetes 工作負載,並支援 50 種以上的 AWS 服務,包括 S3、RDS、DynamoDB 和 Lambda。
- Argo CD
-
Argo CD 使用 Git 儲存庫作為事實來源,為您的應用程式工作負載、資源和叢集組態實作 GitOps 型持續部署。 AWS Argo CD 會自動同步您的叢集與 Git 儲存庫,並偵測偏離,持續協調以確保您部署的應用程式和資源符合版本控制中所需的狀態。您可以使用 Argo CD 來管理特定叢集上的應用程式,或從單一 Argo CD 資源跨多個叢集部署和管理應用程式,並在每次遞交變更時從 Git 儲存庫自動部署。
- kro (Kube Resource Orchestrator)
-
kro (Kube Resource Orchestrator) 可讓您建立自訂 Kubernetes APIs,將多個資源組成更高階的抽象概念,讓平台團隊為常見的資源組合定義可重複使用的模式。這可讓平台團隊提供具有適當防護機制的自助式功能,讓開發人員能夠使用簡單的專用 APIs 佈建複雜的基礎設施,同時維護組織標準和最佳實務。