我想在我的 Amazon Elastic Kubernetes Service(Amazon EKS)集群中使用 CoreDNS 配置条件转发器。
简短描述
您可以使用 CoreDNS 配置条件转发,以将 DNS 查询发送至通过自定义 DNS 服务器解析的域。有关更多信息,请参阅 Kubernetes 网站上的自定义 DNS 服务。
**重要提示:**将以下解决方法中的修改仅应用于自行管理的 CoreDNS。要对 CoreDNS Amazon EKS 附加组件进行配置更改,请通过检查 Amazon EKS 附加组件配置来确定 Amazon EKS 管理的设置。请在进行任何更改之前检查附加组件配置,因为修改由 Amazon EKS 管理的字段会阻止 Amazon EKS 管理附加组件。这可能会导致在附加组件更新时覆盖您的更改。
解决方法
1. 修改 CoreDNS ConfigMap 并添加条件转发服务器配置:
$ 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
}
注意:将域名替换为您的域名。将 custom-dns-server 替换为您的自定义 DNS 服务器 IP 地址。
2. 验证域名解析是否有效:
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
注意:将域名替换为您的域名。