kubernetes 中的事件(event)簡介以及如何收集event和基于event告警

引用另外一篇文章對k8s event的介紹

1.什么是kubernetes事件
Kubernetes Events 是一種 Kubernetes 資源對象,記錄了某個組件在某個時間做了某個動作,用于展示集群內發生的情況,當 Kubernetes 集群中資源狀態發生變化時,可以產生新的 event 。

Kubernetes 系統中的各個組件會將運行時發生的各種事件(例如調度器做了什么決定,某些 Pod 為什么被從節點中驅逐)上報給 Kubernetes API Server 。Kubernetes API Server 將 event 存儲在 Etcd 中,為避免 Etcd 的磁盤空間被填滿,默認的保留策略是:在最后一次的事件發生后,刪除 1 小時之前發生的事件。

可以通過kubectl describe $ResourceNamekubectl get event 命令查看相關資源的事件信息或查看 Kubernetes 集群中發生了哪些事件,默認情況下只會顯示最近 1 小時內發生的事件。

2.為什么監控Kubernetes事件
事件監控可以彌補Kubernetes資源監控在實時性、準確性和場景上的欠缺。通過收集、監控事件,實時監控集群的異常與問題。
Kubernetes平臺中可能產生大量事件, kubernetes組件不提供事件相關的指標,而且會自動清理事件(1小時),但有些事件的出現可能預示著對集群或節點可用性產生影響,因此需要對事件進行收集和監控。

3.如何采集Kubernetes事件
Kubernetes中的事件最終還是存儲在etcd中,默認情況下只保存1個小時,由于etcd并不支持一些復雜的分析操作,默認Kubernetes只提供了非常簡單的過濾方式,比如通過Reason、時間、類型等。同時這些事件只是被動的存在etcd中,并不支持主動推送到其他系統,通常只能手動的去查看。

而實際上我們對事件的使用需求非常高,例如:

對系統中的異常事件做實時告警,例如Failed、Evicted、FailedMount、FailedScheduling等。
通常問題排查可能要去查找歷史數據,因此需要去查詢更長時間范圍的事件(幾天甚至幾個月)。
事件支持歸類統計,例如能夠計算事件發生的趨勢以及與上一時間段(昨天/上周/發布前)對比,以便基于統計指標進行判斷和決策。
支持不同的人員按照各種維度去做過濾、篩選。
支持自定義的訂閱這些事件去做自定義的監控,以便和公司內部的部署運維平臺集成。
為了讓大家更便捷的使用Kubernetes事件功能,所以需要進行Kubernetes Event采集。

收集 Kubernetes 事件的解決方案
有多種解決方案可用于檢索 Kubernetes 事件。讓我們看看現成可用的項目。

**重點推薦前兩種方案**
  1. kubernetes-event-exporter (https://github.com/resmoio/kubernetes-event-exporter)
    事件導出器允許將經常錯過的 Kubernetes 事件導出到各種輸出,以便它們可用于可觀察性或警報目的。

    事件導出器實現起來很簡單,但功能非常強大。一旦事件被記錄,它利用 Prometheus 客戶端以 Prometheus 格式計數和報告事件。

  2. Kspan (https://github.com/weaveworks-experiments/kspan)
    Kspan 是 Weaveworks 創建的一個項目,它將 Kubernetes 事件轉換為 OpenTelemetry Spans,通過因果關系將它們連接起來,并將它們組合成 traces。

    Kspan 將與 Kubernetes API 交互以收集各種事件并將生成的跟蹤轉發到 OpenTelemetry 收集器。

  3. Eventrouter
    正如 Eventrouter 項目的 GitHub 頁面所述:“事件路由器充當 Kubernetes 系統中事件資源的活動觀察者,它接收這些事件并將它們推送到用戶指定的接收器。這對于許多不同的目的很有用,但最值得注意的是對在 Kubernetes 集群上運行的工作負載的長期行為分析。”

  4. Kubewatch
    Kubewatch 是一個 K8s 事件監視工具,用于跟蹤 Kubewatch 中的每個資源更改。它支持通知,它將能夠在 Slack、Hipchat、Webhook、Flock、SMTP 等中發布通知。

  5. Sloop
    Sloop 監控 Kubernetes,記錄事件和資源狀態變化的歷史,并提供可視化來幫助調試過去的事件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38609.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38609.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38609.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PostMan 教程

安裝https://www.cnblogs.com/mafly/p/postman.html Postman 使用方法詳解https://blog.csdn.net/fxbin123/article/details/80428216 postman進行http接口測試https://blog.csdn.net/five3/article/details/53021084 postman的使用方法詳解!最全面的教程https:/…

Golang項目中如何輕松實現私有倉庫pkg包的引入

在企業內部創建一個公共的Golang模塊工程可以幫助提高代碼復用性和開發效率。本文將從如何創建一個公共的Golang工程開始,指導你一步步創建它、并引入到你的工程中。 1、公共模塊規范 下面是一個簡單的步驟指南來創建這樣一個公共模塊項目。 創建版本控制倉庫&am…

Verdi_traceX and autotrace

Verdi_traceX and autotrace Trace X From nWave/nTrace of from the Teporal Flow View. Show Paths on Flow ViewShow Paths on nWave 若Waveform中有X態,鼠標右鍵會有Trace X的選項; 會自動打開Temporal Flow View窗口,展示對應路徑&am…

RocketMQ、Dashboard部署以及安全設置

RocketMQ、dashboard部署以及安全設置 一、啟動RocketMQ1.1 下載RocketMQ1.2 修改配置文件1.2.1 修改nameServer Jvm內存配置1.2.2 修改broker參數 1.3 啟動1.3.1 啟動NameServer1.3.2 啟動Broker1.3.3 測試是否啟動成功1.3.3.1 測試消息發送1.3.3.2 測試消息接收1.3.3.3 Java程…

數據結構——配對堆

引入 配對堆是一個支持插入,查詢/刪除最小值,合并,修改元素等操作的數據結構,是一種可并堆。有速度快和結構簡單的優勢,但由于其為基于勢能分析的均攤復雜度,無法可持久化。 定義 配對堆是一棵滿足堆性質…

C語言暑假刷題沖刺篇——day1

目錄 一、選擇題 二、編程題 🎈個人主頁:庫庫的里昂 🎐CSDN新晉作者 🎉歡迎 👍點贊?評論?收藏?收錄專欄:C語言每日一練 ?其他專欄:代碼小游戲C語言初階🤝希望作者的文章能對你…

問道管理:網上如何打新股?

隨著資本市場的不斷敞開,越來越多的人開始重視股票市場,并想經過網上打新股來取得更大的出資收益。但是,網上打新股的辦法并不簡略,怎樣才能成功地打新股呢?本文將從多個角度剖析,協助廣闊出資者處理這一問…

海信聚好看將攜新品DBdoctor,亮相中國數據庫技術大會(DTCC2023)

海信聚好看將攜新品DBdoctor,亮相中國數據庫技術大會 8月16日—18日,第14屆中國數據庫技術大會(DTCC-2023)將在北京國際會議中心隆重召開。作為國內數據庫領域規模最大的技術交流盛會,吸引了眾多業內知名企業和數百名…

[謙實思紀 01]整理自2023雷軍年度演講——《成長》(上篇)武大回憶(夢想與成長)

文章目錄 [謙實思紀]整理自2023雷軍年度演講 ——《成長》(上篇)武大回憶(夢想與成長)0. 寫在前面1. 夢開始的地方1.1 要有夢想,要用目標量化夢想 2. 在兩年內修完所有的學分。2.1 別老自己琢磨,找個懂的人…

【LeetCode 算法】Matrix Diagonal Sum 矩陣對角線元素的和

文章目錄 Matrix Diagonal Sum 矩陣對角線元素的和問題描述:分析代碼Math Tag Matrix Diagonal Sum 矩陣對角線元素的和 問題描述: 給你一個正方形矩陣 mat,請你返回矩陣對角線元素的和。 請你返回在矩陣主對角線上的元素和副對角線上且不…

Python爬蟲IP代理池的建立和使用

寫在前面 建立Python爬蟲IP代理池可以提高爬蟲的穩定性和效率,可以有效避免IP被封鎖或限制訪問等問題。 下面是建立Python爬蟲IP代理池的詳細步驟和代碼實現: 1. 獲取代理IP 我們可以從一些代理IP網站上獲取免費或付費的代理IP,或者自己租…

【深度學習所有損失函數】在 NumPy、TensorFlow 和 PyTorch 中實現(1/2)

一、說明 在本文中,討論了深度學習中使用的所有常見損失函數,并在NumPy,PyTorch和TensorFlow中實現了它們。 二、內容提要 我們本文所談的代價函數如下所列: 均方誤差 (MSE) 損失二進制交叉熵損失加權二進…

“深入解析JVM內部機制:探索Java虛擬機的奧秘“

標題:深入解析JVM內部機制:探索Java虛擬機的奧秘 JVM(Java虛擬機)是Java程序的核心執行環境,它負責將Java字節碼轉換為機器碼并執行。了解JVM的內部機制對于理解Java程序的執行過程和性能優化至關重要。本文將深入解析…

開啟想象翅膀:輕松實現文本生成模型的創作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用

開啟想象翅膀:輕松實現文本生成模型的創作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用 TextGen: Implementation of Text Generation models 1.介紹 TextGen實現了多種文本生成模型,包括&a…

c++——::作用域、命名空間、using(聲明和編譯指令)

c 作用域和名字控制 一、::(雙冒號) 作用域 <::>運算符是一個作用域如果<::>前面什么都沒有加 代表是全局作用域 二、命名空間&#xff08;namespace) 1、namespace 本質是作用域,可以更好的控制標識符的作用域命名空間 就可以存放 變量 函數 類 結構體 … 2…

【kubernetes】在k8s集群環境上,部署kubesphere

部署kubesphere 學習于尚硅谷kubesphere課程 前置環境配置-部署默認存儲類型 這里使用nfs #所有節點安裝 yum install -y nfs-utils# 在master節點執行以下命令 echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports # 執行以下命令&#xff…

QML與C++交互

目錄 1 QML獲取C的變量值 2 QML獲取C創建的自定義對象 3 QML發送信號綁定C端的槽 4 C端發送信號綁定qml端槽 5 C調用QML端函數 1 QML獲取C的變量值 QQmlApplicationEngine engine; 全局對象 上下文屬性 QQmlApplicationEngine engine; QQmlContext *context1 engine.…

flowable流程移植新項目前端問題匯總

flowable流程移植到新項目時&#xff0c;出現一些前端問題&#xff0c;匯總如下&#xff1a; PS F:\khxm\NBCIO_VUE> yarn run serve yarn run v1.21.1 $ vue-cli-service serve INFO Starting development server... ERROR Error: Vue packages version mismatch: -…

25 | 葡萄酒質量數據分析

基于kaggle提供的公開數據集,對全球葡萄酒分布情況和質量情況進行數據探索和分析 from kaggle: https://www.kaggle.com/zynicide/wine-reviews 分析思路: 0、數據準備 1、葡萄酒的種類 2、葡萄酒質量 3、葡萄酒價格 4、葡萄酒描述詞庫 5、品鑒師信息 6、總結 0、數據準備 …

學習Vue:組件的概念和優勢

在現代的前端開發中&#xff0c;組件化開發是一種重要的方法&#xff0c;它可以將復雜的應用程序拆分成多個獨立的、可復用的組件。Vue.js 是一個流行的前端框架&#xff0c;它支持組件化開發&#xff0c;讓開發者能夠更輕松地構建和維護復雜的用戶界面。在本文中&#xff0c;我…