容器監控-Prometheus:2. Prometheus部署前奏-Helm&&Operator

容器監控-Prometheus:2. Prometheus部署前奏-Helm&&Operator

部署方案選擇

  • 手動部署

    把每個組件配置好,必須瞭解Prometheus每個組件,如何協同工作,高可用,如何做配置複雜度高

  • Helm

    類似於centos 的yum,是kubernetes的文件包管理工具。Helm 部署Prometheus要比手動部署簡單,它會把Prometheus和相關組件都部署起來,跑在k8s裏面。但是部署完有些工作,高可用、額外組件部署需要自己處理。

  • Prometheus Operator

    更深入層面做了Prometheus部署管理工作。利用了kubernetes的Operator機制,本質是利用kubernetes GRD加控制器。

  • Helm+Prometheus Operator

    非常優雅。使用這個兩個東西必須要付出一些代價就先把這個兩個東西搞清楚。

Helm

Helm簡介

  • 類似Ubuntu的apt-get 、centos 的yum,helm是kubernetes的文件包管理工具,一條命令就可以完成,軟件包的安裝卸載。

  • kubernetes的文件包管理

    提供了kubernetes 軟件包的部署、刪除、升級、回滾各種強大的功能。

  • 一個包一Chart(一個目錄)

    kubernetes的軟件包是一個Chart本質上就是一個目錄,打成一個tar.gz存儲起來。發佈者可以打包應用管理應用的依賴關係,讓別人使用起來更加簡單。

    使用Helm就不用關心編寫kubernetes的配置,可以通過helm一條命令下載,在kubernetes把你要的應用安裝部署好。

Helm Architecture

  1. 首先有Helm客戶端,跟yum一樣二進制文件,

  2. 然後chart Files 是一個目錄,裏面存儲了按照一定的目錄結構和約定的名字,當然包括了kubernetes資源相關的yaml文件。

  3. helm 存放在哪裏對於本地來說這些東西存放在一個本地倉庫,同樣遠端有一個storage負責存儲各種各樣Helm軟件包,本質也是一個web服務器,可以去下載軟件包,並且提供了chart包的文件清單。共客戶端查詢,跟yu m源類似。helm也可以同時使用管理多個不同repod。

4. Tiller 是helm命令的服務端。用來接收helm的請求,並且對應的chart去生成kubernetes的配置文件,然後提交給你kubernetes去創建應用。也就是helm跟kubernetes之間的橋樑。

image-20200204151912106

Operator

Operator實現原理

引:

其實Operator不太好理解,字面上的意思是操作者

前面我們學會很多資源類型比如pod、deolyment、service、daemonSet都是kubernetes預先定義好的,

kubernetes有自己的控制器管理他們。控制器的本質是代碼循環,不斷去看部署預期的狀態與真實狀態的差別,並努力讓他保持一致。

控制器解釋

​ 比如一個deolyment定義的實例數是3,現在只有1,控制器會再啓動兩個實例,達到一致

Kubernetes1.7以後就支持自定義資源類型(CRD),Operator就是利用Kubernetes 的CRD

  • 自定義資源類型(CRD)+自定義控制器 去實現操作者的能力。

比如:

apiVersion: "etcd.database.coreos.com/v1beta2"
kind: "EtcdCluster"
metadata:
  name: "example-etcd-cluster"
  namespace: kubesphere-system
spec:
  size: 3
  version: "3.2.13"

自定義一個類型是EtcdCluster,然後再開發一個控制器,控制器的循環代碼裏面就可以拿到EtcdCluster的配置,通過調用kubernetes接口去實現一個預期的EtcdCluster集羣創建的一個過程。

Pod 的創建和Pod的配置都是在自定義控制器裏面完成的。所以Operator也能勝任類似於StatefulSet的工作,並且它是針對特定的服務。會比StatefulSet更加優雅的完成工作。不研究那麼深,如何開發自定義控制器,知道原理就OK。

發佈了33 篇原創文章 · 獲贊 20 · 訪問量 2900
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章