创建Auto mode集群

使用控制台创建Auto Mode集群

在 Auto Mode 中创建集群非常简单,点击Create cluster

image-20250227100133201

默认就是"Auto Mode”,由于创建集群的时候需要配置Cluster IAM RoleNode IAM Role,这里我们先使用右边的按钮创建:

image-20250227100303563

创建Cluster IAM role, 点击后跳转到IAM服务,并自动选择Use case:

image-20250227100343850

进入下一步,IAM会帮我们自动添加以下权限:

image-20250227100358393

下一步,使用推荐的名称创建IAM Role:

image-20250227100419520

使用同样方式,创建Node IAM Role

image-20250227100453627

创建完两个Role后,点击刷新按钮,会自动使用这个role:

image-20250227100830229

可以看到EKS auto mode已经自动为我们启动了以下特性:

image-20250227100944924

最后点击Create,一切都预先配置好了,不需要为创建 YAML 文件或为 VPC 设置而抓头。

注意: EKS Auto Mode 需要 Kubernetes 版本 1.29 或更高版本。

体验Auto Mode集群

等创建完成后,点击Compute选项卡时,看到两个托管节点池:general-purpose节点池和system节点池:

image-20250227134109210

或者可以通过命令行检查:

$ kubectl get nodepools

image-20250227140511240

  • 通用节点池: 设计用于处理一般应用工作负载。它通常运行用户部署的容器化应用,如 Web 服务器、API、数据处理作业和其他业务应用。它提供了一个灵活多用途的环境,适合大多数没有特殊系统要求的工作负载。
  • 系统节点池: 这个节点池主要保留用于运行系统级或与基础设施相关的工作负载。它确保集群操作所需的关键 Kubernetes 组件和附加组件与用户工作负载隔离。此类工作负载的例子包括 Kubernetes DNS 服务(CoreDNS)、日志代理、指标服务器和网络插件。

注意事项

SSH访问

AWS EKS Auto Mode 不允许直接访问其管理的 NodePools 中的节点。出于安全和管理目的,AWS 限制:

  • SSH 访问:Auto Mode 中的节点不暴露 SSH 以供直接访问。
  • AWS Systems Manager (SSM):通过 SSM 访问节点也被禁用。

这种方法增强了安全性,但它确实带来了一些不便。

对于需要直接节点访问的更深入的故障排除,必须切换到 EKS 标准模式,在那里管理自己的节点组。

更改实例类型

不能直接从控制台修改 NodePools 的实例类别,但可以通过 API 来操作。

在控制台能看到general-purpose nodepool的定义:

image-20250227151127356

等价于以下命令:

kubectl get nodepools general-purpose -o yaml

要应用自定义配置,可以创建类似于以下的NodePool:

apiVersion: eks.amazonaws.com/v1
kind: NodePool
metadata:
name: specialized-pool
spec:
instanceCategory: g
instanceGeneration: latest
instanceSize: large
instanceTypes:
- g5.large
- g5.xlarge
- inf1.xlarge
- inf2.2xlarge
maxNodes: 12
minNodes: 2