一、背景:

在升级 CoreDNS 插件的过程中若是在冲突解决办法选了保留,会以集群上的配置为优先,如果版本号/镜像也是冲突项目,则有可能导致版本号/镜像不会跟着升级上去的情况。确认过 EKS 集群信息,先前 CoreDNS 确实有因为镜像配置发生冲突,当时是通过在 冲突解决方法 选择 "覆盖" 来解决问题的,这次如果同样是因为镜像配置发生冲突,且您选择了 "保留",则版本号没有跟着升上去是有可能发生的情况。

二、解决方案:

如果下次升级到 1.30 版本时还是选择 "保留",则可能一样因为镜像配置发生冲突,使版本号没有跟着升上去,如此情况下相当于没有完成完整的升级操作,未来是有可能发生不可用的情况,因为不确定 EKS 集群版本与 CoreDNS 插件版本的相容性会不会造成影响。

如果您选择 "覆盖" 的话,默认会把客制化的 ConfigMap coredns 也给覆盖了,因此在更新 CoreDNS 的配置时,在主控台上选版本为 v1.9.3-eksbuild.19 之后,接着选择并展开 Optional configuration settings(可选配置设置),并在 Configuration values(配置值)框中输入下面的内容作为值,最后再通过在 "冲突解决方法" 选择 "覆盖" 来解决问题:

corefile: |
  .:53 {
    errors
    health
    hosts {      
      10.30.xxx.143 xxx.aliyuncs.com
      10.30.xxx.155 kafka01
      10.30.xxx.156 kafka02
      10.30.xxx.157 kafka03
      xx.xxx.xxx.xxx admin.xxx.com
      fallthrough
    }
    kubernetes cluster.local in-addr.arpa ip6.arpa {
      pods insecure
      fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    ready :8181
    forward . /etc/resolv.conf
    cache 30
    loop
    reload
    loadbalance
  }


  • No labels