無需kubectl!快速使用Prometheus監控Etcd

在本文中,咱們將安裝一個Etcd集羣並使用Prometheus和Grafana配置監控,以上這些操做咱們都經過Rancher進行。html

咱們將看到在不須要依賴的狀況下充分利用Rancher的應用商店實現這一目標是如此容易。在本文中,咱們將不須要web

  • 爲運行kubectl專門配置交互框,並指向Kubernetes集羣
  • kubectl的使用知識,由於咱們可使用Rancher UI完成這一切
  • 安裝/配置 Helm binary

Demo的前期準備

你將須要:api

  • 一個Google雲平臺的帳號(免費的便可)。任意其餘雲也能夠。
  • Rancher v2.4.7(撰寫本文時的最新版本)
  • 運行在GKE(版本爲1.16.3-gke.1)上的Kubernetes集羣(在EKS或AKS上運行也能夠)

啓動一個Rancher實例app

首先,啓動你的Rancher實例。你能夠訪問如下連接查看快速啓動指南:分佈式

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

使用Rancher部署一個GKE集羣ui

使用Rancher來設置和配置一個Kubernetes集羣,你能夠查看相關文檔:spa

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

部署etcd、Prometheus和Grafanahtm

咱們能夠利用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還提供了全部所需的可視性,在必要的狀況下,能夠方便地進行故障排除。

相關文章
相關標籤/搜索