关于后端:无需kubectl快速使用Prometheus监控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 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还提供了所有所需的可视性,在必要的状况下,能够不便地进行故障排除。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理