写点什么

无需 kubectl!快速使用 Prometheus 监控 Etcd

2020 年 9 月 30 日

无需kubectl!快速使用Prometheus监控Etcd

简介


本教程是「Etcd超全解:原理阐释及部署设置的最佳实践」的后续文章。在本文中,我们将安装一个 Etcd 集群并使用 Prometheus 和 Grafana 配置监控,以上这些操作我们都通过 Rancher 进行。


我们将看到在不需要依赖的情况下充分利用 Rancher 的应用商店实现这一目标是如此容易。在本文中,我们将 不需要


  • 为运行 kubectl 专门配置交互框,并指向 Kubernetes 集群

  • kubectl 的使用知识,因为我们可以使用 Rancher UI 完成这一切

  • 安装/配置 Helm binary


Demo 的前期准备


你将需要:


  • 一个 Google 云平台的账号(免费的即可)。任意其他云也可以。

  • Rancher v2.4.7(撰写本文时的最新版本)

  • 运行在 GKE(版本为 1.16.3-gke.1)上的 Kubernetes 集群(在 EKS 或 AKS 上运行也可以)


启动一个 Rancher 实例


首先,启动你的 Rancher 实例。你可以访问以下链接查看快速启动指南:


https://www.rancher.cn/quick-start/


使用 Rancher 部署一个 GKE 集群


使用 Rancher 来设置和配置一个 Kubernetes 集群,你可以查看相关文档:


https://docs.rancher.cn/docs/rancher2/cluster-provisioning/production/_index/


部署 etcd、Prometheus 和 Grafana


我们可以利用 Rancher 的应用商店来安装所有的软件。应用商店是 Helm chart 的集合,它可以让用户能够轻松地重复部署这些应用程序。


当我们的集群启动并运行后,让我们选择为其创建的 Default 项目,在 Apps 选项卡中,点击【Launch】。


我们要安装的第一个应用是etcd-operator。保留它预先填充的所有默认值,并确保你也启用了 etcd 集群的创建(为了 demo 的简单性,我们取消选择etcd Backup Operatoretcd Restore Operator)。


Operator 的作用是观察、分析和行动。它使用 Kubernetes API 来观察当前集群的状态。如果运行状态与所需状态之间有任何差异,它就会发现并修复它们。


例如,假设我们正在运行一个有三个成员的 etcd 集群。如果发生了一些事情,其中一个成员倒下了,Operator 会观察到这一点。它根据所需的状态做一个差异,然后根据差异恢复丢失的成员。于是,我们在没有人为干预的情况下拥有了一个健康的集群。



要安装 Prometheus 和 Grafana,请激活 Rancher 中集成的集群监控支持。从 【全局】视图中,选择你要配置的集群,并选择【工具】→【监控】以启用它。为了允许对 Grafana 的更改持久化,请确保为 Grafana 和 Prometheus 启用持久化存储。如果你没有设置任何持久化存储,可以了解一下Longhorn,这是 Kubernetes 的云端分布式块存储。



当一切都在安装时,你可以探索一些选项卡。检查工作负载(Pods、Deployments、DaemonSet)或创建的服务的进度。


让我们连接到一个 etcd Pod,以便使用一些基本的 etcdctl 命令(更多细节可以查阅之前的文章)。选择一个 Pod,点击它的垂直省略号(3 个竖点)菜单按钮,然后选择 Execute Shell




配置 Prometheus 以及 Grafana


监控 etcd 集群的最佳和最简单的方法之一是使用 Prometheus 和 Grafana。让我们登录到 Grafana——在集群概览中点击任意 Grafana 图标即可登录。



Grafana 已经预先配置了 Prometheus 作为数据源,包含几个可视化集群状态的 dashboard。


登录 Grafana 为 etcd 添加一个仪表盘。默认的用户名和密码都是 “admin”(第一次登录时,会提示你更改)。然后用 id3070导入默认的 etcd 仪表盘模板。点击加载,然后剩下的步骤就是选择 Prometheus 数据源。




我们已经成功导入了 dashboard,我们可以看到各种图表,但是没有数据显示。为什么呢?我们已经运行了 Prometheus,并且 Grafana 也与之集成。可问题是我们没有告诉 Prometheus 去收集与我们 etcd 集群相关的目标。


让我们回到 Rancher 中去解决这个问题。进入系统项目,点击【资源】标签下的导入 YAML。然后将以下资源导入到cattle-prometheus命名空间中:


apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata:  labels:    source: rancher-monitoring  name: etcd  namespace: cattle-prometheusspec:  endpoints:    - port: client  namespaceSelector:    matchNames:      - etcd-operator  selector:    matchLabels:      app: etcd
复制代码


我们如何验证我们的新配置是有效的,并且确保 Prometheus 正在执行它的工作呢?我们需要对其进行检查,请点击系统项目的 Apps 选项卡,并点击cluster-monitoring应用程序中的第二个/index/.html链接。



这将打开 Prometheus web UI 界面。在界面中,进入 Graphs 并手动执行一些查询,如果有数据显示,那么就说明我们的设置已经完成。



我们需要做的最后一件事是检查 Grafana 并且查看我们有相关的数据图表。



卸载应用程序和集群


要清理我们在本文中使用的资源,我们只需要在全局层级中,选择我们的集群并点击【Delete】。


通过这样做,除了为 Prometheus 创建的持久化存储外,所有的东西都将被删除。我们需要从我们的云提供商控制台来处理这个问题。


当然,我们可以只从 Rancher 中执行清理,但步骤略有不同。


  • disable monitoring:在全局层级,导航到集群,选择工具→监控并点击【Disable】按钮。

  • 移除持久化存储:进入 “系统项目"→"资源"→"工作负载"→"卷”;选择你的卷并单击 “删除”。

  • 删除集群:在全局层级选择集群并删除它。


总结


在这个 demo 中,我们看到了如何使用 Rancher 安装 Etcd(使用 etcd-operator),Prometheus 和 Grafana。所有的集成都是开箱即用的:我们只需要添加一些东西就可以完成所有的配置。Rancher 还提供了所有所需的可视性,在必要的情况下,可以方便地进行故障排除。


本文转载自公众号 RancherLabs(ID:RancherLabs)。


原文链接


无需kubectl!快速使用Prometheus监控Etcd


2020 年 9 月 30 日 10:00620

评论

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

CECBC区块链专委会副主任吴桐主讲光大证券法定数字货币讲座

CECBC区块链专委会

区块链 数字货币

LeetCode题解:49. 字母异位词分组,数组计数+哈希表,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

架构师训练营第 1 期 - 第 3 周 - 作业

wgl

极客大学架构师训练营

spring-boot-route(五)整合Swagger生成接口文档

Java旅途

Java springboot swagger

架构师训练营第一期-第三周学习总结

卖猪肉的大叔

极客大学架构师训练营

团队出游筹备清单

boshi

团队建设 团队文化

一个草根的日常杂碎(10月2日)

刘新吾

随笔杂谈 生活记录 社会百态

理想的程序员

极客思享

Serverless与传统Web框架的迁移

刘宇

Serverless

区块链与分布式存储构建数据要素市场基础设施

CECBC区块链专委会

区块链 分布式

架构师训练营 - 学习笔记 - 第三周

徐时良

极客大学架构师训练营

【架构师训练营 1 期】第三周学习总结

诺乐

让人一夜暴富的区块链,新时代革命的开始

CECBC区块链专委会

区块链 时代革命

第三周 作业一

mm马

极客大学架构师训练营

一个草根的日常杂碎(10月3日)

刘新吾

随笔杂谈 生活记录 社会百态

Serverless Frist 的渐进式应用开发框架 Malagu

木香丘

开源 Serverless 云原生 Malagu Framework

架构第三周作业

Geek_Gu

极客大学架构师训练营

架构师训练营第一期 - 第三周课后作业

卖猪肉的大叔

BigDecimal是如何搞定精度缺失的

hasWhere

架构师训练营第 1 期 - 第 3 周 - 学习总结

wgl

极客大学架构师训练营

Week_03 学习总结

golangboy

极客大学架构师训练营

架构师训练营第三周学习笔记

一马行千里

学习 极客大学架构师训练营

Appium之「元素定位和UiAutomator表达式」

清菡

VUE第一个项目怎么读懂

MySQL从删库到跑路

Java html5 Vue 前端 vux

架构师训练营 Week4 - 课后作业

缓存 自动化 异步 集群 冗余

【架构师训练营 1 期】第三周作业

诺乐

给计算机专业学生的几条建议

MySQL从删库到跑路

GitHub Linux vmware 大学生日常 计算机

一个草根的日常杂碎(10月4日)

刘新吾

随笔杂谈 生活记录 社会百态

架构第三周总结

Geek_Gu

小伙伴问我:如何搭建Maven私服?我连夜肝了这篇实战文章!!

冰河

maven 私服 仓库

架构师训练营 - 命题作业 - 第三周

徐时良

极客大学架构师训练营

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

无需kubectl!快速使用Prometheus监控Etcd-InfoQ