受管節點群組 - Amazon EKS

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

受管節點群組

Amazon EKS 受管節點群組會自動化 Amazon EC2 Kubernetes 叢集節點 (Amazon EKS 執行個體) 的佈建和生命週期管理。

使用 Amazon EKS 受管節點群組時,您不需要個別佈建或註冊提供運算容量的 Amazon EC2 執行個體,來執行 Kubernetes 應用程式。您可以使用單一操作來建立、自動更新或終止叢集的節點。節點使用您Amazon EKS帳號AMIs中AWS最佳化的最新 來執行。節點會自動更新和終止並正常耗盡節點,以確保您的應用程式保持可用。

所有受管節點都是配置為 Amazon EC2 Auto Scaling 群組的一部分,由 為您管理Amazon EKS。包括執行個體和 Auto Scaling 群組的所有資源都會在您的 AWS 帳戶中執行。每個節點群組都會使用Amazon EKS最佳化的 Amazon Linux 2 AMI,並可以跨您定義的多個 可用區域執行。

您可以使用 Amazon EKS 主控台eksctl、、AWS CLI、 AWS API 或 基礎設施做為程式碼工具 (包括 ),將受管節點群組新增至新的或現有的叢集AWS CloudFormation。做為受管節點群組一部分推出的節點,會透過 Kubernetes 叢集自動擴展器自動標記以進行自動探索。您可以使用節點群組,將 Kubernetes 標籤套用至節點並隨時更新。

使用 Amazon EKS 受管節點群組不需要額外費用,您只需為佈建的 AWS 資源付費。其中包括 Amazon EC2 執行個體、Amazon EBS 磁碟區、Amazon EKS 叢集時數,以及任何其他 AWS 基礎設施。沒有最低費用,也沒有前期承諾。

若要開始使用新的 Amazon EKS 叢集和受管節點群組,請參閱Amazon EKS – AWS 管理主控台 和 入門 AWS CLI.

若要將受管理的節點群組新增至現有叢集,請參閱建立受管節點群組.

受管節點群組概念

  • Amazon EKS 受管節點群組會為您建立和管理 Amazon EC2 執行個體。

  • 所有受管節點都是由 為您管理的 Amazon EC2 Auto Scaling 群組的一部分提供Amazon EKS。此外,所有資源 (包括 Amazon EC2 執行個體和 Auto Scaling 群組) 皆會在您AWS的帳號中執行。

  • 受管節點群組的 Auto Scaling 群組會跨越您在建立群組時指定的所有子網路。

  • Amazon EKS 會標記受管節點群組資源,以將它們設定為使用 Kubernetes Cluster Autoscaler

    重要

    如果您跨越多個由 Amazon EBS 磁碟區提供的 可用區域 執行狀態應用程式,並且使用 Kubernetes Cluster Autoscaler,您應該設定多個節點群組,每個群組的範圍皆為單一 可用區域。另外,您應該啟用 --balance-similar-node-groups 功能。

  • 根據預設,受管節點群組中的執行個體會針對其叢集的 Kubernetes 版本使用最新版的Amazon EKS最佳化 Amazon Linux 2 AMI。您可以在Amazon EKS最佳化 Amazon Linux 2 AMI 的標準和 GPU 變體之間進行選擇。如果您使用 launch 範本部署,您也可以使用自訂 AMI。如需詳細資訊,請參閱Launch 範本支援.

  • Amazon EKS 遵循 的共同責任模型CVEs和受管節點群組上的安全性修補程式。當受管節點執行Amazon EKS最佳化 AMI 時, Amazon EKS 負責在回報錯誤或問題時建置 AMI 的修補版本。我們可以發布修正。不過,您必須負責將這些修補的 AMI 版本部署到您的受管節點群組。當受管節點執行自訂 AMI 時,您需負責在回報錯誤或問題時建置 AMI 的修補版本,然後部署 AMI。如需詳細資訊,請參閱更新受管節點群組.

  • Amazon EKS 受管節點群組可以在公有和私有子網路中啟動。如果您在 April 22, 2020或之後於公有子網路中推出受管節點群組,則子網路必須MapPublicIpOnLaunch已將 設為 true,執行個體才能成功加入叢集。如果公有子網路是在 或 eksctl之後使用 或 Amazon EKSAWS CloudFormation 提供的範本March 26, 2020建立,則此設定已設為 true。如果子網路是在 March 26, 2020 之前所建立,則需要手動變更設定。如需詳細資訊,請前往修改子網路IPv4的公有定址屬性。

  • 在私有子網路中使用 VPC 端點時,您必須為 com.amazonaws.region.ecr.apicom.amazonaws.region.ecr.dkr 建立端點,並為 Amazon S3. 建立閘道端點。如需詳細資訊,請參閱 Amazon ECR 界面 VPC 端點 (AWS PrivateLink).

  • 受管節點群組無法部署在 AWS Outposts 或AWS WavelengthAWS本地區域中。

  • 您可以在單一叢集內建立多個受管節點群組。例如,您可以針對某些工作負載建立具有標準Amazon EKS最佳化 Amazon Linux 2 AMI 的節點群組,而針對需要 GPU 支援的工作負載,建立另一個節點群組。

  • 如果受管節點群組遇到運作狀態問題,Amazon EKS 會傳回錯誤訊息,以協助您診斷問題。如需詳細資訊,請參閱受管節點群組錯誤.

  • Amazon EKS 會將 Kubernetes 標籤新增至受管節點群組執行個體。Amazon EKS 提供的標籤前面會加上 eks.amazonaws.com

  • Amazon EKS在終止或更新期間, 會使用 Kubernetes API 自動耗盡節點。更新會遵守您為 Pod 設定的 Pod 中斷預算。

  • 使用Amazon EKS受管節點群組無需額外成本。您只需支付所配置AWS資源的費用。

  • 如果您想要為節點加密Amazon EBS磁碟區,您可以使用 launch 範本部署節點。若要使用已加密Amazon EBS磁碟區部署受管節點而不使用 launch 範本,您預設必須加密在帳號中建立的所有新Amazon EBS磁碟區。如需詳細資訊,請前往 中的預設 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default Linux 執行個體的 Amazon EC2 使用者指南Encryption。

受管節點群組容量類型

建立受管節點群組時,您可以選擇 On-Demand (隨需) 或 Spot capacity (Spot 容量) 類型。 會Amazon EKS部署受管節點群組,其中具有的 Amazon EC2 Auto Scaling 群組僅包含隨需執行個體或 Amazon EC2 Spot 執行個體。您可以將適用於容錯應用程式的 Pod 排程為 Spot 受管節點群組,以及為單一 Kubernetes 叢集中的隨需節點群組安排容錯應用程式。根據預設,受管節點群組會部署隨需Amazon EC2執行個體。

隨需

使用隨需執行個體,只需按秒支付運算容量的費用,無需簽訂長期合約。

運作方式

根據預設,如果您未指定 Capacity Type (容量類型),受管節點群組會以隨需執行個體配置。受管節點群組會代表您設定 Amazon EC2 Auto Scaling 群組,並套用下列設定:

  • 設定隨需容量的配置策略已設為 prioritized。 受管節點群組會使用 API 中傳遞之執行個體類型的順序,判斷在滿足隨需容量時,最先使用哪個執行個體類型。例如,您可以依下列順序指定三種執行個體類型c5.large:、 和 c4.large c3.large。 當您的隨需執行個體推出時,受管節點群組會從 c5.large開始,先執行 ,再執行 c4.large,再執行 以滿足隨需容量c3.large。 如需詳細資訊,請查看 中的 Amazon EC2 Auto Scaling 群組Amazon EC2 Auto Scaling 使用者指南。

  • Amazon EKS 會將下列 Kubernetes 標籤新增至受管節點群組中所有指定容量類型的節點eks.amazonaws.com/capacityType: ON_DEMAND:。 您可以使用此標籤,在隨需節點上排程狀態不良或容錯的應用程式。

Spot

Amazon EC2 Spot 執行個體是備用Amazon EC2容量,提供隨需價格的大幅折扣。 Amazon EC2當 EC2 需要取回容量時,使用兩分鐘的中斷通知,即可中斷 Spot 執行個體。如需詳細資訊,請查看 中的 Spot 執行個體Linux 執行個體的 Amazon EC2 使用者指南。您可以使用 Amazon EC2 Spot 執行個體設定受管節點群組,為Amazon EKS叢集中執行的運算節點最佳化成本。

運作方式

若要在受管節點群組中使用 Spot 執行個體,您需要將容量類型設定為 來建立受管節點群組spot。 受管節點群組會代表您設定 Amazon EC2 Auto Scaling 群組,並套用下列 Spot 最佳實務:

  • 設定 Spot 容量配置策略為 capacity-optimized ,以確保您的 Spot 節點是在最佳的 Spot 容量集區中配置。若要增加用於配置容量的來源 Spot 容量集區數量,我們建議您設定受管節點群組使用多個執行個體類型。

  • Amazon EC2 Spot Capacity (Spot 容量) 可以進行重新平衡,讓 Amazon EKS 可以從容地耗盡和重新平衡 Spot 節點,以在 Spot 節點處於更高的中斷風險時盡可能減少應用程式中斷。如需詳細資訊,請前往 中的 Amazon EC2 Auto Scaling 容量重新平衡Amazon EC2 Auto Scaling 使用者指南。

    • 當 Spot 節點收到重新平衡建議時, Amazon EKS 會自動嘗試推出新的替換 Spot 節點,等待它成功加入叢集。

    • 當替代的 Spot 節點受到引導,並在 Kubernetes 的 Ready 狀態下, 會Amazon EKS連接並耗盡收到重新平衡建議的 Spot 節點。中斷 Spot 節點可確保服務控制器不會將任何新請求傳送至此 Spot 節點。也會將其從運作良好的 Spot 節點清單中移除。耗盡 Spot 節點可確保執行中的裝置會順利移出。

    • 如果替換 Spot 節點處於 Ready 狀態之前,競價型 (Spot) 兩分鐘的中斷通知送達, Amazon EKS 會開始耗盡接收重新平衡建議的 Spot 節點。

  • Amazon EKS 會將下列 Kubernetes 標籤新增至受管節點群組中所有指定容量類型的節點eks.amazonaws.com/capacityType: SPOT:。 您可以使用此標籤來排程 Spot 節點上的容錯應用程式。

選擇容量類型的考量事項

在判斷是否部署具有隨需或 Spot 容量的節點群組時,您應該考慮下列條件:

  • Spot 執行個體非常適合無狀態、容錯且靈活的應用程式,例如批次和機器學習訓練工作負載、大數據 (ETLs例如 Apache Spark)、佇列處理應用程式,以及無狀態 API 端點。因為 Spot 是備用Amazon EC2容量,可能會隨著時間而改變,我們建議您針對容忍使用所需容量的中斷工作負載使用 Spot 容量。

  • 我們建議您對容錯的應用程式使用隨需,包括叢集管理工具 (例如監控和操作工具)、需要 StatefulSets的部署,以及狀態應用程式 (例如資料庫)。

  • 若要在使用 Spot 執行個體時最大化應用程式的可用性,建議您設定 Spot 受管節點群組使用多個執行個體類型。我們建議在使用多個執行個體類型時套用以下規則:

    • 在受管節點群組中,若您使用 Cluster Autoscaler,建議使用具有相同 vCPU 和記憶體資源的一組彈性執行個體類型,以確保叢集中的節點如預期擴展。例如,如果您需要四個vCPUs和八個GiB記憶體,建議您使用 c3.xlarge c4.xlarge、、、、、c5.xlargec5d.xlargec5a.xlargec5n 或其他類似的執行個體類型。

    • 為了提高應用程式的可用性,我們建議部署多個 Spot 受管節點群組,每個群組都使用一組彈性的執行個體類型,這些執行個體類型具有相同的 vCPU 和記憶體資源。例如,如果您需要 4 vCPUs 和 8 GiB 記憶體,我們建議您建立一個具有 c3.xlarge、、、、、 c4.xlarge c5.xlarge c5d.xlarge c5a.xlarge c5n.xlarge或其他類似執行個體類型的受管節點群組,以及第二個具 m3.xlarge m4.xlarge、、m5.xlargem5d.xlargem5a.xlargem5n.xlarge 或其他類似執行個體類型的受管節點群組。

    • 當您使用使用自訂推出範本的 Spot 容量類型部署節點群組時,請使用 API 傳遞多個執行個體類型,而不是透過 launch 範本傳遞單一執行個體類型。如需使用 launch 範本部署節點群組的詳細資訊,請前往 Launch 範本支援