「如何实现流动式软件发布」线上课堂开课啦,快来报名参与课堂抽奖吧~ 了解详情
写点什么

Prometheus 携手 Kubernetes 提升开发速度,加速攀登行业高峰

2020 年 3 月 09 日

Prometheus 携手 Kubernetes 提升开发速度,加速攀登行业高峰

Tom Wikie,现居伦敦。曾就职于 Citrix Systems;之后联合创办 Acunu,并出任 CTO;再后来在 Google 出任 Site Reliability Manager;现于 Weaveworks 任项目工程总监。本文是他在尝试将 Prometheus 与 Kubernetes 进行结合使用后发表的文章。


在伦敦那场 Meetup 上,我做过一个“Weaveworks 使用 Prometheus 来管理 Weave 云(Weave 云运行在 Kubernetes 集群上)”的演讲(PPT 分享链接)。在这篇帖子中,我会分享我们在过去 6 个月的开发过程的实践,同时也会分享一些很棒的工具,对 Weave 云进行弹性扩容。


Prometheus 并非很新的项目,最近社区内的一些成员也贡献了很多优秀的帖子:



背景

五月份,继第一个项目 Kubernetes 之后,CNCF(Cloud Native Computing Foundation)将 Prometheus 项目也收入囊中。在 Prometheus 发布第一版之后,一如 Björn Rabenstein(SoundCloud 核心开发人员)在 JaxEnter 上描述的那样:Prometheus 和 Kubernetes 有着同样的起源。


首先,他们都流着 Google 的血液:Kubernetes 起源于 Google 项目 Borg,Prometheus 起源于 Google 项目 Borgmon。但是它们两者之间还有一层更深的“羁绊”——Prometheus 有几个很关键的设计,可以使 Prometheus 成为最好的监控系统(针对你的基础设施和部署在 Kubernetes 上的应用来说)。


Pulling 和 Discovery

Prometheus 是一个基于 pull 的监控系统,主要的 Prometheus 服务器会从你的 service 发现和拉取参数。这个发现和拉取系统跟动态的云本地环境(比如 Kubernetes)十分匹配,在这个云本地环境,Prometheus 跟 Kubernetes 整合在一起来发现、列举你正在运行的 service。随着 service 的放大,Prometheus 开始自动从额外的 replicas 拉取参数。同样的道理,节点运行失败,然后 pod 在不同的节点上重新启动,Prometheus 会自动注意到,并且进行梳理。在我们的起步阶段,同样的 Prometheus 配置被用于我们的开发和产品环境,大大简化了测试。


标签

Prometheus 和 Kubernetes 中标签(键值对)的概念是一样的:用于在系统内挑选对象。Prometheus 用这些标签来识别时序数据,用一系列的匹配标签在查询语言(PromQL)中挑选时序数据。


Kubernetes 在很多地方都使用标签。比如,要挑选 Pod 来组成 service,或者启用更加先进的工作流,例如 canarying。通过分享这个普遍的概念,Prometheus 和 Kubernetes 结合可以为开发人员带来较低的认知负荷。


Exporters 和 Pod

Prometheus 的最佳实践就是本地指导你的 service(service 是 Kuberentes 的一个组件)。但是对于不是本地指导的 service 来说(比如 Memcached,Postgres 等等),有可能的话,还是使用 exporter 比较好。Exporter 是一个进程,跟你的 service 一起运行,将 service 的参数翻译成 Prometheus 能够理解的格式。


Kubernetes 有一个概念叫做 Pod(就是容器组),是一个便于管理和调度的单元。Pod 是一个包含了多个容器的容器组,共享网络 namespace,使用 loopback 定位(localhost/127.0.0.1)就可以进行互相定位。Pod 提供完美的抽象层,跟你想要监控的 service 结合一起部署 exporters。


Prometheus 和 Kubernetes:完美结合

Prometheus 部署在 Kubernetes 的监控有了上述几个特性之后,不仅用起来简单方便,而且连贯统一。


之后,我们还会再发布一些帖子,内容主要是在 Kubernetes 上部署 Prometheus 的一些经验和教训。我们会在帖子中具体描述我们是如何用 Prometheus 管理我们的 service 和基础设施,以及我们是如何使用 Prometheus 来加快开发进程。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/aaAj_MnhDJEn8isouKA48Q


2020 年 3 月 09 日 17:55177

评论

发布
暂无评论
发现更多内容

面试官问的那些Android原理你都懂吗?快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

部分简单网页的基础了解

Emotion

html html5 Html报文解析 内部样式、 CSS语法

开源即巅峰!阿里首次分享:Java架构师全栈“成长笔记”

Java架构师迁哥

DICOM--网关(路由器/适配器)

鸟哥

医学影像 DICOM PACS dicom4che DICOMWeb

灵魂拷问:我们该如何写一个适合自己的状态管理库?

尔达Erda

开源 云原生 前端 API 运维开发

阿里的架构师一致好评!IT界首版全栈架构师全栈“成长笔记”开源!

Java架构追梦

Java 阿里巴巴 架构 面试 成长笔记

共36万字!为上岸Alibaba,我把Github上Java面试题都整理了一遍

云流

Java 编程 程序员 架构 面试

爱了!阿里巴巴 Java 面试参考权威指南(泰山版)5月版开源

云流

Java 编程 程序员 架构 面试

mPaaS 月度小报 | CodeDay#6 成都站落幕,下一站北京;上新季:新容器、新官网、新视觉

蚂蚁集团移动开发平台 mPaaS

mPaaS 移动开发平台

渗透工程师必看-网络安全法条例-国家安全法介绍和案例

学神来啦

运维 黑客 安全 渗透

MySQL连接数管理

Simon

MySQL

2021年最新一线大厂Java基础到高级架构师全栈面试题总结(含答案)

Crud的程序员

Java spring 架构 编程语言 java面试

对EF Core进行扩展使支持批量操作/复杂查询

Spook

EF Core

自制深度学习照片数据集

re-执着

腾讯T4架构师:刷3遍以下面试题,你也能从小公司成功跳到大厂

程序员改bug

Java spring 程序员 面试 编程语言

这套获50w+星标的算法神仙文档,足你解决90%的对手,牛逼

云流

编程 程序员 架构 面试

手把手教你实现聚光灯效果

森友小锘

前端 可视化 智能灯控 数字孪生

数据安全法下,企业如何平衡数据安全合规与业务性能?

腾讯安全云鼎实验室

数据安全 数据安全法

监测生命体征、活动水平的可穿戴电子产品设计方案

不脱发的程序猿

物联网 ADI 可穿戴电子产品设计方案 监测生命体征、活动水平 智能传感器

腾讯上线零点巡航,用Java手撕一个人脸识别系统

北游学Java

Java 腾讯 人脸识别

字节跳动有状态应用云原生实践

火山引擎开发者社区

云原生 后端

linux网络编程—7层网络以及5种Linux IO模型以及相应IO基础

Linux服务器开发

网络编程 后端开发 Linux服务器开发 网络模型 IO模型

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

云流

Java 编程 程序员 架构 面试

Hive学习笔记(一)

五分钟学大数据

hive 7月日更

YOLOV1解读

re-执着

CDH 安装搭建(二)

大数据技术指南

CDH 7月日更

iOS端屏幕录制开发指南

anyRTC开发者

音视频 WebRTC ios开发 音视频开发 屏幕录制

银行4.0时代的营销与风控之路

索信达控股

金融科技 数字化转型 银行数字化转型 营销数字化 银行大数据

绝了!字节内部最新产出LeetCode刷题笔记, 堪称完美

Crud的程序员

面试 编程语言 java编程 数据结构与算法

面试前的必刷题汇总:多线程+JVM+微服务+Redis+MySQL

程序员改bug

Java spring 架构 编程语言

数据归档 - 冷热数据处理大师

趣链科技

数据处理 区块链+

Prometheus 携手 Kubernetes 提升开发速度,加速攀登行业高峰-InfoQ