自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 Kubectl 優(yōu)雅的滾動更新應(yīng)用

系統(tǒng) Linux
Kubernetes 中的 Pod 通常應(yīng)該是 "Running" 狀態(tài),然而有時候我們需要針對正在運(yùn)行的 Pod 調(diào)度到其它的節(jié)點(diǎn)或是基于其它特殊的原因,將正常運(yùn)行的 Pod 進(jìn)行重啟。

Pod 的重啟方式也有不少,比如常見刪除正在運(yùn)行的 Pod 讓其創(chuàng)建新的 Pod 實(shí)例(單個 Pod 無法直接使用該方式)。以下羅列出幾種常見的方式僅供備忘:

方法1:滾動重啟方法[推薦]

自 Kubernetes 1.15 版本就開始支持滾動重啟部署。這是 Kubernetes 中最快的重啟機(jī)制,因?yàn)樗切略龅?。下面給出的命令會一個一個地關(guān)閉并重新啟動部署中的每個 Pod。

$ kubectl rollout restart deployment nginx-deploy
  • 提示:由于大多數(shù)容器仍在運(yùn)行,因此整個過程是縱享絲滑--無感知的。

方法2:環(huán)境變量方法

這種方式就是給運(yùn)行的容器分配一個新的環(huán)境變量,來強(qiáng)制 Pod 重新啟動。例如: 增加一個容器部署日期(實(shí)際可能未使用到該變量)

$ kubectl set env deployment nginx-deploy DEPLOY_DATE="$(date)"
  • 提示:在上面的場景中,使用了set env 修改了環(huán)境變量,deployment [deployment name] 選擇了你的 deployment,DEPLOY DATE="$(date)" 修改了deployment date 并導(dǎo)致pod 更新。這種方式也是無感知的。

方法3:副本擴(kuò)/縮容

當(dāng)副本數(shù)量設(shè)置為 0 時,Kubernetes 會消除它不再需要的副本。設(shè)置大于 0 后,Kubernetes 會生成新的副本。

$ kubectl scale --replicas=0 deployment nginx-deploy
$ kubectl scale --replicas=N deployment nginx-deploy

以上方式會中斷業(yè)務(wù),我們也可以使用不中斷業(yè)務(wù)的方式來重啟應(yīng)用。比如記錄當(dāng)前的 Pod 副本數(shù)量,使用 scale --replicas 命令來分配一個大于當(dāng)前的副本數(shù)值的值,使用 kubectl delete pod 方式刪除舊 Pod,最后將使用scale --replicas 還原成正常的副本數(shù)量。

  • 提示:不建議使用這種方式來重啟應(yīng)用。

結(jié)論

Kubernetes 是一個非常牛X的編排系統(tǒng),然而只要是系統(tǒng),就一定會出現(xiàn)問題。當(dāng)出現(xiàn)問題時,可以利用上述 3 種方式快速安全地讓您的應(yīng)用程序恢復(fù)并運(yùn)行,而不會影響用戶體驗(yàn)。

參考引用

  • [1] https://linuxhint.com/kubectl-rollout-restart/
  • [2] https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/
責(zé)任編輯:龐桂玉 來源: 奇妙的Linux世界
相關(guān)推薦

2021-01-28 14:53:19

PHP編碼開發(fā)

2015-11-26 10:53:45

LinuxWindowsMac OS

2017-07-26 11:32:50

NETRabbitMQ系統(tǒng)集成

2023-02-13 14:37:13

開發(fā)web瀏覽器

2023-06-16 09:08:39

ReactContextRFC

2021-03-28 09:17:18

JVM場景鉤子函數(shù)

2022-09-14 08:16:48

裝飾器模式對象

2017-12-19 10:03:44

JavaLinux代碼

2023-11-30 08:08:30

k8s優(yōu)雅停機(jī)

2023-06-28 08:25:14

事務(wù)SQL語句

2021-01-18 13:17:04

鴻蒙HarmonyOSAPP

2022-10-27 11:23:26

GoFrame共享變量

2024-07-03 09:13:26

SwiftUI修飾符框架

2019-11-15 09:58:04

LinuxAsciinemapython

2022-02-28 09:19:12

MDK芯片軟件

2022-01-10 09:35:50

日志語言解析器

2022-11-11 07:48:56

ORM鏈?zhǔn)?/a>輪播圖

2022-11-15 07:50:47

ORM鏈?zhǔn)讲僮?/a>刪除

2020-05-14 09:15:52

設(shè)計(jì)模式SOLID 原則JS

2017-09-25 16:39:51

移動端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號