A. *_*son 5 dns kubernetes kube-dns coredns
我有一个非常标准的 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 中仍然有一个搜索条目。所有改变的是核心文件。svc.cluster.local
/etc/resolv.conf
我尝试向核心文件添加额外的节/块(同样,通过编辑配置映射)。我添加了一个简单的块:
.:53{
log
}
Run Code Online (Sandbox Code Playgroud)
似乎核心文件无法编译或什么的。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
}
Run Code Online (Sandbox Code Playgroud)
看起来您的 Corefile 在通过“kubectl edit ...”命令进行编辑期间以某种方式损坏了。可能这是您的默认文本编辑器的错误,但这绝对是有效的。
我建议您使用以下命令替换当前的配置映射:
kubectl get -n kube-system cm/coredns --export -o yaml | kubectl replace -n kube-system -f coredns_cm.yaml
Run Code Online (Sandbox Code Playgroud)
kubectl get -n kube-system cm/coredns --export -o yaml | kubectl replace -n kube-system -f coredns_cm.yaml
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7891 次 |
最近记录: |