

 **帮助改进此页面** 

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

# 更新 CoreDNS Amazon EKS 附加组件
<a name="coredns-add-on-update"></a>

更新 附加组件的 Amazon EKS 类型。如果您尚未将 Amazon EKS 附件组件添加到集群，请[添加它](coredns-add-on-create.md)或参阅[更新 CoreDNS Amazon EKS 自主管理型附加组件](coredns-add-on-self-managed-update.md)。

在开始之前，请查看升级的注意事项。有关更多信息，请参阅 [重要的 CoreDNS 升级注意事项](managing-coredns.md#coredns-upgrade)。

1. 查看集群上当前安装的附加组件版本。将 *my-cluster* 替换为您的集群名称。

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

   示例输出如下。

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

   如果返回的版本与[最新版本表](managing-coredns.md#coredns-versions)中集群的 Kubernetes 版本相同，则表示集群上已经安装最新版本，您无需完成此过程的其余部分。如果您在输出中收到错误信息而不是版本号，则您的集群上没有安装 Amazon EKS 类型的附加组件。您需要[先创建附加组件](coredns-add-on-create.md)，然后才能使用此过程对其进行更新。

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

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

1. 使用 AWS CLI 更新您的附加组件。如果您想要使用 AWS 管理控制台 或 `eksctl` 更新附加组件，则请参阅 [更新 Amazon EKS 附加组件](updating-an-add-on.md)。将以下命令复制到您的设备。根据需要对该命令进行以下修改，然后运行修改后的命令。
   + 将 *my-cluster* 替换为您的集群的名称。
   + 将 *v1.11.3-eksbuild.1* 替换为集群版本的最新版本（在[最新版本表](managing-coredns.md#coredns-versions)中列出）。
   + `--resolve-conflictsPRESERVE ` 选项保留附加组件的现有配置值。如果您为附加组件设置设定了自定义值，但未使用此选项，则 Amazon EKS 会使用其默认值覆盖您的值。如果您使用此选项，那么我们建议您在更新生产集群上的附加组件之前，先测试非生产集群上所有更改的字段和值。如果您将该值改为 `OVERWRITE`，则所有设置都将更改为 Amazon EKS 的默认值。如果您为任何设置设定了自定义值，这些值可能会被 Amazon EKS 的默认值覆盖。如果您将该值改为 `none`，Amazon EKS 不会更改任何设置的值，但更新可能会失败。如果更新失败，您会收到一条帮助您解决冲突的错误消息。
   + 如果您没有更新配置设置，则请从命令中移除 `--configuration-values '{"replicaCount":3}'`。如果您要更新配置设置，请将 *"replicaCount":3* 替换为要设置的设置。在此示例中，CoreDNS 的副本数设置为 `3`。您指定的值必须对配置架构有效。如果您不知道配置架构，请运行 `aws eks describe-addon-configuration --addon-name coredns --addon-version v1.11.3-eksbuild.1 `，并将 *v1.11.3-eksbuild.1* 替换为您要查看配置的附加组件的版本号。将在输出中返回架构。如果您有任何现有自定义配置，想要将其全部删除，并将所有设置的值设置回 Amazon EKS 默认值，请从命令中删除 *"replicaCount":3*，这样就可以有空的 `{}`。有关 CoreDNS 设置的更多信息，请参阅 Kubernetes 文档中的[自定义 DNS 服务](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)。

     ```
     aws eks update-addon --cluster-name my-cluster --addon-name coredns --addon-version v1.11.3-eksbuild.1 \
         --resolve-conflicts PRESERVE --configuration-values '{"replicaCount":3}'
     ```

     可能需要几秒钟才能完成更新。

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

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

   可能需要几秒钟才能完成更新。

   示例输出如下。

   ```
   {
       "addon": {
           "addonName": "coredns",
           "clusterName": "my-cluster",
           "status": "ACTIVE",
           "addonVersion": "v1.11.3-eksbuild.1",
           "health": {
               "issues": []
           },
           "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/coredns/d2c34f06-1111-2222-1eb0-24f64ce37fa4",
           "createdAt": "2023-03-01T16:41:32.442000+00:00",
           "modifiedAt": "2023-03-01T18:16:54.332000+00:00",
           "tags": {},
           "configurationValues": "{\"replicaCount\":3}"
       }
   }
   ```