kubernetes开启coredns日志

默认的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
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容