一个计算机技术爱好者与学习者

0%

前言

《Kubernetes Operator》一文中学习了Operator的基础,《Prometheus Blackbox exporter》一文中学习了blackbox exporter的安装配置。

而Prometheus Operator,顾名思义,是负责K8S中自动化管理Prometheus的Custom Controller。更多内容,参考coreos/prometheus-operator

本文中,我们研究的问题是:怎样利用Prometheus Operator,在Kubernetes集群中安装部署Prometheus,并且添加Blackbox exporter组件?

阅读全文 »

白盒监控和黑盒监控

我们监控主机的资源用量、容器的运行状态、数据库中间件的运行数据。这些都是支持业务和服务的基础设施,通过白盒能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题,从而对潜在的不确定因素进行优化。而从完整的监控逻辑的角度,除了大量的应用白盒监控以外,还应该添加适当的黑盒监控。黑盒监控即以用户的身份测试服务的外部可见性,常见的黑盒监控包括HTTP探针、TCP探针等用于检测站点或者服务的可访问性,以及访问效率等。

黑盒监控相较于白盒监控最大的不同在于黑盒监控是以故障为导向当故障发生时,黑盒监控能快速发现故障,而白盒监控则侧重于主动发现或者预测潜在的问题。一个完善的监控目标是要能够从白盒的角度发现潜在问题,能够在黑盒的角度快速发现已经发生的问题。

Prometheus Blackbox exporter允许通过HTTP,HTTPS,DNS,TCP和ICMP对端点进行黑盒探测。

本文中,我们会安装blackbox exporter,并且使用http探针对一些接口进行探活。

参考文档:

阅读全文 »

Kubernetes Operator是啥?

Operators are software extensions to Kubernetes that make use of custom resources to manage applications and their components. Operators follow Kubernetes principles, notably the control loop.

Operator 是 Kubernetes 的扩展软件,通过自定义资源,管理应用及其组件。 Operator 遵循 Kubernetes 的理念,特别是在控制回路方面。

Kubernetes自定义资源包括Custom resources 和 Custom controllers。

Operator 模式旨在捕获(正在管理一个或一组服务的)运维人员的关键目标。负责特定应用和service的运维人员,在系统应该如何运行、如何部署以及出现问题时如何处理等方面有深入的了解。
在 Kubernetes 上运行工作负载的人们都喜欢通过自动化来处理重复的任务。Operator 模式会封装我们编写的(Kubernetes 本身提供功能以外的)任务自动化代码。

Operator可以自动化的事情包括:

  • 按需部署应用
  • 获取/还原应用状态的备份
  • 处理应用代码的升级以及相关改动。例如,数据库 schema 或额外的配置设置
  • 发布一个 service,要求不支持 Kubernetes API 的应用也能发现它
  • 模拟整个或部分集群中的故障以测试其稳定性
  • 在没有内部成员选举程序的情况下,为分布式应用选择首领角色

简单来说,Kubernetes实际是期望状态管理器,如果Kubernetes本身提供的功能无法达到期望状态,特别是对于有状态应用,那么就需要手动处理,而Operator可以使这种处理自动化。

更多内容,参考Operator 模式

本文中,将会学习编写一个Operator,并应用到k8s集群。

阅读全文 »

PromQL简介

Prometheus提供了一种称为PromQL(Prometheus查询语言)的功能查询语言,使用户可以实时选择和汇总时间序列数据。表达式的结果既可以显示为图形,也可以在Prometheus的表达式浏览器中显示为表格数据,也可以由外部系统通过HTTP API使用。

参考文档:

阅读全文 »