協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
想要為此使用者指南做出貢獻? 選擇 GitHub 上的編輯此頁面連結,該連結位於每個頁面的右窗格中。您的貢獻將幫助我們的使用者指南更適合每個人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 EKS Auto 模式建立節點集區
Amazon EKS 節點集區提供彈性的方式來管理 Kubernetes 叢集中的運算資源。本主題示範如何使用 Karpenter 建立和設定節點集區,這是有助於最佳化叢集擴展和資源使用率的節點佈建工具。透過 Karpenter 的 NodePool 資源,您可以定義運算資源的特定需求,包括執行個體類型、可用區域、架構和容量類型。
您無法修改內建 system
和 general-purpose
節點集區。您只能啟用或停用它們。如需詳細資訊,請參閱啟用或停用內建 NodePools。
NodePool 規格允許透過各種支援的標籤和需求,精細控制 EKS 叢集的運算資源。這些選項包括指定 EC2 執行個體類別、CPU 組態、可用區域、架構 (ARM64/AMD64) 和容量類型 (點/隨需)。您也可以設定 CPU 和記憶體用量的資源限制,確保您的叢集保持在所需的操作範圍內。
EKS Auto Mode 利用知名的 Kubernetes 標籤,提供一致且標準化的節點特性識別方式。這些標籤,例如topology.kubernetes.io/zone
可用性區域和 CPU kubernetes.io/arch
架構,請遵循已建立的 Kubernetes 慣例。此外,EKS 特定的標籤 (以 做為前綴eks.amazonaws.com/
) 會擴展此功能,並具有 AWS特定屬性,例如執行個體類型、CPU 製造商、GPU 功能和網路規格。此標準化標籤系統可無縫整合現有的 Kubernetes 工具,同時提供深度 AWS 基礎設施整合。
建立 NodePool
請依照下列步驟為您的 Amazon EKS 叢集建立 NodePool:
-
使用所需的 NodePool 組態建立名為
nodepool.yaml
的 YAML 檔案。您可以使用以下範例組態。 -
將 NodePool 套用至您的叢集:
kubectl apply -f nodepool.yaml
-
確認 NodePool 已成功建立:
kubectl get nodepools
-
(選用) 監控 NodePool 狀態:
kubectl describe nodepool default
確保您的 NodePool 參考存在於叢集中的有效 NodeClass。NodeClass 會為您的運算資源定義 AWS特定的組態。如需詳細資訊,請參閱建立 Amazon EKS 的節點類別。
範例 NodePool
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: my-node-pool spec: template: metadata: labels: billing-team: my-team spec: nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default requirements: - key: "eks.amazonaws.com/instance-category" operator: In values: ["c", "m", "r"] - key: "eks.amazonaws.com/instance-cpu" operator: In values: ["4", "8", "16", "32"] - key: "topology.kubernetes.io/zone" operator: In values: ["us-west-2a", "us-west-2b"] - key: "kubernetes.io/arch" operator: In values: ["arm64", "amd64"] limits: cpu: "1000" memory: 1000Gi
支援的 EKS 自動模式
EKS Auto Mode 支援下列眾所周知的標籤。
標籤 | 範例 | 描述 |
---|---|---|
topology.kubernetes.io/zone |
us-east-2a |
AWS 區域 |
node.kubernetes.io/instance-type |
g4dn.8xlarge |
AWS 執行個體類型 |
kubernetes.io/arch |
amd64 |
架構由執行個體上的 GOARCH 值 |
karpenter.sh/capacity-type |
Spot |
容量類型包括 |
eks.amazonaws.com/instance-hypervisor |
nitro |
使用特定 Hypervisor 的執行個體類型 |
eks.amazonaws.com/compute-type |
auto |
識別 EKS Auto Mode 受管節點 |
eks.amazonaws.com/instance-encryption-in-transit-supported |
true |
支援 (或不支援) 傳輸中加密的執行個體類型 |
eks.amazonaws.com/instance-category |
g |
相同類別的執行個體類型,通常是產生編號之前的字串 |
eks.amazonaws.com/instance-generation |
4 |
執行個體類別內的執行個體類型產生編號 |
eks.amazonaws.com/instance-family |
g4dn |
類似屬性的執行個體類型,但資源數量不同 |
eks.amazonaws.com/instance-size |
8xlarge |
類似資源數量但不同屬性的執行個體類型 |
eks.amazonaws.com/instance-cpu |
32 |
執行個體上的 CPUs 數量 |
eks.amazonaws.com/instance-cpu-manufacturer |
aws |
CPU 製造商的名稱 |
eks.amazonaws.com/instance-memory |
131072 |
執行個體上記憶體的百萬位元組數 |
eks.amazonaws.com/instance-ebs-bandwidth |
9500 |
執行個體上可用的 EBS 最大百萬位元數 |
eks.amazonaws.com/instance-network-bandwidth |
131072 |
執行個體上可用的基準百萬位元數 |
eks.amazonaws.com/instance-gpu-name |
t4 |
執行個體上的 GPU 名稱,如果有的話 |
eks.amazonaws.com/instance-gpu-manufacturer |
nvidia |
GPU 製造商的名稱 |
eks.amazonaws.com/instance-gpu-count |
1 |
執行個體上的 GPUs 數量 |
eks.amazonaws.com/instance-gpu-memory |
16384 |
GPU 上記憶體的百萬位元組數 |
eks.amazonaws.com/instance-local-nvme |
900 |
執行個體上本機 nvme 儲存體的 GB 數 |
不支援 EKS Auto 模式
EKS Auto Mode 不支援下列標籤。
-
EKS Auto Mode 僅支援 Linux
-
node.kubernetes.io/windows-build
-
kubernetes.io/os
-