默认的coredns配置没有开启日志插件,这导致kubernetes集群中一些dns解析超时问题难以定位。通过kubernetes log
命令查看到的结果往往是
root@iZj6chmpsf3hnh4tj2y2mgZ:~# kubectl logs coredns-64897985d-59hbn -n kube-system
.:53
[INFO] plugin/reload: Running configuration MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.6
linux/amd64, go1.17.1, 13a9191
我们可以通过修改kubernetes的�configmap中的coredns配置来开启日志功能,默认的coredns配置如下
kubectl describe configmap coredns -n kube-system
Name: coredns
Namespace: kube-system
Labels: <none>
Annotations: <none>
Data
====
Corefile:
----
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
}
BinaryData
====
添加log模块
image-20211230205435435接下来我们再使用命令查看日志,就可以看到dns解析的记录,无需重启coredns
image-20211230205544473还可以在log模块里添加一些配置来自定义log输出,例如
只打印错误的解析请求
. {
log . {combined} {
class denial error
}
}
只打印拒绝了的,并且是example.org
下的请求
. {
log example.org {
class denial
}
}
网友评论