

 **帮助改进此页面** 

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

# 从集群中移除 Amazon EKS 附加组件
<a name="removing-an-add-on"></a>

您可以使用 `eksctl`、AWS 管理控制台或 AWS CLI 从集群中移除 Amazon EKS 附加组件。

从集群中移除 Amazon EKS 附加组件时：
+ 附加组件提供的功能不停机。
+ 如果您使用的是服务账户的 IAM 角色（IRSA），并且附加组件有与其关联的 IAM 角色，则不会移除该 IAM 角色。
+ 如果您使用的是容器组身份，则该附加组件拥有的所有容器组身份关联都将被移除。如果将 `--preserve` 选项指定为 AWS CLI，则将会保留关联。
+ Amazon EKS 停止管理附加组件的设置。
+ 控制台停止通知您新版本何时可用。
+ 您无法使用任何 AWS 工具或 API 更新附加组件。
+ 您可以选择将附加软件留在集群上，以便您自行管理，您也可以从集群中删除附加软件。只有当集群上没有资源依赖于附加组件提供的功能时，您才能从集群中删除附加软件。

## 先决条件
<a name="removing-an-add-on-prereq"></a>

在创建附加组件之前，请完成以下步骤：
+ 现有 Amazon EKS 集群。要部署一个角色，请参阅[开始使用 Amazon EKS](getting-started.md)。
+ 检查附加组件是否需要 IAM 角色。有关更多信息，请参阅
+ 您的设备或 AWS CloudShell 上安装 `0.215.0` 版或更高版本的 `eksctl` 命令行工具。要安装或更新 `eksctl`，请参阅 `eksctl` 文档中的 [Installation](https://eksctl.io/installation)。

## 过程
<a name="removing-an-add-on-procedure"></a>

您可以通过两种方式来移除 Amazon EKS 附加组件：
+  **将附加组件保留在您的集群上** - 此方法将移除 Amazon EKS 对任何设置的管理。还移除 Amazon EKS 通知您更新以及在您启动更新后自动更新 Amazon EKS 附加组件的功能。但是，此方法会保留集群上的附加组件软件。此选项会将附加组件作为自行管理安装使用，而不是作为 Amazon EKS 附加组件使用。使用此方法，附加组件不停机。
+  **从集群中完全删除附加组件** - 我们建议只有当集群中没有资源依赖于附加组件时，才从集群移除 Amazon EKS 附加组件。

您可以使用 `eksctl`、AWS 管理控制台或 AWS CLI 移除 Amazon EKS 附加组件。

### 移除附加组件（eksctl）
<a name="_remove_add_on_eksctl"></a>

1. 确定集群上目前安装的附加组件。将 *my-cluster* 替换为您的集群的名称。

   ```
   eksctl get addon --cluster my-cluster
   ```

   示例输出如下。

   ```
   NAME        VERSION              STATUS  ISSUES  IAMROLE  UPDATE AVAILABLE
   coredns     v1.8.7-eksbuild.2    ACTIVE  0
   kube-proxy  v1.23.7-eksbuild.1   ACTIVE  0
   vpc-cni     v1.10.4-eksbuild.1   ACTIVE  0
   [...]
   ```

   您的输出可能会有所不同，这取决于您的集群上安装的附加组件和版本。

1. 移除附加组件。将 *my-cluster* 替换为您的集群名称，将 *name-of-add-on* 替换为上一步的输出中返回的要删除的附加组件名称。如果您移除了 *--preserve* 选项，则除 Amazon EKS 不再管理该附加组件外，该附加软件也会从集群中删除。

   ```
   eksctl delete addon --cluster my-cluster --name name-of-addon --preserve
   ```

   有关移除附加组件的更多信息，请参阅 `eksctl` 文档中的 [Deleting addons](https://eksctl.io/usage/addons/#deleting-addons)。

### 移除附加组件（AWS 控制台）
<a name="remove_add_on_shared_aws_console"></a>

1. 打开 [Amazon EKS 控制台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左侧导航窗格中，选择**集群**。

1. 选择要从中移除 Amazon EKS 附加组件的集群名称。

1. 选择**附加组件**选项卡。

1. 选择要移除的附加组件。

1. 选择**移除**。

1. 在**移除：*name of addon*** 确认对话框中，执行以下操作：

   1. 如果希望 Amazon EKS 停止管理附加组件设置，请选择**在集群上保留**。如果要在集群上保留附加组件软件，请执行此操作。这样您可以自行管理附加组件的所有设置。

   1. 输入附加组件的名称。

   1. 选择**移除**。

### 移除附加组件（AWS CLI）
<a name="remove_add_on_shared_aws_cli"></a>

1. 您需要在设备或 AWS CloudShell 上安装 `0.215.0` 版或更高版本的 `eksctl` 命令行工具。要安装或更新 `eksctl`，请参阅 `eksctl` 文档中的 [Installation](https://eksctl.io/installation)。

1. 查看已安装的附加组件列表。将 *my-cluster* 替换为您的集群的名称。

   ```
   aws eks list-addons --cluster-name my-cluster
   ```

   示例输出如下。

   ```
   {
       "addons": [
           "coredns",
           "kube-proxy",
           "vpc-cni",
           "name-of-addon"
       ]
   }
   ```

1. 移除已安装的附加组件。将 *my-cluster* 替换为您的集群名称，将 *name-of-add-on* 替换为要删除的附加组件的名称。移除 *--preserve* 会从集群中移除附加组件软件。

   ```
   aws eks delete-addon --cluster-name my-cluster --addon-name name-of-addon --preserve
   ```

   简短的示例输出如下。

   ```
   {
       "addon": {
           "addonName": "name-of-add-on",
           "clusterName": "my-cluster",
           "status": "DELETING",
       }
   }
   ```

1. 检查移除操作的状态。将 *my-cluster* 替换为您的集群名称，将 *name-of-addon* 替换为您正在删除的附加组件的名称。

   ```
   aws eks describe-addon --cluster-name my-cluster --addon-name name-of-addon
   ```

   移除附加组件后，示例输出将如下所示。

   ```
   An error occurred (ResourceNotFoundException) when calling the DescribeAddon operation: No addon: name-of-addon found in cluster: my-cluster
   ```