為 EKS Auto 模式建立節點集區 - Amazon EKS

協助改善此頁面

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

想要為此使用者指南做出貢獻? 選擇 GitHub 上的編輯此頁面連結,該連結位於每個頁面的右窗格中。您的貢獻將幫助我們的使用者指南更適合每個人。

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

為 EKS Auto 模式建立節點集區

Amazon EKS 節點集區提供彈性的方式來管理 Kubernetes 叢集中的運算資源。本主題示範如何使用 Karpenter 建立和設定節點集區,這是有助於最佳化叢集擴展和資源使用率的節點佈建工具。透過 Karpenter 的 NodePool 資源,您可以定義運算資源的特定需求,包括執行個體類型、可用區域、架構和容量類型。

您無法修改內建 systemgeneral-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:

  1. 使用所需的 NodePool 組態建立名為 nodepool.yaml的 YAML 檔案。您可以使用以下範例組態。

  2. 將 NodePool 套用至您的叢集:

    kubectl apply -f nodepool.yaml
  3. 確認 NodePool 已成功建立:

    kubectl get nodepools
  4. (選用) 監控 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

容量類型包括 spoton-demand

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