監控Kubernetes 控制面組件的關鍵指標

控制面組件的監控,包括 APIServer、Controller-manager(簡稱 CM)、Scheduler、etcd 四個組件。

1、APIServer

APIServer 的核心職能是 Kubernetes 集群的 API 總入口,Kube-Proxy、Kubelet、Controller-Manager、Scheduler 等都需要調用 APIServer,所以 APIServer 的監控,完全按照 RED 方法論來梳理即可,最核心的就是請求吞吐和延遲。

  • apiserver_request_total:請求量的指標,可以統計每秒請求數、成功率。
  • apiserver_request_duration_seconds:請求耗時的指標。
  • apiserver_current_inflight_requests:APIServer 當前處理的請求數,分為 mutating(非 get、list、watch 的請求)和 readOnly(get、list、watch 請求)兩種,請求量過大就會被限流,所以這個指標對我們觀察容量水位很有幫助。

2、Controller-manager

Controller-manager 負責監聽對象狀態,并與期望狀態做對比。如果狀態不一致則進行調諧,重點關注的是任務數量、隊列深度等。

  • workqueue_adds_total:各個 controller 接收到的任務總數。
  • workqueue_depth:各個 controller 的隊列深度,表示各個 controller 中的任務的數量,數量越大表示越繁忙。
  • workqueue_queue_duration_seconds:任務在隊列中的等待耗時,按照控制器分別統計。
  • workqueue_work_duration_seconds:任務出隊到被處理完成的時間,按照控制器分別統計。
  • workqueue_retries_total:任務進入隊列的重試次數。

3、Scheduler

Scheduler 在 Kubernetes 架構中負責把對象調度到合適的 Node 上,在這個過程中會有一系列的規則計算和篩選,重點關注調度這個動作的相關指標。

  • leader_election_master_status:調度器的選主狀態,1 表示 master,0 表示 backup。
  • scheduler_queue_incoming_pods_total:進入調度隊列的 Pod 數量。
  • scheduler_pending_pods:Pending 的 Pod 數量。
  • scheduler_pod_scheduling_attempts:Pod 調度成功前,調度重試的次數分布。
  • scheduler_framework_extension_point_duration_seconds:調度框架的擴展點延遲分布,按 extension_point 統計。
  • scheduler_schedule_attempts_total:按照調度結果統計的嘗試次數,“unschedulable”表示無法調度,“error”表示調度器內部錯誤。

4、etcd

etcd 在 Kubernetes 的架構中作用巨大,相對也比較穩定,不過 etcd 對硬盤 IO 要求較高,因此需要著重關注 IO 相關的指標,生產環境建議至少使用 SSD 的盤做存儲。

  • etcd_server_has_leader :etcd 是否有 leader。
  • etcd_server_leader_changes_seen_total:偶爾切主問題不大,頻繁切主就要關注了。
  • etcd_server_proposals_failed_total:提案失敗次數。
  • etcd_disk_backend_commit_duration_seconds:提交花費的耗時。
  • etcd_disk_wal_fsync_duration_seconds ?:wal 日志同步耗時。

5、KSM

Kube-state-metrics 這個組件,采集的很多指標都只是充當元信息,單獨拿出來未必那么有用,但是和其他指標做 group_left、group_right 連接的時候可能又會很有用。

  • kube_node_status_condition:Node 節點狀態,狀態不正常、有磁盤壓力等都可以通過這個指標發現。
  • kube_pod_container_status_last_terminated_reason:容器停止原因。
  • kube_pod_container_status_waiting_reason:容器處于 waiting 狀態的原因。
  • kube_pod_container_status_restarts_total:容器重啟次數。
  • kube_deployment_spec_replicas:deployment 配置期望的副本數。
  • kube_deployment_status_replicas_available:deployment 實際可用的副本數。

?

此文章為8月Day11學習筆記,內容來源于極客時間《運維監控系統實戰筆記》,推薦該課程。

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

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

相關文章

【字符串】649. Dota2 參議院

649. Dota2 參議院 解題思路 R true 表示循環結束之后 字符串仍然存在 Rflag > 0 說明R在D之前出現 R可以消滅Dflag < 0 說明D在R之前出現 D 可以消滅R一旦其中有一個為false 說明只剩下R 或者D 那么就可以決定誰獲勝遍歷字符串 如果當前字符是R 判斷flag 如果flag &l…

‘open3d.open3d.geometry.PointCloud‘ object has no attribute ‘voxel_down_sample‘

scene_cloud open3d.geometry.PointCloud() scene_cloud.points open3d.utility.Vector3dVector(scene_points) scene_cloud scene_cloud.voxel_down_sample(voxel_size) 執行上面代碼第三句報錯&#xff0c;出現了下面這個錯誤&#xff1a; AttributeError: open3d.open…

TCP 協議十大相關特性總結

目錄 一、TCP特性 二、報文格式 TCP十大核心特性 1. 確認應答 2. 超時重傳 3. 連接管理(三次握手,四次揮手) 三次握手 四次揮手 4. 滑動窗口 情況一:接收方的ACK丟失 情況二:發送方的數據包丟失 5. 流量控制 6. 擁塞控制 7. 延遲應答 8. 捎帶應答 9. 字節流粘包問題 10. TCP的…

k8s--使用cornJob定時執行sql文件

CronJob apiVersion: batch/v1beta1 kind: CronJob metadata:name: hello spec:schedule: "0 * * * *"jobTemplate:spec:template:spec:containers:- name: postgres-alpineimage: xxxximagePullPolicy: IfNotPresentcommand:- psql- -h- 數據庫服務地址- -d- 數據庫…

大語言模型:LLM的概念是個啥?

一、說明 大語言模型&#xff08;維基&#xff1a;LLM- large language model&#xff09;是以大尺寸為特征的語言模型。它們的規模是由人工智能加速器實現的&#xff0c;人工智能加速器能夠處理大量文本數據&#xff0c;這些數據大部分是從互聯網上抓取的。 [1]所構建的人工神…

02 - git 文件重命名

查看所有文章鏈接&#xff1a;&#xff08;更新中&#xff09;GIT常用場景- 目錄 文章目錄 1. 第一種方式2. 第二種方式 1. 第一種方式 mv kongfu_person.txt kongfu.txt git add .2. 第二種方式 git mv kongfu_person.txt kongfu.txt

微服務實戰項目-學成在線-項目優化(redis緩存優化)

微服務實戰項目-學成在線-項目優化(redis緩存優化) 1 優化需求 視頻播放頁面用戶未登錄也可以訪問&#xff0c;當用戶觀看試學課程時需要請求服務端查詢數據&#xff0c;接口如下&#xff1a; 1、根據課程id查詢課程信息。 2、根據文件id查詢視頻信息。 這些接口在用戶未認…

Unity 人物連招(三段連擊)

一&#xff1a; 連招思路 首先人物角色上有三個攻擊實例對象 Damage,每一個damage定義了攻擊的傷害值&#xff0c;攻擊距離&#xff0c;觸發器名稱&#xff0c;傷害的發起者&#xff0c;攻擊持續時間&#xff0c;攻擊重置時間&#xff0c;傷害的碰撞框大小等字段&#xff1a; …

【WordPress】給你一萬個不使用WP-Cron定時機制的理由

這篇文章也可以在我的博客中查看 定時任務 cron Cron是Unix/Linux系統中的任務調度工具&#xff0c;允許用戶在預定的時間和日期間隔自動運行命令或腳本 它通過Cron表達式定義任務執行的頻率&#xff0c;該表達式包含分鐘、小時、日期等信息 我們可以利用Cron來定期執行維護…

MySQL表的增刪查改

目錄 一&#xff0c;新增 二&#xff0c;查詢 2.1 全列查詢 2.2 指定列查詢 2.3 查詢字段為表達式 2.4 別名 - as 2.5 去重 - distinct 2.6 排序 - order by 2.7 條件查詢 - where 2.8 分頁查詢 - limit 三&#xff0c;修改 - update 四&#xff0c;刪除 - delete 一…

@Mapper POJO 與DTO之間的class屬性轉換映射

Mapper注解基于mapStract 框架實現對象轉換&#xff1a;MapStract java bean 屬性轉換映射 引用轉自&#xff1a;org.mapstruct:mapstruct 包&#xff08;Mapper、Mapping&#xff09;的使用 依賴包&#xff1a; <!--mapStruct依賴--> <dependency><groupId&g…

Spring-2-透徹理解Spring 注解方式創建Bean--IOC

今日目標 學習使用XML配置第三方Bean 掌握純注解開發定義Bean對象 掌握純注解開發IOC模式 1. 第三方資源配置管理 說明&#xff1a;以管理DataSource連接池對象為例講解第三方資源配置管理 1.1 XML管理Druid連接池(第三方Bean)對象【重點】 數據庫準備 -- 創建數據庫 create …

純前端 -- html轉pdf插件總結

一、html2canvasjsPDF&#xff08;文字會被截斷&#xff09;&#xff1a; 將HTML元素呈現給添加到PDF中的畫布對象&#xff0c;不能僅使用jsPDF&#xff0c;需要html2canvas或rasterizeHTML html2canvasjsPDF的具體使用鏈接 二、html2pdf&#xff08;內容顯示不全文字會被截斷…

[RoarCTF 2019Online Proxy]sql巧妙盲注

文章目錄 [RoarCTF 2019Online Proxy]sql巧妙盲注解題腳本腳本解析 [RoarCTF 2019Online Proxy]sql巧妙盲注 解題 在源代碼界面發現&#xff1a;Current Ip 我們會聯想到&#xff1a;X-Forwarded-For來修改ip&#xff1a; 結果我們發現&#xff0c;response會講Last Ip回顯出…

Semaphore 原理分析

分析下SemaPhore吧&#xff0c;也是基于AQS實現的&#xff0c;對并發進行控制的工具類&#xff0c;看下其怎么實現的&#xff0c; Semaphore semaphore new Semaphore(3);semaphore.acquire();semaphore.release();Semaphore 常用于控制并發量&#xff0c;比如這里設置為3&…

請教電路高手幫忙Review一下是否可行?

想要實現STM32 3.3V GPIO 控制5V電源通斷&#xff0c;默認狀態為&#xff1a;接通。 使用如下電路圖有無問題&#xff1f;參數是否需要調整&#xff1f;

8.14 ARM

1.練習一 .text 文本段 .global _start 聲明一個_start函數入口 _start: _start標簽&#xff0c;相當于C語言中函數mov r0,#0x2mov r1,#0x3cmp r0,r1beq stopsubhi r0,r0,r1subcc r1,r1,r0stop: stop標簽&#xff0c;相當于C語言中函數b stop 跳轉到stop標簽下的第一條…

C++的IO流

C語言的輸入與輸出 C語言中我們用到的最頻繁的輸入輸出方式就是scanf ()與printf()。 scanf(): 從標準輸入設備(鍵盤)讀取數據&#xff0c;并將值存放在變量中。printf(): 將指定的文字/字符串輸出到標準輸出設備(屏幕)。注意寬度輸出和精度輸出控制。C語言借助了相應的緩沖區來…

javaScript:如何獲取html中的元素對象

目錄 前言&#xff1a; 方法 1.通過id獲取元素 2.通過標簽名獲取元素 3.通過類名class獲取元素 獲取body的方法 1.document.getElementsByTagName(body)[0] 2.document.body 相關代碼 前言&#xff1a; 通過獲取HTML中的元素對象&#xff0c;JavaScript可以對網頁進行動…

學生成績管理系統V1.0

某班有最多不超過30人&#xff08;具體人數由鍵盤輸入&#xff09;參加某門課程的考試&#xff0c;用一維數組作函數參數編程實現如下學生成績管理&#xff1a; &#xff08;1&#xff09;錄入每個學生的學號和考試成績&#xff1b; &#xff08;2&#xff09;計算課程的總分…