一、前置条件
1. 集群需要开启日志服务。
2. CoreDNS 相关的 Corefile 配置中需要添加 log 插件。
注意:说明:
注意:请按照下面的方式添加 Corefile 配置中的 log 插件,编辑 kube-system 下的 coredns 名称的 configmap。
注意:data: Corefile: |2- .:53 { template ANY HINFO . { rcode NXDOMAIN } log #请在此处添加 log 插件 errors health { lameduck 30s } ready kubernetes cluster.local. in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . /etc/resolv.conf { prefer_udp } cache 30 reload loadbalance }kind: ConfigMap
注意:保存配置后退出,Corefile 会被自动 reload;如果 Corefile 没有配置 reload,需要重建 CoreDNS 以使配置生效。
3. 确保集群 CoreDNS 版本 >= 1.8.4。如果需要升级 CoreDNS 版本到 1.8.4,请参见 升级到 1.8.4。
二、开启 CoreDNS 日志
1. 登录 容器服务控制台,选择左侧导航栏中的 运维中心 > 运维功能管理。
2. 选择你需要开启 CoreDNS 日志的集群,单击集群右侧的日志采集。如下:
3. 在日志页面,单击CoreDNS 日志右侧的开启。
注意:未执行 前置条件 第2步,将无法进行开启操作。
4. 在弹出的确认框中,依次确认 部署日志采集组件 > 部署 CoreDNS log 插件 > CoreDNS 日志采集。在 CoreDNS 日志采集页面,选择日志所在区域、日志集、日志主题。如下:
·日志所在地域:选择 CLS 日志集存储地域。
·日志集:选择 CLS 日志集名称。如果没有合适的日志集,可以新建日志集。
·日志主题:可以选择自动创建日志主题,或者选择已有的日志主题。
5. 单击确定,完成 CoreDNS 日志开启。
单击日志主题链接,进入 CLS 页面进行日志检索等操作。日志索引字段含义如下:
| 字段名称 | 字段含义 | 示例 |
| class | 请求类别。 | IN |
| do | 查询中是否设置了 "DNSSEC OK"(DNS 安全扩展确认)。 | false |
| duration | 响应时间(单位秒)。 | 0.000098921 |
| id | 请求 ID,标识特定的 DNS 请求和响应。 | 30008 |
| level | 日志级别。 | INFO |
| name | DNS 请求中查询的目标域名。 | craned.crane-system.svc.cluster.local. |
| port | 发送 DNS 请求的客户端端口。 | 50424 |
| proto | 使用协议。 | udp |
| rcode | 响应代码。 | NXDOMAIN |
| remote | 客户端 IP 地址。 | 10.99.10.128 |
| rflags | 响应报文中的标志字段,用于表示 DNS 查询的状态和结果。 | qr,aa,rd |
| rsize | 限制 DNS 响应的最大值。 | 162 |
| size | 限制 DNS 请求的最大值。 | 69 |
| bufsize | DNS 请求和响应的内部缓冲区大小。 | 65535 |
| type | 请求类型。 | A |
三、在日志管理中使用 CoreDNS 仪表盘
1. 登录 容器服务控制台,选择目标集群,选择左侧导航栏中的日志,点击日志页面的 CoreDNS 日志 页签。
2. 进入 CoreDNS 日志页面,选择地域,集群类型,和你需要查看的集群。如下:
3. 查看仪表盘数据。如下:
·请求成功率:统计所有 DNS 响应正常数目(NOERROR 和 NXDOMAIN)占总请求的比例。用户可以根据此指标,发现当前 CoreDNS 是否存在解析失败的情况。
·域名数:当前 CoreDNS 服务中响应的域名总数。
·请求 QPS:反映一段时间周期内,CoreDNS 服务的 QPS 性能情况(请求次/秒)。用户可以根据此时序图,定位 CoreDNS 相应的性能问题。
·平均延迟/P95 延迟/P99 延迟:通过最近1w个请求的延迟,反映 CoreDNS 服务的平均延迟/P95和 P99 延迟,用于定位 CoreDNS 响应慢的问题。
·CoreDNS Pod 请求分布:多副本 CoreDNS 的情况下,此表格可以展示每个副本的请求分布数以及平均延迟,用于定位 CoreDNS 副本请求不均的问题。
·慢解析日志:当 DNS 请求的处理时间超过特定阈值时,CoreDNS 会在慢解析日志中记录相关信息。通过分析慢解析日志,用户可以发现哪些类型的请求最耗时,然后针对这些问题进行优化。
四、关闭 CoreDNS 日志
如果你不再需要 CoreDNS 日志采集,可以通过下面的方式关闭 CoreDNS 日志采集能力:
1. 登录 容器服务控制台,选择左侧导航栏中的运维中心 > 运维功能管理。
2. 选择你需要关闭 CoreDNS 日志的集群,单击集群右侧的日志采集。
3. 在集群日志采集页签,单击CoreDNS 日志右侧的关闭。如下:
4. 在弹出的关闭集群 CoreDNS 日志确认框中,检查日志信息。如下:
5. 单击确定。如果是自动创建的日志主题,这里会提示有关联的日志主题,如果你不再需要该日志主题,请单击跳转到 CLS 控制台删除相应的日志主题。否则关联的日志主题会一直保存,产生相应的计费。CoreDNS 日志关闭后,页面显示如下: