Kubernetes-如何编辑CoreDNS corefile configmap?
我有一个相当标准的Kubernetes安装,在Ubuntu上作为单节点集群运行。我正在尝试配置CoreDNS以解析Kubernetes集群内的所有内部服务和一些外部域名。到目前为止,我只是在做实验。我首先创建了一个busybox pod,如下所示: 在我对corefile进行更改之前,一切都按照指南中的描述进行。我看到了几个问题:Kubernetes-如何编辑CoreDNS corefile configmap?,kubernetes,dns,kube-dns,coredns,Kubernetes,Dns,Kube Dns,Coredns,我有一个相当标准的Kubernetes安装,在Ubuntu上作为单节点集群运行。我正在尝试配置CoreDNS以解析Kubernetes集群内的所有内部服务和一些外部域名。到目前为止,我只是在做实验。我首先创建了一个busybox pod,如下所示: 在我对corefile进行更改之前,一切都按照指南中的描述进行。我看到了几个问题: 我使用kubectl-n kube system edit configmap coredns编辑了默认的core文件,并将:53替换为集群。本地:53。等待之后,事
kubectl-n kube system edit configmap coredns
编辑了默认的core文件,并将:53
替换为集群。本地:53
。等待之后,事情看起来很有希望google.com
解析开始失败,而kubernetes.default.svc.cluster.local
继续成功。然而,kubernetes.default
解析也开始失败。为什么呢?busybody pod的/etc/resolv.conf
中仍然有一个搜索svc.cluster.local
条目。所有的改变都是corefile.: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
}
看起来您的Corefile在编辑过程中通过“kubectl edit…”命令被破坏了。这可能是默认文本编辑器的错误,但它绝对有效 我建议您使用以下命令替换当前的配置映射:
kubectl get -n kube-system cm/coredns --export -o yaml | kubectl replace -n kube-system -f coredns_cm.yaml
#coredns_cm.yaml
版本:v1
数据:
核心文件:|
集群.本地:53{
日志
错误
健康
kubernetes cluster.local in-addr.arpa ip6.arpa{
豆荚不安全
上游
故障插入地址r.arpa ip6.arpa
}
普罗米修斯:9153
代理./etc/resolv.conf
缓存30
环
重新加载
负载平衡
}
种类:配置地图
元数据:
creationTimestamp:空
名称:coredns
然后使用
vi
编辑并保存coredns
configmap。保存后,将应用更改。FYI-在上面的示例中,您可能必须使用转发
而不是代理
$ kubectl -n kube-system edit configmaps coredns -o yaml