在本文中,咱们将装置一个 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 还提供了所有所需的可视性,在必要的状况下,能够不便地进行故障排除。