K8s Operator

以 Prometheus Operator 為例,簡述 Operator 由 CRD 與 Controller 組成以及 Controller 的運作。

發佈 ~1 分鐘 #K8s

問題:Prometheus 裡的 operator 是幹啥用的?

Operator = CRD + Controller

  • 這邊指的是定義 CR 的宣告
    [你安裝 Helm Chart]
           │
           ├──→ 建立 CRD 規格(由 Operator 專案提供)
           │       └── e.g. Prometheus, ServiceMonitor, etc.
           │
    [你寫入 CR 的 instance]
           └──→ Operator controller 監聽 instance
                    └── 生成 Prometheus StatefulSet, ConfigMap, etc.
  • Controller 負責監聽 CR,來將對應的 CR 調整成與設定檔相同的樣子

K8s Controller