使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何在我的 Amazon EKS 集群中使用 CoreDNS 配置条件转发器?

2 分钟阅读
0

我想在我的 Amazon Elastic Kubernetes Service(Amazon EKS)集群中使用 CoreDNS 配置条件转发器。

简短描述

使用 CoreDNS 为发送至自定义 DNS 服务器解析的域的 DNS 查询配置条件转发器。有关更多信息,请参阅 Kubernetes 网站上的自定义 DNS 服务

**重要事项:**在对 CoreDNS Amazon EKS 附加组件进行配置更改之前,必须确定 Amazon EKS 管理的设置。您可以在 Amazon EKS 附加组件配置中找到此信息。当修改 Amazon EKS 管理的字段时,Amazon EKS 无法管理该附加组件。更新附加组件时,Amazon EKS 可能会覆盖您的更改。

解决方法

以下解决方法适用于 CoreDNS 自主管理型和 Amazon EKS 附加组件配置。

配置自主管理型附加组件

运行以下命令来修改 CoreDNS ConfigMap 并添加自定义 DNS 条件转发器配置:

$ kubectl -n kube-system edit configmap coredns

输出类似于以下内容:

apiVersion: v1
kind: ConfigMap
metadata:
  annotations:
  labels:
    eks.amazonaws.com/component: coredns
    k8s-app: kube-dns
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
    domain-name:53 {
        errors
        cache 30
        forward . custom-dns-server
        reload
    }

注意:domain-name 替换为您的域名,将 custom-dns-server 替换为您的自定义 DNS 服务器 IP 地址。

配置 Amazon EKS 附加组件

要对 Amazon EKS 托管 CoreDNS 附加组件进行更改,请完成以下步骤:

  1. 打开 Amazon EKS 控制台

  2. 在导航窗格上,选择集群

  3. 选择您的集群的名称。

  4. 选择附加组件选项卡。

  5. 选择 CoreDNS 附加组件,然后选择编辑

  6. 在编辑页面上,选择可选配置设置部分。在配置值部分,添加自定义 DNS 条件转发器配置:

    corefile: |
        .:53 {
            errors
            health
            kubernetes cluster.local in-addr.arpa ip6.arpa {
              pods insecure
              fallthrough in-addr.arpa ip6.arpa
            }
            prometheus :9153
            forward . /etc/resolv.conf
            cache 30
            loop
            reload
            loadbalance
        }
        domain-name:53 {
            errors
            cache 30
            forward . custom-dns-server
            reload
        }

    注意:domain-name 替换为您的域名,将 custom-dns-server 替换为您的自定义 DNS 服务器 IP 地址。

验证域名解析

要验证域名解析是否有效,请运行下面的命令:

$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name

**注意:**将 domain-name 替换为您的域名。

AWS 官方
AWS 官方已更新 1 年前