帮助改进此页面
想为本用户指南做出贡献? 选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
为 Amazon EKS 创建节点类
借助 Amazon EKS 节点类,您可以对 EKS 自动模式托管式节点的配置进行精细控制。节点类定义了适用于 EKS 集群中节点组的基础设施级别设置,包括网络配置、存储设置和资源标记等。本主题旨在介绍如何创建和配置节点类以满足您的具体运行要求。
如果需要在默认设置之外自定义 EKS 自动模式预置和配置 EC2 实例的方式,创建节点类可让您精准控制关键基础设施参数。例如,您可以指定私有子网放置来增强安全性,为性能敏感型工作负载配置实例临时存储,或者应用自定义标记以满足成本分配的需要。
创建节点类
要创建节点类,请按以下步骤操作:
-
创建一个包含节点类配置的 YAML 文件(例如
nodeclass.yaml
) -
使用
kubectl
将此配置应用到集群 -
在节点池配置中引用该节点类。有关更多信息,请参阅 为 EKS 自动模式创建节点池。
您需要已经安装并配置好 kubectl
。有关更多信息,请参阅 进行设置以使用 Amazon EKS。
基本节点类示例
以下是一个节点类示例:
apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: private-compute spec: ephemeralStorage: size: "160Gi"
此节点类增加了节点上的临时存储量。
使用以下命令应用此配置:
kubectl apply -f nodeclass.yaml
然后在节点池配置中引用该节点类。有关更多信息,请参阅 为 EKS 自动模式创建节点池。
节点类规范
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 # Optional: Additional EC2 tags tags: Environment: "production" Team: "platform"
注意事项:
-
如果您更改与节点类关联的节点 IAM 角色,则需要创建一个新的访问条目。在创建集群期间,EKS 会自动为节点 IAM 角色创建一个访问条目。节点 IAM 角色需要具有
AmazonEKSAutoNodePolicy
EKS 访问策略。有关更多信息,请参阅 使用 EKS 访问条目向 IAM 用户授予对 Kubernetes 的访问权限。 -
在 EKS 中,一个节点上最多可以有 110 个容器组。此限制将在计算现有最大容器组数量之后应用。有关更多信息,请参阅 选择最优的 Amazon EC2 节点实例类型。
-
如果要将标签从 Kubernetes 传播到 EC2,则需要配置额外的 IAM 权限。有关更多信息,请参阅 了解 EKS 自动模式中的身份和访问权限。