事件監控是Kubernetes中的另一種監控方式,可以彌補資源監控在實時性、准確性和場景上的缺欠。Kubernetes的架構設計是基於狀態機的,不同的狀態之間進行轉換則會生成相應的事件,正常的狀態之間轉換會生成Normal等級的事件,正常狀態與異常狀態之間的轉換會生成Warning等級的事件。開發者可以通過獲取事件,實時診斷集群的異常與問題。
背景信息
kube-eventer是阿里雲容器服務維護的開源Kubernetes事件離線工具,可以將集群的事件離線到釘釘、SLS等系統,並提供不同等級的過濾條件,實現事件的實時采集、定向告警、異步歸檔。更多內容請參見kube-eventer。
通過以下三種場景為您介紹事件監控。
場景1:使用釘釘實現Kubernetes監控告警
使用釘釘機器人監控並告警Kubernetes的事件是一個非常典型的ChatOps實現。具體的操作步驟如下:
- 單擊釘釘群右上角
圖標,進入群設置頁面。
- 單擊群機器人,進入群機器人頁面,選擇需要添加的機器人。此處選擇自定義機器人。
- 在機器人詳情頁面,單擊添加,進入添加機器人頁面。
- 根據如下信息配置群機器人后,單擊完成添加。
配置 |
說明 |
編輯頭像 |
(可選)為群機器人設置頭像。 |
機器人名字 |
添加的機器人名稱。 |
添加到群組 |
添加機器人的群組。 |
是否開啟Outgoing機制 |
(可選)通過@群機器人,將消息發送到指定外部服務,還可以將外部服務的響應結果返回到群組。
|
POST 地址 |
接收消息的HTTP服務地址。
說明 當選擇開啟Outgoing機制時,此項可配置。
|
Token |
用於驗證請求來自釘釘的密鑰。
說明 當選擇開啟Outgoing機制時,此項可配置。
|
- 單擊復制,復制webhook地址。
說明 在
群機器人頁面,選擇目標群機器人,單擊右側
圖標可以:
- 修改群機器人的頭像及機器人名字。
- 開啟或關閉消息推送。
- 重置webhook地址。
- 刪除群機器人。

- 登錄容器服務管理控制台。
- 在Kubernetes菜單下,單擊左側導航欄中的
- 選擇目標集群,命名空間選為kube-system,單擊右上角使用模板創建。

- 根據以下信息配置模板,完成后單擊創建。
配置 |
說明 |
集群 |
選擇目標集群。 |
命名空間 |
選擇資源對象所屬的命名空間,默認是 default。此處選擇kube-system。 |
示例模板 |
阿里雲容器服務提供了多種資源類型的 Kubernetes yaml 示例模板,讓您快速部署資源對象。您可以根據 Kubernetes Yaml 編排的格式要求自主編寫,來描述您想定義的資源類型。此處選擇自定義。 |
模板 |
填寫以下自定義內容:
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: eventer namespace: kube-system spec: replicas: 1 template: metadata: labels: task: monitoring k8s-app: eventer annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: serviceAccount: admin containers: - name: eventer image: registry.cn-hangzhou.aliyuncs.com/acs/eventer:v1.6.0 imagePullPolicy: IfNotPresent command: - /eventer - --source=kubernetes:https://kubernetes.default - --sink=dingtalk:[your_webhook_url]&label=[your_cluster_id]&level=[可選參數:Normal或者Warning,默認值為:Warning] #level可配置為:Normal或Warning,默認值為:Warning。當配置Normal時,會在釘釘群收到Normal和Warning級別的告警;不配置或配置為Warning時,釘釘群僅收到Warning級別的告警。
|
在
集群列表頁面選擇目標集群,單擊操作列控制台,進入Kubernetes 控制台,選擇命名空間為kube-system,單擊左側導航欄部署,可查看到eventer已部署成功。

預期結果:
部署成功后30s,eventer生效,當事件等級超過閾值等級時,即可在釘釘群收到如下告警。