【k8s】k8s是怎么實現自動擴縮的

Kubernetes 提供了多種自動擴縮容機制,主要包括 Pod 水平自動擴縮(HPA)垂直 Pod 自動擴縮(VPA)集群自動擴縮(Cluster Autoscaler)。以下是它們的實現原理和配置方法:

1. Pod 水平自動擴縮(Horizontal Pod Autoscaler,HPA)

HPA 根據預設的指標(如 CPU 使用率、內存使用率或自定義指標)動態調整 Pod 副本數量。

工作原理
  1. 監控指標:HPA 通過 Kubernetes 的 Metrics Server 或其他自定義指標提供者(如 Prometheus)持續監控指定資源(如 Deployment、ReplicaSet)中 Pod 的資源使用情況。
  2. 計算目標副本數:HPA 控制器周期性地(默認每 15 秒)根據當前指標值和目標值計算目標副本數。公式為:
    [
    \text{目標副本數} = \lceil \text{當前副本數} \times \frac{\text{當前指標值}}{\text{目標指標值}} \rceil
    ]
  3. 調整副本數:如果計算結果與當前副本數不同,HPA 會更新目標資源的副本數,從而觸發 Pod 的創建或刪除。
配置方法
  1. 安裝 Metrics Server:確保集群中部署了 Metrics Server。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
  1. 創建 HPA:定義一個 HPA 對象,指定目標資源、最小/最大副本數和目標指標值。
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:name: myapp-hpa
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: myappminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 60

2. 垂直 Pod 自動擴縮(Vertical Pod Autoscaler,VPA)

VPA 根據 Pod 的資源使用情況動態調整 Pod 的資源請求和限制。

工作原理
  1. 資源評估:VPA 監控 Pod 的資源使用情況,評估是否需要調整資源請求和限制。
  2. 調整資源:VPA 會根據評估結果自動更新 Pod 的資源請求和限制,以優化資源使用。
配置方法
  1. 安裝 VPA:部署 VPA 組件。
kubectl apply -f https://github.com/kubernetes/autoscaler/releases/latest/download/vertical-pod-autoscaler.yaml
  1. 定義 VPA:創建一個 VPA 資源,指定目標資源和更新策略。
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:name: example-vpa
spec:targetRef:apiVersion: "apps/v1"kind: Deploymentname: <deployment-name>updatePolicy:updateMode: "Auto"

3. 集群自動擴縮(Cluster Autoscaler)

Cluster Autoscaler 根據集群的負載情況自動調整節點數量。

工作原理
  1. 監控集群負載:Cluster Autoscaler 監控集群中所有 Pod 的資源請求情況。
  2. 調整節點數量:如果集群資源不足,自動添加節點;如果資源過剩,釋放多余節點。
配置方法
  1. 安裝 Cluster Autoscaler:根據云服務提供商部署 Cluster Autoscaler。
kubectl apply -f https://github.com/kubernetes/autoscaler/releases/latest/download/cluster-autoscaler.yaml
  1. 配置節點池:定義節點池的最小和最大節點數。

最佳實踐

  1. 合理設置閾值:根據應用需求設置合理的最小和最大副本數,避免過度擴縮容。
  2. 監控指標:使用 Prometheus 和 Grafana 等工具監控擴縮容指標,及時發現潛在問題。
  3. 測試擴縮容行為:模擬流量高峰,確保擴縮容行為符合預期。
  4. 結合使用:將 HPA 和 Cluster Autoscaler 結合使用,實現從 Pod 到節點的全棧彈性擴縮容。

通過這些機制,Kubernetes 能夠根據實際負載動態調整資源分配,確保應用的高可用性和資源利用效率。

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

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

相關文章

Reflex 完全指南:用 Python 構建現代 Web 應用的終極體驗

“寫 Python&#xff0c;就能構建 Web 前端。”——這不再是夢想&#xff0c;而是由 Reflex 帶來的現實。 過去&#xff0c;構建一個現代 Web 應用意味著你要學會前端&#xff08;React/JS/HTML/CSS&#xff09; 后端&#xff08;Flask/Django&#xff09; API 交互&#xff08…

Vue實戰(08)解決 Vue 項目中路徑別名 `@` 在 IDE 中報錯無法識別的問題

一、引言 ? 在 Vue 項目開發過程中&#xff0c;路徑別名是一個非常實用的特性&#xff0c;它能夠幫助開發者簡化文件引用路徑&#xff0c;提高代碼的可讀性和可維護性。其中&#xff0c; 作為一個常見的路徑別名&#xff0c;通常被用來指向項目的 src 目錄。然而&#xff0c;…

5.學習筆記-SpringMVC(P61-P70)

SpringMVC-SSM整合-接口測試 (1)業務層接口使用junit接口做測試 (2)表現層用postman做接口測試 (3)事務處理— 1&#xff09;在SpringConfig.java&#xff0c;開啟注解&#xff0c;是事務驅動 2&#xff09;配置事務管理器&#xff08;因為事務管理器是要配置數據源對象&…

[論文閱讀]REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models REPLUG: Retrieval-Augmented Black-Box Language Models - ACL Anthology NAACL-HLT 2024 在這項工作中&#xff0c;我們介紹了RePlug&#xff08;Retrieve and Plug&#xff09;&#xff0c;這是一個新的檢索增強型…

Mysql的深度分頁查詢優化

一、深度分頁為什么慢&#xff1f; 當執行 SELECT * FROM orders ORDER BY id LIMIT 1000000, 10 時&#xff1a; MySQL 會掃描前 1,000,010 行&#xff0c;丟棄前 100 萬行&#xff0c;僅返回 10 行。偏移量&#xff08;offset&#xff09;越大&#xff0c;掃描行數越多&…

最新扣子(Coze)案例教程:Excel數據生成統計圖表,自動清洗數據+轉換可視化圖表+零代碼,完全免費教程

大家好&#xff0c;我是斜杠君。 知識星球群有同學和我說每天的工作涉及很多數據表的重復操作&#xff0c;想學習Excel數據表通過大模型自動轉數據圖片的功能。 今天斜杠君就帶大家一起搭建一個智能體&#xff0c;以一個銷售行業數據為例&#xff0c;可以快速實現自動清洗Exc…

Uniapp 中緩存操作指南

在 Uniapp 中,你可以使用三種方式操作緩存:同步方法、異步方法和 Vuex 持久化存儲。以下是詳細的設置、獲取和清除緩存的方法: 1. 同步方法 設置緩存 uni.setStorageSync(key, value); // 示例 uni.setStorageSync(token, abc123); 獲取緩存 const value = uni.getStor…

k8s的yaml文件里的volume跟volumeMount的區別

volume 是 Pod 級別的資源&#xff0c;用于定義存儲卷。它是一個獨立于容器的存儲資源&#xff0c;可以被一個或多個容器共享使用。volume 的定義位于 Pod 的 spec.volumes 部分。 特點 獨立性&#xff1a;volume 是 Pod 的一部分&#xff0c;而不是容器的一部分。它獨立于容…

梅毒單陽能否通過國企體檢?

國企體檢通常會參照公務員體檢標準進行&#xff0c;梅毒檢測是其中的常規項目。 一、明確“梅毒單陽”的定義 檢測指標解析 TPPA陽性RPR陰性&#xff1a;可能為既往感染已治愈&#xff0c;或極早期/晚期梅毒&#xff1b; RPR陽性TPPA陰性&#xff1a;需警惕假陽性&#xff08…

Python 爬蟲實戰 | 企名科技

文章目錄 一、企名科技1、目標網站2、網站特點3、確定解密位置4、扣js代碼 一、企名科技 1、目標網站 網址&#xff1a;https://wx.qmpsee.com/articleDetail?idfeef62bfdac45a94b9cd89aed5c235be目標數據&#xff1a;獲取消費行業研究下面的13篇文章數據 2、網站特點 服…

Pikachu靶場

本質是信任了不可信的客戶端輸入。防御核心&#xff1a; 永不信任客戶端提交的權限參數&#xff08;如 user_id, role&#xff09;。強制服務端校驗用戶身份與操作權限。定期審計權限模型&#xff0c;避免業務迭代引入新漏洞。 水平越權 1&#xff0c;按照網站的提示要求登錄 進…

C++區別于C語言的提升用法(萬字總結)

1.namespace產生原因 在C語言中&#xff0c;變量&#xff0c;函數&#xff0c;以至于類都是大量存在的&#xff0c;因此會產生大量的名稱存在于全局作用域中&#xff0c;可能產生很多沖突&#xff0c;至此c的祖師爺為避免命名沖突和名字的污染&#xff0c;造出來了關鍵字names…

數據庫day-07

一、實驗名稱和性質 子查詢 驗證 設計 二、實驗目的 1&#xff0e;掌握子查詢的嵌套查詢&#xff1b; 2.掌握集合操作 3&#xff0e;了解EXISTS嵌套查詢方法&#xff1b; 三、實驗的軟硬件環境要求 硬件環境要求&#xff1a; PC機(單機) 使用的軟件名稱、版本號以及模塊…

【前端】【業務場景】【面試】在前端開發中,如何實現文件的上傳與下載功能,并且處理可能出現的錯誤情況?

前端文件上傳與下載攻略 本文目標&#xff1a;幫你快速掌握文件上傳 & 下載的核心實現方式&#xff0c;并在常見出錯場景下保持“優雅不崩潰”。 一、文件上傳 1. 基礎結構 <input type"file" id"fileInput" /> <button id"uploadBtn&…

Kafka 消息積壓監控和報警配置的詳細步驟

Kafka 消息積壓監控和報警配置的詳細步驟示例&#xff0c;涵蓋常用工具&#xff08;如 Prometheus Grafana、云服務監控&#xff09;和自定義腳本方法&#xff1a; 一、監控配置 方法1&#xff1a;使用 Prometheus Grafana kafka-exporter 步驟1&#xff1a;部署 kafka-ex…

【C++】內存管理:內存劃分、動態內存管理(new、delete用法)

文章目錄 一、C/C中的內存劃分二、C語言中動態內存管理方式三、C中動態內存管理方式1、new、delete基本用法(1)、內置類型(2)、自定義類型 2、operator new與operator delete函數3、new和delete的實現原理&#xff08;1&#xff09;內置類型&#xff08;2&#xff09;自定義類型…

C# 實戰_RichTextBox選中某一行條目高亮,離開恢復

C# 中控件richtextbox中某一行的條目內容高亮&#xff0c;未選中保持不變。當鼠標點擊某一行的條目高亮&#xff0c;離開該條目就恢復默認顏色。 運行效果&#xff1a; 核心代碼實現功能&#xff1a; //高亮指定行的方法private void HighlightLine(RichTextBox rtb,int lineI…

Vue3 ref與props

ref 屬性 與 props 一、核心概念對比 特性ref (標簽屬性)props作用對象DOM 元素/組件實例組件間數據傳遞數據流向父組件訪問子組件/DOM父組件 → 子組件響應性直接操作對象單向數據流&#xff08;只讀&#xff09;使用場景獲取 DOM/調用子組件方法組件參數傳遞Vue3 變化不再自…

視頻匯聚平臺EasyCVR賦能高清網絡攝像機:打造高性價比視頻監控系統

在現代視頻監控系統中&#xff0c;高清網絡攝像機作為核心設備&#xff0c;其性能和配置直接影響監控效果和整體系統的價值。本文將結合EasyCVR視頻監控的功能&#xff0c;探討如何在滿足使用需求的同時&#xff0c;優化監控系統的設計&#xff0c;降低項目成本&#xff0c;并提…

【C++】 —— 筆試刷題day_21

一、愛麗絲的人偶 題目解析 現在存在n個玩偶&#xff0c;每個玩偶的身高是1、2、3......n&#xff1b; 現在我們要對這些玩偶進行排序&#xff08;如果x人偶&#xff0c;它左右兩邊的玩偶一個比x高、一個比x矮&#xff0c;那這個玩偶就會爆炸&#xff09;。 我們不想要任何一個…