

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 在现有集群上启用 EKS 自动模式
<a name="auto-enable-existing"></a>

本主题介绍如何在现有的 Amazon EKS 集群上启用 Amazon EKS 自动模式。要在现有集群上启用自动模式，需要更新 IAM 权限并配置核心 EKS 自动模式设置。启用自动模式后，您可以开始迁移现有的计算工作负载，以利用自动模式的简化操作和自动化基础设施管理等优势。

**重要**  
启用 EKS 自动模式之前，请确认您已安装某些 Amazon EKS 附加组件的最低所需版本。有关更多信息，请参阅 [必需的附加组件版本](#auto-addons-required)。

在开始操作之前，请确保您拥有 Amazon EKS 集群的管理员访问权限以及修改 IAM 角色的权限。本主题中的步骤将演示使用 AWS 管理控制台或 AWS CLI 启用自动模式的过程。

## AWS 管理控制台
<a name="auto-enable-existing-console"></a>

您必须登录 AWS 控制台并拥有管理 IAM、EKS 和 EC2 资源的权限。

**注意**  
创建 EKS 集群后，将无法更改其集群 IAM 角色。EKS 自动模式需要此角色拥有额外的权限。您必须为当前角色附加额外的策略。

### 更新集群 IAM 角色
<a name="_update_cluster_iam_role"></a>

1. 在 AWS 管理控制台中打开集群概述页面。

1. 在**集群 IAM 角色 ARN** 下，选择**在 IAM 中查看**。

1. 从**添加权限**下拉菜单中，选择**附加策略**。

1. 使用**搜索**框查找并选中以下策略：
   +  `AmazonEKSComputePolicy` 
   +  `AmazonEKSBlockStoragePolicy` 
   +  `AmazonEKSLoadBalancingPolicy` 
   +  `AmazonEKSNetworkingPolicy` 
   +  `AmazonEKSClusterPolicy` 

1. 选择**添加权限** 

1. 从**信任关系**选项卡中选择**编辑信任策略** 

1. 插入以下集群 IAM 角色信任策略，然后选择**更新策略** 

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
```

### 启用 EKS 自动模式
<a name="_enable_eks_auto_mode"></a>

1. 在 AWS 管理控制台中打开集群概述页面。

1. 在 **EKS 自动模式**下，选择**管理** 

1. 将 **EKS 自动模式**切换为开启。

1. 从 **EKS 节点池**下拉列表中，选择要创建的默认节点池。
   + 详细了解 EKS 自动模式中的节点池。有关更多信息，请参阅 [为 EKS 自动模式创建节点池](create-node-pool.md)。

1. 如果您之前已为此 AWS 账户创建了 EKS 自动模式节点 IAM 角色，请在**节点 IAM 角色**下拉列表中选中该角色。如果您之前尚未创建该角色，请选择**创建建议角色**，然后按照步骤操作。

## AWS CLI
<a name="shared_aws_cli"></a>

### 先决条件
<a name="_prerequisites"></a>
+ 现有 EKS 集群的集群 IAM 角色必须包含足够的 EKS Auto Mode 权限，例如以下策略：
  +  `AmazonEKSComputePolicy` 
  +  `AmazonEKSBlockStoragePolicy` 
  +  `AmazonEKSLoadBalancingPolicy` 
  +  `AmazonEKSNetworkingPolicy` 
  +  `AmazonEKSClusterPolicy` 
+ 集群 IAM 角色必须更新信任策略，其中应包括 `sts:TagSession` 操作。有关创建集群 IAM 角色的更多信息，请参阅[使用 AWS CLI 创建 EKS 自动模式集群](automode-get-started-cli.md)。
+  已安装 `aws` CLI，已登录，并且版本充分满足要求。您必须拥有管理 IAM、EKS 和 EC2 资源的权限。有关更多信息，请参阅 [进行设置以使用 Amazon EKS](setting-up.md)。

### 过程
<a name="_procedure"></a>

使用以下命令在现有集群上启用 EKS 自动模式。

**注意**  
计算、块存储和负载均衡功能必须在同一请求中全部启用或禁用。

```
aws eks update-cluster-config \
 --name $CLUSTER_NAME \
 --compute-config enabled=true \
 --kubernetes-network-config '{"elasticLoadBalancing":{"enabled": true}}' \
 --storage-config '{"blockStorage":{"enabled": true}}'
```

## 必需的附加组件版本
<a name="auto-addons-required"></a>

如果您计划在现有集群上启用 EKS 自动模式，则可能需要更新某些附加组件。请注意：
+ 这仅适用于将现有集群迁移到 EKS 自动模式。
+ 创建启用 EKS 自动模式的新集群不需要进行这些更新。

如果您安装了以下任何附加组件，请确保这些附加组件至少达到指定的最低版本：


| 附加组件名称 | 最低所需版本 | 
| --- | --- | 
|  适用于 Kubernetes 的 Amazon VPC CNI 插件  |  v1.19.0-eksbuild.1  | 
|  Kube-proxy  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/eks/latest/userguide/auto-enable-existing.html)  | 
|  Amazon EBS CSI 驱动程序  |  v1.37.0-eksbuild.1  | 
|  CSI 快照控制器  |  v8.1.0-eksbuild.2  | 
|  EKS 容器组身份代理  |  v1.3.4-eksbuild.1  | 

有关更多信息，请参阅 [更新 Amazon EKS 附加组件](updating-an-add-on.md)。

## 后续步骤
<a name="_next_steps"></a>
+ 要迁移“管理节点组”工作负载，请参阅[从 EKS 托管式节点组迁移到 EKS 自动模式](auto-migrate-mng.md)。
+ 要从自主管理型 Karpenter 迁移，请参阅[使用 kubectl 从 Karpenter 迁移到 EKS 自动模式](auto-migrate-karpenter.md)。