在本文中,我们将安装一个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 Operator和etcd 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/v1
kind: ServiceMonitor
metadata:
labels:
source: rancher-monitoring
name: etcd
namespace: cattle-prometheus
spec:
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还提供了所有所需的可视性,在必要的情况下,可以方便地进行故障排除。

无需kubectl!快速使用Prometheus监控Etcd的更多相关文章

  1. 基于k8s集群部署prometheus监控etcd

    目录 基于k8s集群部署prometheus监控etcd 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署prometheus监控 ...

  2. 如何快速部署 Prometheus?- 每天5分钟玩转 Docker 容器技术(85)

    上一节介绍了 Prometheus 的核心,多维数据模型.本节演示如何快速搭建 Prometheus 监控系统. 环境说明 我们将通过 Prometheus 监控两台 Docker Host:192. ...

  3. 如何优雅地使用云原生 Prometheus 监控集群

    作者陈凯烨,腾讯云前端开发工程师.负责 TKE 集群,弹性集群和云原生监控等模块控制台开发. 概述 Prometheus 是一套开源的系统监控报警框架.2016 年,Prometheus 正式加入 C ...

  4. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  5. Kubernetes学习之路(二十四)之Prometheus监控

    目录 1.Prometheus概述 2.Prometheus部署 2.1.创建名称空间prom 2.2.部署node_exporter 2.3.部署prometheus-server 2.4.部署ku ...

  6. Prometheus 监控领域最锋利的“瑞士军刀”

    原文:https://mp.weixin.qq.com/s/Cujn6_4w8ZcXCOWpoAStvQ 一.Kubernetes 容器监控的标配—Prometheus 1.简介 Prometheus ...

  7. 03 . Prometheus监控容器和HTTP探针应用

    Eeporter是什么及来源? 是什么? 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如下所示,Prom ...

  8. Prometheus监控k8s企业级应用

    Prometheus架构图 常见的镜像 pod 备注 kube-state-metric 用来收集K8S基本状态信息的监控代理 node-exporter 专门用来收集K8S运算节点基础信息,需要部署 ...

  9. 第15章: Prometheus监控Kubernetes资源与应用

    Prometheus监控Kubernetes资源与应用 目录 1 监控方案 2 2 监控指标 4 3 实现思路 4 4 在K8S中部署Prometheus 4 5 在K8S中部署Grafana与可视化 ...

随机推荐

  1. 结构感知图像修复:ICCV2019论文解析

    结构感知图像修复:ICCV2019论文解析 StructureFlow: Image Inpainting via Structure-aware Appearance Flow 论文链接: http ...

  2. Auto ML自动调参

    Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...

  3. Bayer滤镜转换颜色方案

    Bayer滤镜如何转换颜色? Bayer模式是颜色模式,被广泛应用于CCD和CMOS摄像头.相机使用了拜耳滤镜,分别过滤得到红绿蓝三种颜色.既然要得到的是红绿蓝频段光线的强度,要通过的就是红绿蓝光,就 ...

  4. python工业互联网应用实战18—前后端分离模式之jquery vs vue

    前面我们分三章来说明了使用django template与jquery的差别,通过jquery如何来实现前后端的分离,同时再9章节使用vue.js 我们浅尝辄止的介绍了JQuery到vue的切换,由于 ...

  5. Linux学习笔记:用户与用户组

    基本概念 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户 也就是说任何需要使用操作系统的用户,都 ...

  6. 『言善信』Fiddler工具 — 10、Fiddler自动响应器(AutoResponder)的应用

    目录 1.图片重定向 2.URL重定向 3.本地调试js文件 4.模拟Mock接口测试 5.综合练习 6.总结 介绍几个Fiddler自动响应器(AutoResponder)应用场景: 场景一:生产环 ...

  7. 五、部署LNMP环境(linux + nginx + mysql + php)

    装包(nginx.数据库.php.php调用)---------起服务-----权限   装包: yum -y install gcc openssl-devel pcre-devel zlib-de ...

  8. 【NX二次开发】获取对象边界包容盒的三个函数UF_MODL_ask_bounding_box

    今天看到胡工对bounding_box的分享,我也来测试一番(原帖地址:https://www.ugapi.com/thread-10287.html) 获取对象的边界盒子的三个函数: 1 UF_MO ...

  9. ipconfig提示不是内部或外部命令

    昨天因为公司断网,重新连上之后ip地址变了,于是就想看看现在的ip是什么 输入ipconfig,回车 提示不是外部和内部命令,是因为系统在本路径下未找到ipconfig.exe系统,所以无法识别ipc ...

  10. 【Java】Debug断点调试常用技巧

    Debug操作技巧 Show Execution Point 将光标回到当前断点停顿的地方 Step Over 执行当前行代码,并将运行进度跳转到下一行. Step Into 进入到当前代码行的方法内 ...