在本文中,咱們將安裝一個Etcd集羣並使用Prometheus和Grafana配置監控,以上這些操做咱們都經過Rancher進行。html
咱們將看到在不須要依賴的狀況下充分利用Rancher的應用商店實現這一目標是如此容易。在本文中,咱們將不須要:web
你將須要:api
啓動一個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。
監控 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中執行清理,但步驟略有不一樣。
在這個demo中,咱們看到了如何使用Rancher安裝Etcd(使用etcd-operator),Prometheus和Grafana。全部的集成都是開箱即用的:咱們只須要添加一些東西就能夠完成全部的配置。Rancher還提供了全部所需的可視性,在必要的狀況下,能夠方便地進行故障排除。