

 **帮助改进此页面** 

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

# 创建 CoreDNS Amazon EKS 附加组件
<a name="coredns-add-on-create"></a>

创建 CoreDNS Amazon EKS 附加组件。在创建附加组件之前，您必须拥有一个集群。有关更多信息，请参阅 [创建一个 Amazon EKS 集群。](create-cluster.md)。

1. 查看集群上当前安装的附加组件版本。

   ```
   kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3
   ```

   示例输出如下。

   ```
   v1.10.1-eksbuild.13
   ```

1. 查看集群上当前安装的附加组件类型。根据您创建集群时使用的工具，您的集群上目前可能没有安装 Amazon EKS 附加组件类型。将 *my-cluster* 替换为您的集群的名称。

   ```
   aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text
   ```

   如果返回来的是版本号，则表明您的集群上安装有 Amazon EKS 类型的附加组件，而且此流程中其余的步骤，您也不需要走完。如果返回来的是一个错误，则表明您的集群上没有安装 Amazon EKS 类型的附加组件。要安装，就需完成此流程中其余的步骤。

1. 保存您当前安装的附加组件的配置。

   ```
   kubectl get deployment coredns -n kube-system -o yaml > aws-k8s-coredns-old.yaml
   ```

1. 使用 AWS CLI 创建附加组件。如果要使用 AWS 管理控制台 或 `eksctl` 来创建附加组件，请参阅 [创建 Amazon EKS 附加组件](creating-an-add-on.md) 并指定 `coredns` 为附加组件名称。将以下命令复制到您的设备。根据需要对该命令进行以下修改，然后运行修改后的命令。
   + 将 *my-cluster* 替换为您的集群的名称。
   + 将 *v1.11.3-eksbuild.1* 替换为集群版本的最新版本（在[最新版本表](managing-coredns.md#coredns-versions)中列出）。

     ```
     aws eks create-addon --cluster-name my-cluster --addon-name coredns --addon-version v1.11.3-eksbuild.1
     ```

     如果您对当前附加组件应用的自定义设置与 Amazon EKS 附加组件的默认设置相冲突，则创建可能会失败。如果创建失败，您会收到一条可以帮助您解决问题的错误信息。或者，您可以将 `--resolve-conflicts OVERWRITE` 添加到前面的命令中。这样一来，附加组件会覆盖任何现有的自定义设置。创建附加组件后，您可以使用自定义设置对其进行更新。

1. 确认集群的 Kubernetes 版本的附加组件最新版本已添加到集群。将 *my-cluster* 替换为您的集群的名称。

   ```
   aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text
   ```

   附加组件创建可能需要几秒钟才能完成。

   示例输出如下。

   ```
   v1.11.3-eksbuild.1
   ```

1. 如果您在创建 Amazon EKS 附加组件之前对原始附加组件进行了自定义设置，则请使用您在上一步中保存的配置，以使用您的自定义设置更新 Amazon EKS 附加组件。有关如何更新附加组件的说明，请参阅 [更新 CoreDNS Amazon EKS 附加组件](coredns-add-on-update.md)。