首页 > 其他分享 >K8s集群CoreDNS监控告警最佳实践

K8s集群CoreDNS监控告警最佳实践

时间:2024-01-24 10:22:19浏览次数:31  
标签:proto sum 5m instance rate coredns CoreDNS 告警 K8s

本文分享自华为云社区《K8s集群CoreDNS监控告警最佳实践》,作者:可以交个朋友。

一 背景

coreDNS作为K8s集群中的关键组成部分。主要负责k8s集群中的服务发现,域名解析等功能。如果在使用过程中出现域名解析失败,域名解析超时等情况,需要引起注意。

二 方案简介

可以通过CCE集群插件kube-prometheus-stack进行coreDNS服务的指标监控,并提供开箱即用的仪表盘视图。时刻观察coreDNS的各项运行指标是否处于健康状态。

【加一下怎么到这个图的,选监控-仪表盘】

image.png

CCE普罗监控数据统一吐到华为云AOM2.0服务,可以在AOM2.0服务中根据展示各种普罗指标数据,并根据业务实际诉求,实现基于指标的的告警通知。

【CCE普罗对接哪个AOM实例】

【加一个AOM2.0图,可以看到AOM实例指标数据】

三 coreDNS关键指标

确保Prometheus已经成功抓取coreDNS相关指标

image.png

  • coreDNS请求速率: sum(rate(coredns_dns_requests_total{}[5m])) by (proto,instance)

  • coreDNS请求速率(记录类型分组): sum(rate(coredns_dns_requests_total{}[5m])) by (type,instance)

  • coreDNS请求速率(DO标志位): sum(rate(coredns_dns_do_requests_total{}[5m])) by (instance)

  • coreDNS UDP请求数据包大小:
    P99: histogram_quantile(0.99,sum(rate(coredns_dns_request_size_bytes_bucket{proto="udp"}[5m])) by(le,proto,instance))
    P90:
    histogram_quantile(0.90,sum(rate(coredns_dns_request_size_bytes_bucket{proto="udp"}[5m])) by(le,proto,instance))
    P50:
    histogram_quantile(0.50,sum(rate(coredns_dns_request_size_bytes_bucket{proto="udp"}[5m])) by(le,proto,instance))

  • coreDNS TCP请求数据包大小:
    P99: histogram_quantile(0.99,sum(rate(coredns_dns_request_size_bytes_bucket{proto="tcp"}[5m])) by(le,proto,instance))
    P90:
    histogram_quantile(0.90,sum(rate(coredns_dns_request_size_bytes_bucket{proto="tcp"}[5m])) by(le,proto,instance))
    P50:
    histogram_quantile(0.50,sum(rate(coredns_dns_request_size_bytes_bucket{proto="tcp"}[5m])) by(le,proto,instance))

  • coreDNS响应速率(根据响应状态码分组): sum(rate(coredns_dns_responses_total{}[5m])) by(rcode,instance)

  • coreDNS响应时延:
    P99: histogram_quantile(0.99,sum(rate(coredns_dns_request_duration_seconds_bucket{}[5m])) by(le,job,instance))
    P90:
    histogram_quantile(0.90,sum(rate(coredns_dns_request_duration_seconds_bucket{}[5m])) by(le,job,instance))
    P50:
    histogram_quantile(0.50,sum(rate(coredns_dns_request_duration_seconds_bucket{}[5m])) by(le,job,instance))

  • coreDNS UDP响应数据包大小:
    P99: histogram_quantile(0.99,sum(rate(coredns_dns_response_size_bytes_bucket{proto="udp"}[5m])) by(le,proto,instance))
    P90:
    histogram_quantile(0.90,sum(rate(coredns_dns_response_size_bytes_bucket{proto="udp"}[5m])) by(le,proto,instance))
    P50:
    histogram_quantile(0.50,sum(rate(coredns_dns_response_size_bytes_bucket{proto="udp"}[5m])) by(le,proto,instance))

  • coreDNS TCP响应数据包大小
    P99: histogram_quantile(0.99,sum(rate(coredns_dns_response_size_bytes_bucket{proto="tcp"}[5m])) by(le,proto,instance))
    P90:
    histogram_quantile(0.90,sum(rate(coredns_dns_response_size_bytes_bucket{proto="tcp"}[5m])) by(le,proto,instance))
    P50:
    histogram_quantile(0.50,sum(rate(coredns_dns_response_size_bytes_bucket{proto="tcp"}[5m])) by(le,proto,instance))

  • coreDNS缓存的DNS记录数: sum (coredns_cache_entries{}) by(type,instance)

  • coreDNS缓存命中率:
    sum (rate(coredns_cache_hits_total{}[5m])) by (type,instance)

  • coreDNS缓存丢失率:
    sum (rate(coredns_cache_misses_total{}[5m])) by (type,instance)

其中主要关注:p99coreDNS响应时延、coreDNS请求速率、coreDNS缓存命中率指标,其中p99coreDNS响应时延基于域名解析超时时间一般为2s,可以初步设置高级阈值为1s,后续再根据实际监控数据根据指标进一步设置一个更加精细阈值。

四: 如何根据coreDNS指标进行告警

前往AOM告警管理tab页

【怎么导入这个图】

配置告警规则

选择指标告警规则,配置方式可使用PromQL语句

image.png

配置告警通知规则

image.png

触发指标告警规则,邮箱收到告警

image.png

 

点击关注,第一时间了解华为云新鲜技术~

 

标签:proto,sum,5m,instance,rate,coredns,CoreDNS,告警,K8s
From: https://www.cnblogs.com/huaweiyun/p/17984038

相关文章

  • k8s中controller-runtime并发Reconcile分析
    §0x01起因开发控制器时,团队内一直在讨论是否需要为单个控制器对象添加并发控制(即加锁),最终把controller-runtime框架中并发数改为1,同时启用了k8s的leaderelection机制保证只有单实例来规避并发的可能。这种做法其实是有问题的,没有搞清楚controller-runtime框架本身是......
  • k8s之持久卷NFS
    一、简介首先需要创建一个nfs服务器,作为存储服务器;将nfs服务器上导出(export)的文件系统用作存储卷;nfs是文件系统级共享服务,它支持多路挂载请求,可由多个Pod对象同时用作存储卷后端;二、准备NFS服务器1、安装NFS-serverroot@k8s-node03:~#aptsearch^nfs-kerSorting.........
  • Skywalking 钉钉告警
     1、添加钉钉告警  2、修改配置文件 /usr/local/apache-skywalking-apm-bin/config/ alarm-settings.yml修改  alarm-settings.yml告警文件 添加在 文档尾部(注意格式)dingtalkHooks:textTemplate:|-{"msgtype":"text","text":{"......
  • k8s install nfs-pv
    https://artifacthub.io/packages/helm/nfs-subdir-external-provisioner/nfs-subdir-external-provisioner部署: helminstall-nnfs-provisionernfs-subdir-external-provisioner-retainnfs-subdir-external-provisioner/nfs-subdir-external-provisioner--setnfs.se......
  • [转帖]小米Redis的K8s容器化部署实践
    https://juejin.cn/post/6844904196924276743   背景WhyK8SHowK8sWhyProxyProxy带来的问题K8s带来的好处遇到的问题总结 背景 小米的Redis使用规模很大,现在有数万个实例,并且每天有百万亿次的访问频率,支撑了几乎所有的产品线和生......
  • k8s强制删除pod节点
    场景突然getpod的时候,发现一堆的错误,得把它干掉,否则很不爽。解决方案正常过期的状态,比如Evicted,用正常指令kubectl-njingugetpods|grepEvicted|awk'{print$1}'|xargskubectl-njingudeletepods干不掉的pods,比如Terminating,只能用强制指令kubectl-njin......
  • 主机提示IPMI 系统事件日志状态告警
    登陆vCenter连接到一台ESX主机(Dell服务器,很久之前机器的小屏幕上就有告警,内容为日志满了,因为机器不能重启,所以一直没有机会去清除日志)时,得到一条警报:主机IPMI系统事件日志状态,这种警报通常是由于系统事件日志满了导致的,必须清除IPMI系统日志后重置传感器。1.Client登陆vCenter控......
  • k8s使用cifs创建pv,某些节点不能挂载
    1.不能挂载的节点报错从报错可以看到pod中的挂载点已经存在了,不能创建RunContainerError(failedtostartcontainer"0ea31f12b87474dbd125a3999114afae53fb92b2c1106d5e65110170e3f3ac80":Errorresponsefromdaemon:errorwhilecreatingmountsourcepath'/var/lib/k......
  • 基于 Alpine 使用 kubeadm 搭建 k8s
    基于Alpine使用kubeadm搭建k8s先部署基础环境,然后根据官方文档K8s-AlpineLinux,进行操作。将官方文档整理为脚本整理脚本时,有部分调整#!/bin/shset-x#添加源,安装时已经配置#cat>>/etc/apk/repositories<<"EOF"#http://mirrors.aliyun.com/alpine/edge/commu......
  • 基于 Alpine 使用 kubeadm 搭建 k8s
    基于Alpine使用kubeadm搭建k8s先部署基础环境,然后根据官方文档K8s-AlpineLinux,进行操作。将官方文档整理为脚本整理脚本时,有部分调整#!/bin/shset-x#添加源,安装时已经配置#cat>>/etc/apk/repositories<<"EOF"#http://mirrors.aliyun.com/alpine/edge/commu......