View a markdown version of this page

啟用或停用內建的 NodePool - Amazon EKS

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

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

啟用或停用內建的 NodePool

EKS 自動模式具有兩個內建的 NodePool。您可以使用 AWS 主控台、CLI 或 API 啟用或停用這些 NodePools。

內建的 NodePool 參考

  • system

    • 此 NodePool 具有 CriticalAddonsOnly 污點。CoreDNS 等眾多 EKS 附加元件皆可容忍此污點。藉助此系統節點集區,來分隔叢集關鍵型應用程式。

    • 支援 amd64arm64 架構。

  • general-purpose

    • 針對叢集中的一般用途工作負載,此 NodePool 提供啟動節點相關支援。

    • 只能使用 amd64 架構。

兩個內建的 NodePool:

  • 使用預設的 EKS NodeClass

  • 只能使用隨需 EC2 容量

  • 使用 C、M 及 R EC2 執行個體系列

  • 要求使用第 5 代或更新版本的 EC2 執行個體

注意

EKS 需要啟用至少一個內建的 NodePool,才能佈建「預設」NodeClass。若停用全部內建的 NodePool,需要建立自訂 NodeClass 及設定 NodePool 才能使用。若要了解 NodeClass 的相關資訊,請參閱 建立 Amazon EKS 的節點類別

重要

當您從 移除內建 NodePool 名稱時computeConfig.nodePools,會從叢集中刪除對應的 NodePool Kubernetes 資源。由該 NodePool 管理的任何節點都會耗盡並終止。當您將內建 NodePool 名稱新增回 時computeConfig.nodePools,會在叢集上重新建立對應的 NodePool 資源。此行為在規劃容量變更時很重要,因為 Karpenter 透過 Kubernetes API 探索 NodePool 資源,並停止排程已刪除 NodePools 的節點。

程序

先決條件

  • 在您裝置上安裝和設定的最新版本 AWS 命令列界面 (AWS CLI)。若要檢查您目前的版本,請使用 aws --version。若要安裝最新版本,請參閱《 AWS 命令列界面使用者指南》中的使用 aws 設定安裝快速組態

    • 使用足夠的 IAM 許可登入 CLI,以建立 AWS 資源,包括 IAM 政策、IAM 角色和 EKS 叢集。

使用 CLI AWS 啟用

使用以下命令,啟用兩個內建的 NodePool:

aws eks update-cluster-config \ --name <cluster-name> \ --compute-config '{ "nodeRoleArn": "<node-role-arn>", "nodePools": ["general-purpose", "system"], "enabled": true }' \ --kubernetes-network-config '{ "elasticLoadBalancing":{"enabled": true} }' \ --storage-config '{ "blockStorage":{"enabled": true} }'

您可修改命令,選擇性地啟用 NodePools。

使用 AWS CLI 停用

使用以下命令,停用兩個內建的 NodePool:

aws eks update-cluster-config \ --name <cluster-name> \ --compute-config '{ "enabled": true, "nodePools": [] }' \ --kubernetes-network-config '{ "elasticLoadBalancing":{"enabled": true}}' \ --storage-config '{ "blockStorage":{"enabled": true} }'