【发布时间】:2019-11-02 16:24:25
【问题描述】:
我有一个非常标准的 Kubernetes 安装,在 Ubuntu 上作为单节点集群运行。我正在尝试配置 CoreDNS 来解析我的 Kubernetes 集群中的所有内部服务和一些外部域名。到目前为止,我只是在做实验。我首先创建了一个busybox pod,如下所示:https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/
在我对核心文件进行更改之前,一切都按照指南中的说明进行。我发现了几个问题:
- 我使用
kubectl -n kube-system edit configmap coredns编辑了默认核心文件并将.:53替换为cluster.local:53。等待之后,事情看起来很有希望。google.com解析开始失败,而kubernetes.default.svc.cluster.local继续成功。但是,kubernetes.default分辨率也开始失败。这是为什么?在busybody pod 的/etc/resolv.conf中仍有svc.cluster.local的搜索 条目。改变的只是核心文件。 -
我尝试向核心文件添加一个额外的节/块(同样,通过编辑配置映射)。我添加了一个简单的块:
.:53{ log }好像corefile编译失败什么的。 pod 看起来很健康,不会向日志报告任何错误,但请求都挂起并失败。
我尝试添加日志插件,但由于该插件仅适用于与该插件匹配的域,并且域名不匹配或核心文件损坏,因此无法正常工作。
为了透明,这是我的新核心文件:
cluster.local:53 {
errors
log
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
【问题讨论】:
标签: kubernetes dns kube-dns coredns