运维监控系统实战笔记
秦晓辉
快猫星云联合创始人,Open-Falcon、Nightingale、Categraf 核心研发
9147 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
运维监控系统实战笔记
15
15
1.0x
00:00/00:00
登录|注册

17|组件监控:Kubernetes Node组件的关键指标与数据采集

你好,我是秦晓辉。
前面几讲我们介绍了 MySQL、Redis、Kafka、Elasticsearch 这些常见组件的监控方法,相信你对各类中间件的典型监控逻辑已经有了一定的认识。接下来我要介绍的是云原生时代的扛把子 Kubernetes 的监控,云原生这个词就是随着 Kubernetes 火起来的。Kubernetes 架构比较复杂,我会用两讲的时间来分享。
虽然网上可以找到基于 Prometheus 做的 Operator,一键监控 Kubernetes,但是很多人仍然不知其所以然,这两讲我会按照组件粒度掰开来讲,争取让你理解其中的原理,至于后面你用什么工具来落地,那都是技术的层面了,好办。
要监控 Kubernetes,我们得先弄明白 Kubernetes 有哪些模块要监控,所以我们先来看一下 Kubernetes 的架构。

Kubernetes 架构

下面是 Kubernetes 的架构图,用户交互部分是 UI 和 CLI,这两个不需要监控,关键是 Control plane(控制面)和 Worker node(工作负载节点)。控制面的组件提供了管理和调度能力,如果控制面组件出了问题,我们就没法给 Kubernetes 下发指令了。工作负载节点运行了容器,以及管理这些容器的运行时引擎(图上的 Docker)、管理 Pod 的 Kubelet,以及转发规则的 Kube-Proxy。工作负载节点如果出问题,可能会直接影响业务流量,所以对这类节点的监控就显得更为重要了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

在云原生时代,Kubernetes Node组件的监控方法和关键指标至关重要。本文深入介绍了Kubernetes架构和监控重点,重点关注了Kubernetes工作负载节点的监控,包括容器负载和组件监控,特别是Kube-Proxy的监控方案。作者提到了Kube-Proxy提供的`/metrics`接口用来暴露监控数据,并演示了如何使用Categraf进行数据采集。此外,还介绍了如何使用Daemonset部署采集器以及相关的配置步骤。整体而言,本文以实际操作为主线,详细介绍了Kubernetes Node组件的监控方法和数据采集,对于需要深入了解Kubernetes监控的读者具有一定的参考价值。文章内容涵盖了Kubernetes监控的关键指标和监控方法,以及如何使用Categraf进行数据采集和配置Daemonset,为读者提供了全面的指导和实践操作。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《运维监控系统实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • Geek_1a3949
    尝试回答一下课后题: 使用group_left,为container_*添加kube_pod_labels标签 container_fs_writes_bytes_total * on(namespace, pod) group_left(label_region, label_dept) kube_pod_labels

    作者回复: 👍🏻

    2023-02-15归属地:上海
    3
  • 隆哥
    老师请教一下,我如何监控所有的pod,只要pod异常我就报警呢?

    作者回复: 用ksm采集数据,然后试试这个promql: (sum(kube_pod_container_status_last_terminated_reason{reason=~\"Error|OOMKilled\"}) by (namespace,pod,container) >0) * on(namespace,pod,container) sum(increase(kube_pod_container_status_restarts_total) >0) by(namespace,pod,container)

    2023-03-27归属地:北京
  • 隆哥
    老师请教一下,ServiceAccount在k8s高版本我是1.26.0版本,无法自动创建secret,如果是自己手动创建secret的话,是帐号密码形式的嘛,如果自己创建secret

    作者回复: apiVersion: v1 kind: Secret metadata: name: xxxxx namespace: "service account 所在的 namespace" annotations: kubernetes.io/service-account.name: "这里写 service account 的 name" type: kubernetes.io/service-account-token

    2023-03-06归属地:上海
  • 晴空万里
    公司准备搭建自己的运维监控系统 怎么把老师讲的这些结合起来?老师介绍了监控数据采集 存储 但是运维系统搭建 原型上 我感觉有点懵逼

    作者回复: 专栏更多的是介绍思路。先吸收。然后用开源的先搭建使用起来。再之后根据自己公司的情况演进

    2023-02-28归属地:广东
  • peter
    请教老师几个问题: Q1:Go程序指标只对Go程序有效吗? Kube-proxy的Go程序指标,是针对Go应用吗?如果不是Go应用呢?比如Java应用就不会有这个指标吧。 Q2:[1m]是什么意思? 多个指标后面有”[1m]”,比如:irate(container_network_transmit_bytes_total[1m]),是表示1分钟吗? Q3:监控大盘的配置是categraf内置的吗? 文中提到“Categraf 内置了 Kube-Proxy 的监控大盘; Categraf 内置了 Kubelet 的监控大盘;Categraf 也提供了容器的监控大盘。”点开链接后,是一个json格式的配置文件。请问:这些配置文件是categraf本身就有的吗? Q4:配置文件所在的github链接是专栏的吗? 问题三中提到的几个监控大盘,都对应一个github链接,https://github.com/flashcatcloud这个链接是本专栏自己的吗?还是一个开源项目?

    作者回复: 1,是 2,表示时间范围,前面的章节有介绍range query 3,我的意思是categraf代码仓库里提供了相关的大盘,所以称为内置,这些大盘导入夜莺就可以用😂 4,那是一个开源项目,借此机会介绍如何监控,并非是专门为专栏而生

    2023-02-16归属地:北京
  • StackOverflow
    在 k8s 1.24之后的版本,创建的 serviceaccount 没有自动生成 secret,需要手动创建一个
    2023-03-01归属地:上海
    1
    1
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部