協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS 節點類別可讓您精確控制 EKS Auto Mode 受管節點的組態。節點類別定義基礎設施層級設定,適用於 EKS 叢集中的節點群組,包括網路組態、儲存設定和資源標記。本主題說明如何建立和設定節點類別,以符合您的特定操作需求。
當您需要自訂 EKS Auto Mode 在預設設定之外佈建和設定 EC2 執行個體的方式時,建立節點類別可讓您精確控制關鍵基礎設施參數。例如,您可以指定私有子網路放置以提高安全性、為效能敏感工作負載設定執行個體暫時性儲存,或為成本分配套用自訂標記。
建立節點類別
若要建立節點類別,請遵循下列步驟:
-
使用節點類別組態建立 YAML 檔案 (例如
nodeclass.yaml
) -
使用 將組態套用至您的叢集
kubectl
-
參考節點集區組態中的節點類別。如需詳細資訊,請參閱為 EKS Auto 模式建立節點集區。
您需要kubectl
安裝並設定 。如需詳細資訊,請參閱設定 以使用 Amazon EKS。
基本節點類別範例
以下是節點類別的範例:
apiVersion: eks.amazonaws.com/v1
kind: NodeClass
metadata:
name: private-compute
spec:
ephemeralStorage:
size: "160Gi"
此 NodeClass 會增加節點上的暫時性儲存量。
使用此組態:
kubectl apply -f nodeclass.yaml
接下來,參考節點集區組態中的節點類別。如需詳細資訊,請參閱為 EKS Auto 模式建立節點集區。
建立節點類別存取項目
如果您建立自訂節點類別,則需要建立 EKS 存取項目,以允許節點加入叢集。當您使用內建節點類別和節點集區時,EKS 會自動建立存取項目。
如需 Access 項目如何運作的詳細資訊,請參閱授予 IAM 使用者使用 EKS 存取項目存取 Kubernetes。
為 EKS Auto Mode 節點類別建立存取項目時,您需要使用EC2
存取項目類型。
使用 CLI 建立存取項目
若要建立 EC2 節點的存取項目並關聯 EKS Auto Node 政策:
使用叢集名稱和節點角色 ARN 更新下列 CLI 命令。節點角色 ARN 是在節點類別 YAML 中指定。
# Create the access entry for EC2 nodes
aws eks create-access-entry \
--cluster-name <cluster-name> \
--principal-arn <node-role-arn> \
--type EC2
# Associate the auto node policy
aws eks associate-access-policy \
--cluster-name <cluster-name> \
--principal-arn <node-role-arn> \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSAutoNodePolicy \
--access-scope type=cluster
使用 CloudFormation 建立存取項目
若要建立 EC2 節點的存取項目並關聯 EKS Auto Node 政策:
使用叢集名稱和節點角色 ARN 更新下列 CloudFormation。節點角色 ARN 是在節點類別 YAML 中指定。
EKSAutoNodeRoleAccessEntry:
Type: AWS::EKS::AccessEntry
Properties:
ClusterName: <cluster-name>
PrincipalArn: <node-role-arn>
Type: "EC2"
AccessPolicies:
- AccessScope:
Type: cluster
PolicyArn: arn:aws:eks::aws:cluster-access-policy/AmazonEKSAutoNodePolicy
DependsOn: [ <cluster-name> ] # previously defined in CloudFormation
如需部署 CloudFormation 堆疊的相關資訊,請參閱 CloudFormation 入門
節點類別規格
apiVersion: eks.amazonaws.com/v1
kind: NodeClass
metadata:
name: default
spec:
# Required: Name of IAM Role for Nodes
role: "MyNodeRole"
# Required: Subnet selection for node placement
subnetSelectorTerms:
- tags:
Name: "<tag-name>"
kubernetes.io/role/internal-elb: "1"
# Alternative using direct subnet ID
# - id: "subnet-0123456789abcdef0"
# Required: Security group selection for nodes
securityGroupSelectorTerms:
- tags:
Name: "eks-cluster-node-sg"
# Alternative approaches:
# - id: "sg-0123456789abcdef0"
# - name: "eks-cluster-node-security-group"
# Optional: Configure SNAT policy (defaults to Random)
snatPolicy: Random # or Disabled
# Optional: Network policy configuration (defaults to DefaultAllow)
networkPolicy: DefaultAllow # or DefaultDeny
# Optional: Network policy event logging (defaults to Disabled)
networkPolicyEventLogs: Disabled # or Enabled
# Optional: Configure ephemeral storage (shown with default values)
ephemeralStorage:
size: "80Gi" # Range: 1-59000Gi or 1-64000G or 1-58Ti or 1-64T
iops: 3000 # Range: 3000-16000
throughput: 125 # Range: 125-1000
# IAM role to use for EC2 instance role
# If unspecified, EKS will create a role
# If specified, role requires access entry described above
role: arn:aws:iam::123456789012:role/MyNodeRole
# Optional: Additional EC2 tags
tags:
Environment: "production"
Team: "platform"
考量:
-
如果您變更與 NodeClass 相關聯的節點 IAM 角色,您將需要建立新的存取項目。在叢集建立期間,EKS 會自動為節點 IAM 角色建立存取項目。節點 IAM 角色需要 EKS
AmazonEKSAutoNodePolicy
存取政策。如需詳細資訊,請參閱授予 IAM 使用者使用 EKS 存取項目存取 Kubernetes。 -
EKS 將節點上的 Pod 數量上限限制為 110。此限制會在現有的最大 Pod 計算之後套用。如需詳細資訊,請參閱選擇最佳的 Amazon EC2 節點執行個體類型。
-
如果您想要將標籤從 Kubernetes 傳播到 EC2,則需要設定其他 IAM 許可。如需詳細資訊,請參閱了解 EKS Auto 模式的身分和存取。