深入剖析Kubernetes
张磊
Kubernetes社区资深成员与项目维护者
立即订阅
22730 人已学习
课程目录
已完结 56 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (5讲)
开篇词 | 打通“容器技术”的任督二脉
免费
01 | 预习篇 · 小鲸鱼大事记(一):初出茅庐
02 | 预习篇 · 小鲸鱼大事记(二):崭露头角
03 | 预习篇 · 小鲸鱼大事记(三):群雄并起
04 | 预习篇 · 小鲸鱼大事记(四):尘埃落定
容器技术概念入门篇 (5讲)
05 | 白话容器基础(一):从进程说开去
06 | 白话容器基础(二):隔离与限制
07 | 白话容器基础(三):深入理解容器镜像
08 | 白话容器基础(四):重新认识Docker容器
09 | 从容器到容器云:谈谈Kubernetes的本质
Kubernetes集群搭建与实践 (3讲)
10 | Kubernetes一键部署利器:kubeadm
11 | 从0到1:搭建一个完整的Kubernetes集群
12 | 牛刀小试:我的第一个容器化应用
容器编排与Kubernetes作业管理 (15讲)
13 | 为什么我们需要Pod?
14 | 深入解析Pod对象(一):基本概念
15 | 深入解析Pod对象(二):使用进阶
16 | 编排其实很简单:谈谈“控制器”模型
17 | 经典PaaS的记忆:作业副本与水平扩展
18 | 深入理解StatefulSet(一):拓扑状态
19 | 深入理解StatefulSet(二):存储状态
20 | 深入理解StatefulSet(三):有状态应用实践
21 | 容器化守护进程的意义:DaemonSet
22 | 撬动离线业务:Job与CronJob
23 | 声明式API与Kubernetes编程范式
24 | 深入解析声明式API(一):API对象的奥秘
25 | 深入解析声明式API(二):编写自定义控制器
26 | 基于角色的权限控制:RBAC
27 | 聪明的微创新:Operator工作原理解读
Kubernetes容器持久化存储 (4讲)
28 | PV、PVC、StorageClass,这些到底在说啥?
29 | PV、PVC体系是不是多此一举?从本地持久化卷谈起
30 | 编写自己的存储插件:FlexVolume与CSI
31 | 容器存储实践:CSI插件编写指南
Kubernetes容器网络 (8讲)
32 | 浅谈容器网络
33 | 深入解析容器跨主机网络
34 | Kubernetes网络模型与CNI网络插件
35 | 解读Kubernetes三层网络方案
36 | 为什么说Kubernetes只有soft multi-tenancy?
37 | 找到容器不容易:Service、DNS与服务发现
38 | 从外界连通Service与Service调试“三板斧”
39 | 谈谈Service与Ingress
Kubernetes作业调度与资源管理 (5讲)
40 | Kubernetes的资源模型与资源管理
41 | 十字路口上的Kubernetes默认调度器
42 | Kubernetes默认调度器调度策略解析
43 | Kubernetes默认调度器的优先级与抢占机制
44 | Kubernetes GPU管理与Device Plugin机制
Kubernetes容器运行时 (3讲)
45 | 幕后英雄:SIG-Node与CRI
46 | 解读 CRI 与 容器运行时
47 | 绝不仅仅是安全:Kata Containers 与 gVisor
Kubernetes容器监控与日志 (3讲)
48 | Prometheus、Metrics Server与Kubernetes监控体系
49 | Custom Metrics: 让Auto Scaling不再“食之无味”
50 | 让日志无处可逃:容器日志收集与管理
再谈开源与社区 (1讲)
51 | 谈谈Kubernetes开源社区和未来走向
答疑文章 (1讲)
52 | 答疑:在问题中解决问题,在思考中产生思考
特别放送 (1讲)
特别放送 | 2019 年,容器技术生态会发生些什么?
结束语 (1讲)
结束语 | Kubernetes:赢开发者赢天下
特别放送 | 云原生应用管理系列 (1讲)
基于 Kubernetes 的云原生应用管理,到底应该怎么做?
深入剖析Kubernetes
登录|注册

48 | Prometheus、Metrics Server与Kubernetes监控体系

张磊 2018-12-12
你好,我是张磊。今天我和你分享的主题是:Prometheus、Metrics Server 与 Kubernetes 监控体系。
通过前面的文章,我已经和你分享过了 Kubernetes 的核心架构,编排概念,以及具体的设计与实现。接下来,我会用 3 篇文章,为你介绍 Kubernetes 监控相关的一些核心技术。
首先需要明确指出的是,Kubernetes 项目的监控体系曾经非常繁杂,在社区中也有很多方案。但这套体系发展到今天,已经完全演变成了以 Prometheus 项目为核心的一套统一的方案。
在这里,可能有一些同学对 Prometheus 项目还太不熟悉。所以,我先来简单为你介绍一下这个项目。
实际上,Prometheus 项目是当年 CNCF 基金会起家时的“第二把交椅”。而这个项目发展到今天,已经全面接管了 Kubernetes 项目的整套监控体系。
比较有意思的是,Prometheus 项目与 Kubernetes 项目一样,也来自于 Google 的 Borg 体系,它的原型系统,叫作 BorgMon,是一个几乎与 Borg 同时诞生的内部监控系统。而 Prometheus 项目的发起原因也跟 Kubernetes 很类似,都是希望通过对用户更友好的方式,将 Google 内部系统的设计理念,传递给用户和开发者。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《深入剖析Kubernetes》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • Eurica
    1.老师能讲下prometheus的部署方式吗?比如helm部署,operator部署,过程中具体发生了什么?
    2.能否解析下prometheus server配置文件中,jobs的写法,alert rule的写法?还有alertmanager的配置。感谢

    作者回复: 篇幅所限,prometheus 项目具体的玩法不进行详细展开了

    2018-12-12
    14
  • sun
    Pull和Push两种模式的区别非常有意思,Prometheus非常大胆的采用了pull的模式,但是仔细思考后就会觉得非常适合监控的场景。

    Pull模式的特点
    1. 被监控方提供一个server,并负责维护
    2. 监控方控制采集频率

    第一点其实对用户来说要求过高了,但是好处很多,比如pull 不到数据本身就说明了节点存在故障;又比如监控指标自然而言由用户自己维护,使得标准化很简单。
    第二点其实更为重要,那就是监控系统对metric采集的统一和稳定有了可靠的保证,对于数据量大的情况下很重要。


    缺点也很明显,用户不知道你什么时候来pull一下,数据维护多久更新也不好控制,容易造成一些信息的丢失和不准确。

    当把这些优缺点权衡过后就会发现,纯监控的场景确实是适合pull的
    2018-12-22
    6
  • Goswing
    Push模式的优点是在正常情况下数据的延迟可以做到更低,也就是能更快的获取metrics并发现问题,而pull模式一般不会设定很短的轮询时间,所以延迟更高一些。

    Push模式的缺点我能想到以下几个:
    1 增加了服务的实现复杂度(比如推送错误处理等);
    2 不利于平行扩展;
    3 不支持自定义metrics采集策略,比如高峰期减少采集频率。
    2018-12-13
    4
  • CalvinXiao
    push 方式针对没有 http 接口应用,例如 worker,可以设定每 5 秒上报处理了多少个 job,平均每个 job 耗时多少,有多少个错误等数据,需要配合 push gateway 使用。

    当然,也可以自己写一个 exporter 通过查询日志来得到这些数据,然后用 pull 方式来获取。push 方式可以联想到 APM。
    2018-12-13
    4
  • 李昊达
    有一个问题,就是metric server是怎么注册给metrics.k8s.io/v1beta1这个api的,或者说当client访问metrics.k8s.io/v1beta1这个api时,aggregator如何知道转发给哪个后端?
    2019-04-24
    2
  • 狮锅艺
    文中缺少的链接:https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh
    2019-04-17
    2
  • 我要收购腾讯
    prometheus 的pull模式搭配自己的kubernetes SD, 加上prometheus-operator的service monitor的抽象,可以很大程度的简化配置的复杂程度
    2018-12-12
    2
  • kindule
    你好,为什么node_exporter要单独分为一类而不是算作core metrics
    2019-03-12
    1
  • Goteswille
    坚持、打卡
    2018-12-17
    1
  • LEON
    老师我一直对Prometheus和SNMP server有什么区别搞不明白。这俩是一个东西吗?他们有什么具体的区别?是不是可以理解为SNMP server是Prometheus的一个子集?
    2018-12-12
    1
  • 拉欧
    pull是拉动作,监听者主动调用被监听者的接口
    push是推动作,被监听者主动上报,监听者被动采集
    拉动作有助于监听者自己控制频率和采样量,缺点是需要掌握所有被监听者的地址和端口,也就是要有注册中心;
    推动作有利于被监听者自己控制上报数量和频率,但有可能对监听者构成额外的压力,同时有信息丢失的风险
    2019-11-30
  • clivexiang
    pull push 作用都是在收集被监控对象的数据
     
    pull 拉取被监控对象的数据
            收集 想要的数据 监控汇总 服务器实时的运行状况
    到被监控的对象多 ,需要的服务器的资源大 如cpu,内存
    push 主动推送数据,如服务器异常, 或主动收集想要的数据
    方便在定制消息的推送
          异常错误,可以及时上报
    2019-09-21
  • Rodinian
    按照课里的方式,基于kubeadm部署了k8s集群,但是metrics server总是没办法正常工作。unable to fetch node metrics for node "node-hostname": no metrics known for node 直接在宿主机去ping都是能ping通的
    2019-05-17
  • 教你做喵!
    kube-up.sh 脚本的链接没设置好
    2019-02-21
  • 初学者
    老师,prometheus server pull 的core metrics信息是从metric server拿到,还是从kubelet的接口拿?还有metric server 中存储历史监控数据吗?
    2018-12-21
  • LEON
    老师我一直没明白Metrics server和SNMP server干的事情是一样的吗?两者具体有什么区别?望解答,谢谢
    2018-12-12
收起评论
16
返回
顶部