K8S擴縮容及滾動更新和回滾

目錄:

    • 1、滾動更新
      • 1、定義Deployment配置
      • 2、應用更新
    • 2、版本回滾
      • 1. 使用kubectl rollout undo命令
    • 3、更新暫停與恢復
      • 1、暫停更新
      • 2、更新鏡像(例如,使用kubectl set image命令)
      • 3、恢復更新
    • 4、彈性擴縮容
      • 1、擴容命令
      • 2、縮容命令
      • 3、自動擴縮容

1、滾動更新

在Kubernetes中,滾動更新(Rolling Update)是一種常用的部署策略,它允許你逐步將應用的舊版本替換為新版本,而不是一次性替換所有實例。這有助于減少服務中斷的風險,并允許你在更新期間監控應用的健康狀況。

1、定義Deployment配置

首先,你需要有一個Deployment配置文件(通常是YAML格式),其中定義了你的應用鏡像和所需的副本數。例如:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3strategy:type: RollingUpdaterollingUpdate:maxSurge: 1       # 最大額外可以存在的副本數,可以為數字或百分比maxUnavailable: 1 # 最大不可用副本數,可以為數字或百分比selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myapp-containerimage: myapp:v1

2、應用更新

使用kubectl命令行工具來更新你的Deployment。例如,如果你想將鏡像版本從myapp:v1更新到myapp:v2,你可以使用以下命令:

kubectl set image deployment/myapp-deployment myapp-container=myapp:v2 --record

或者,你也可以通過修改原始的YAML文件,然后使用kubectl apply命令:

spec:containers:- name: myapp-containerimage: myapp:v2

然后應用這個更改:

kubectl apply -f deployment.yaml

2、版本回滾

1. 使用kubectl rollout undo命令

這是最直接的方法來觸發回滾。你可以通過指定回滾到上一個版本或者指定一個特定的歷史版本。

回滾到上一個版本:

kubectl rollout undo deployment <deployment-name>

回滾到特定的歷史版本:

首先,你可以使用kubectl rollout history命令查看所有的發布歷史:

kubectl rollout history deployment <deployment-name>

然后,根據顯示的版本號回滾到特定版本:

kubectl rollout undo deployment <deployment-name> --to-revision=<revision-number>

3、更新暫停與恢復

假設你有一個名為my-app的Deployment,并且你希望在更新鏡像之前先暫停更新:

1、暫停更新

kubectl rollout pause deployment/my-app

2、更新鏡像(例如,使用kubectl set image命令)

kubectl set image deployment/my-app my-app-container=new-image:tag

3、恢復更新

kubectl rollout resume deployment/my-app

4、彈性擴縮容

1、擴容命令

kubectl scale deployment <deployment-name> --replicas=5

2、縮容命令

kubectl scale deployment <deployment-name> --replicas=3

兩者修改replicas的副本數即可。

3、自動擴縮容

如果使用的是自動縮放(Horizontal Pod Autoscaler, HPA),則 Kubernetes 會根據設置的指標自動調整 Pod 的數量,而不是手動設置副本數。你可以通過設置 HPA 來實現自動擴容和縮容。例如:

kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10

這將基于 CPU 使用率自動調整副本數,最小為1,最大為10。

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

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

相關文章

力扣-24.兩兩交換鏈表中的結點

題目描述 給你一個鏈表&#xff0c;兩兩交換其中相鄰的節點&#xff0c;并返回交換后鏈表的頭節點。你必須在不修改節點內部的值的情況下完成本題&#xff08;即&#xff0c;只能進行節點交換&#xff09;。 class Solution { public:ListNode* swapPairs(ListNode* head) {i…

對遺傳算法思想的理解與實例詳解

目錄 一、概述 二、實例詳解 1&#xff09;問題描述與分析 2&#xff09;初始化種群 3&#xff09;計算種群適應度 4&#xff09;遺傳操作 5&#xff09;基因交叉操作 6&#xff09;變異操作 三、計算結果 四、總結 一、概述 遺傳算法在求解最優解的問題中最為常用&a…

計算機圖形學編程(使用OpenGL和C++)(第2版) 學習筆記 07.光照

1. 光照 1.1. 光源 光源類型特點優點缺點環境光整個場景均勻受光&#xff0c;無方向和位置。模擬全局光照&#xff0c;避免完全黑暗的區域。缺乏方向性和真實感&#xff0c;無法產生陰影。平行光光線方向平行&#xff0c;無位置&#xff0c;僅有方向。計算簡單&#xff0c;適…

Python在大數據機器學習模型的多模態融合:深入探索與實踐指南

一、多模態融合的全面概述 1.1 多模態融合的核心概念 多模態融合(Multimodal Fusion)是指將來自不同傳感器或數據源(如圖像、文本、音頻、視頻、傳感器數據等)的信息進行有效整合,以提升機器學習模型的性能和魯棒性。在大數據環境下,多模態融合面臨著獨特的挑戰和機遇: 數…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】6.4 時間序列分析(窗口函數處理時間數據)

&#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 文章大綱 PostgreSQL時間序列分析&#xff1a;窗口函數處理時間數據實戰一、時間序列分析核心場景與窗口函數優勢1.1 業務場景需求1.2 窗口函數核心優勢 二、窗口函數基礎&#xff1a…

window 顯示驅動開發-配置內存段類型

視頻內存管理器&#xff08;VidMm&#xff09;和顯示硬件僅支持某些類型的內存段。 因此&#xff0c;內核模式顯示微型端口驅動程序&#xff08;KMD&#xff09;只能配置這些類型的段。 KMD 可以配置內存空間段和光圈空間段&#xff0c;其中不同&#xff1a; 內存空間段由保存…

筆記,麥克風的靈敏度

麥克風的“靈敏度&#xff08;Sensitivity&#xff09;”決定了它捕捉聲音細節的能力。想象麥克風是一只有耳朵的生物。高靈敏度麥克風像長著“超級順風耳”的精靈&#xff0c;能聽見花瓣飄落的聲音、遠處樹葉的沙沙聲&#xff0c;甚至你心跳的微弱震動。適合錄音棚里捕捉歌手的…

lvm詳細筆記

LVM簡介 邏輯卷管理器&#xff0c;是Linux 系統中用于管理磁盤儲存的關鍵技術。 LVM 則打破了磁盤分區一旦確定&#xff0c;其大小調整往往較為復雜&#xff0c;且難以靈活應對業務變化這種限制&#xff0c;它允許用戶將多個物理分區組合卷組。例如&#xff0c;系統中的多個物…

rust-candle學習筆記10-使用Embedding

參考&#xff1a;about-pytorch candle-nn提供embedding()初始化Embedding方法: pub fn embedding(in_size: usize, out_size: usize, vb: crate::VarBuilder) -> Result<Embedding> {let embeddings vb.get_with_hints((in_size, out_size),"weight",cr…

Python小酷庫系列:Munch,用對象的訪問方式訪問dict

Munch&#xff0c;用對象的訪問方式訪問dict 基本使用1、創建一個 Munch 對象2、使用字典初始化3、訪問不存在的字段4、嵌套結構支持5、合并操作6、應用場景說明 進階功能1、嵌套寫入&#xff1a;創建不存在的子對象2、序列化&#xff08;轉回 dict&#xff09;3、深度拷貝結構…

對稱加密以及非對稱加密

對稱加密和非對稱加密是兩種不同的加密方式&#xff0c;它們在加密原理、密鑰管理、安全性和性能等方面存在區別&#xff0c;以下是具體分析&#xff1a; 加密原理 對稱加密&#xff1a;通信雙方使用同一把密鑰進行加密和解密。就像兩個人共用一把鑰匙&#xff0c;用這把鑰匙鎖…

[JAVAEE]HTTP協議(2.0)

響應報文格式 響應報文格式由首行&#xff0c;響應頭&#xff08;header&#xff09;&#xff0c;空行&#xff0c;正文&#xff08;body&#xff09; 組成 響應報文首行包括 1.版本號 如HTTP/1.1 2.狀態碼(如200) 描述了請求的結果 3.狀態碼描述(如OK) 首行——狀態碼…

Spring Boot 之MCP Server開發全介紹

Spring AI 的 MCP(模型上下文協議,Model Context Protocol)服務器啟動器為在 Spring Boot 應用程序中設置 MCP 服務器提供了自動配置功能。它使得 MCP 服務器功能能夠與 Spring Boot 的自動配置系統實現無縫集成。 MCP 服務器啟動器具備以下特性: MCP 服務器組件的自動配置…

YOLOv8 對象檢測任務的標注、訓練和部署過程

YOLOv8 對象檢測任務的標注、訓練和部署過程 在計算機視覺領域&#xff0c;對象檢測是一項基礎且重要的任務&#xff0c;YOLOv8 作為當前先進的實時對象檢測模型&#xff0c;以其高效性和準確性受到廣泛關注。從數據準備到最終模型部署&#xff0c;整個流程包含多個關鍵環節&a…

電池熱管理CFD解決方案,為新能源汽車筑安全防線

在全球能源結構加速轉型的大背景下&#xff0c;新能源汽車產業異軍突起&#xff0c;成為可持續發展的重要驅動力。而作為新能源汽車 “心臟” 的電池系統&#xff0c;其熱管理技術的優劣&#xff0c;直接決定了車輛的安全性、續航里程和使用壽命。電池在充放電過程中會產生大量…

Redis 數據類型:掌握 NoSQL 的基石

Redis (Remote Dictionary Server) 是一種開源的、內存中的數據結構存儲系統&#xff0c;通常用作數據庫、緩存和消息代理。 它的高性能和豐富的數據類型使其成為現代應用程序開發中不可或缺的一部分。 本文將深入探討 Redis 的核心數據類型&#xff0c;幫助你更好地理解和利用…

MLX-Audio:高效音頻合成的新時代利器

MLX-Audio&#xff1a;高效音頻合成的新時代利器 現代社會的快節奏生活中&#xff0c;對語音技術的需求越來越高。無論是個性化語音助手&#xff0c;還是內容創作者所需的高效音頻生成工具&#xff0c;語音技術都發揮著不可或缺的作用。今天&#xff0c;我們將介紹一個創新的開…

Kafka單機版安裝部署

目錄 1.1、概述1.2、系統環境1.3、ZooKeeper的作用1.4、部署流程1.4.1、下載安裝包1.4.2、解壓文件1.4.3、創建日志目錄1.4.4、配置Kafka1.4.5、啟動Kafka服務1.4.6、啟動成功驗證 1.5、創建Topic測試1.6、消息生產與消費測試1.6.1、啟動生產者1.6.2、啟動消費者 1.1、概述 Kaf…

【C++設計模式之Observer觀察者模式】

Observer觀察者模式 模式定義動機(Motivation)結構(Structure)應用場景一&#xff08;氣象站&#xff09;實現步驟1.定義觀察者接口2.定義被觀察者(主題)接口3.實現具體被觀察者對象(氣象站)4.實現具體觀察者(例如&#xff1a;顯示屏)5.main.cpp中使用示例6.輸出結果7. 關鍵點 …

資產月報怎么填?資產月報填報指南

資產月報是企業對固定資產進行定期檢查和管理的重要工具&#xff0c;它能夠幫助管理者了解資產的使用情況、維護狀況和財務狀況&#xff0c;從而為資產的優化配置和決策提供依據。填寫資產月報時&#xff0c;除了填報內容外&#xff0c;還需要注意格式的規范性和數據的準確性。…