偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一文看懂K8S中的滾動(dòng)升級(jí)

云計(jì)算 云原生
隨著云原生的普及,越來(lái)越多的公司已經(jīng)使用K8S進(jìn)行容器編排和管理,在分布式微服務(wù)場(chǎng)景下,滾動(dòng)升級(jí)是一種自動(dòng)化程度較高的主流發(fā)布方式,能做到服務(wù)更新升級(jí)過(guò)程中用戶體驗(yàn)平滑,業(yè)務(wù)“零停機(jī)”。

Part 01、升級(jí)策略 

K8S中通過(guò)spect.strategy來(lái)定義新的 Pod 替換為舊的Pod的策略。策略類型分為:重建策略(Recreate)或滾動(dòng)升級(jí)策略(RollingUpdate),默認(rèn)為 RollingUpdate。

Recreate -- 在創(chuàng)建出新的Pod之前會(huì)先刪掉所有已存在的Pod。

RollingUpdate -- 可以指定maxSurge和maxUnavailable來(lái)控制滾動(dòng)升級(jí)過(guò)程。

  • maxSurge:用來(lái)指定升級(jí)期間可以超過(guò)預(yù)期Pod數(shù)量的最大值,該值可以是一個(gè)絕對(duì)數(shù)(例如:5)或一個(gè)預(yù)期 Pod 的百分比(例如:10%),默認(rèn)為 25%。通過(guò)百分比計(jì)算的絕對(duì)值向上取整。
  • maxUnavailable:用來(lái)指定升級(jí)期間不可用的最大 Pod 數(shù)量。該值可以是一個(gè)絕對(duì)數(shù)(例如:5)或一個(gè)預(yù)期 Pod 的百分比(例如:10%),默認(rèn)為 25%。通過(guò)百分比計(jì)算的絕對(duì)值向下取整。

在業(yè)務(wù)中我們默認(rèn)使用滾動(dòng)升級(jí)策略,通過(guò)合理配置maxSurge和maxUnavailable實(shí)現(xiàn)業(yè)務(wù)高可用。

Part 02、健康檢查 

K8S中通過(guò)探針對(duì)容器執(zhí)行定期診斷來(lái)判斷容器的狀態(tài),通常使用存活性探針(liveness probes)和就緒性探針(readiness probes)根據(jù)容器狀態(tài)進(jìn)行后續(xù)處理。

  • livenessProbe:探測(cè)容器是否正在運(yùn)行。如果存活探測(cè)失敗,則 kubelet 會(huì)殺死容器,并且容器將受到其重啟策略的影響。如果容器不提供存活探針,則默認(rèn)狀態(tài)為 Success。
  • readinessProbe:探測(cè)容器是否準(zhǔn)備好服務(wù)請(qǐng)求。如果就緒探測(cè)失敗,端點(diǎn)控制器將從與 Pod 匹配的所有Service的端點(diǎn)中刪除該P(yáng)od的IP地址。初始延遲之前的就緒狀態(tài)默認(rèn)為 Failure。如果容器不提供就緒探針,則默認(rèn)狀態(tài)為 Success。

在業(yè)務(wù)中我們經(jīng)常同時(shí)使用這兩種探針,通過(guò)存活性探針判斷容器是否需要重啟以實(shí)現(xiàn)自愈,通過(guò)就緒性探針判斷容器是否已經(jīng)準(zhǔn)備好對(duì)外提供服務(wù)。

Part 03、K8S滾動(dòng)升級(jí)原理

K8S通過(guò)Deployment創(chuàng)建副本,Deployment是一個(gè)三級(jí)結(jié)構(gòu):Deployment控制Replicaset(副本集),Replicaset控制Pod。根據(jù)Deployment的這個(gè)結(jié)構(gòu)特性,一個(gè)Deployment下可存在不同的Replicaset,那就表示一個(gè)Deployment下可以有不同鏡像版本的Pod同時(shí)存在。

升級(jí)過(guò)程中Deployment自動(dòng)創(chuàng)建Replicaset,Replicaset通過(guò)滾動(dòng)升級(jí)策略中maxSurge、maxUnavailable兩個(gè)參數(shù)來(lái)精準(zhǔn)地控制每次滾動(dòng)的Pod數(shù)量。再結(jié)合健康檢查中的存活性探針(liveness probes)和就緒性探針(readiness probes)來(lái)精準(zhǔn)判斷Pod何時(shí)啟動(dòng)成功以及何時(shí)準(zhǔn)備好服務(wù)請(qǐng)求,確保升級(jí)過(guò)程中可用的Pod都是可正常提供服務(wù)的。

具體過(guò)程如下圖所示。

圖片

K8S滾動(dòng)升級(jí)過(guò)程


Part 04、總結(jié)

本文中介紹了K8S中的升級(jí)策略和健康檢查,通過(guò)配置升級(jí)策略和健康檢查實(shí)現(xiàn)滾動(dòng)升級(jí)來(lái)確保微服務(wù)的平滑部署,但滾動(dòng)升級(jí)也對(duì)業(yè)務(wù)設(shè)計(jì)提出了更高的要求,需要業(yè)務(wù)在設(shè)計(jì)中做到前后版本兼容,否則滾動(dòng)升級(jí)過(guò)程中新舊版本同時(shí)存在期間服務(wù)調(diào)用可能會(huì)導(dǎo)致業(yè)務(wù)失敗、臟數(shù)據(jù)等問(wèn)題,業(yè)務(wù)要根據(jù)自身特性與需求選擇適合的升級(jí)方案。

引用:

kubernetes中文文檔:

???http://docs.kubernetes.org.cn/317.html???

責(zé)任編輯:龐桂玉 來(lái)源: 移動(dòng)Labs
相關(guān)推薦

2024-10-23 11:34:18

云計(jì)算KubernetesAkamai

2023-10-27 23:10:17

K8s框架kubebuilde

2023-12-20 08:13:54

K8S監(jiān)控管理

2021-11-29 13:13:57

網(wǎng)絡(luò)虛擬化容器

2020-03-31 14:40:24

HashMap源碼Java

2025-07-11 01:45:00

SIM卡模塊識(shí)別

2016-08-18 00:21:12

網(wǎng)絡(luò)爬蟲抓取網(wǎng)絡(luò)

2022-06-06 08:48:37

整體架構(gòu)K8s

2024-08-12 12:30:27

2018-05-29 09:21:13

K8S系統(tǒng)架構(gòu)

2023-07-14 08:00:00

ORMRust ORMSQL

2025-06-27 02:15:00

芯片流程數(shù)字芯片

2021-08-02 06:56:19

TypeScript編程語(yǔ)言編譯器

2025-01-20 09:15:00

iOS 18.3蘋果iOS 18

2019-07-01 09:22:15

Linux操作系統(tǒng)硬件

2019-05-22 09:50:42

Python沙箱逃逸網(wǎng)絡(luò)攻擊

2017-07-28 09:11:14

HIVEHBASE區(qū)別

2025-10-20 09:20:06

2018-05-31 09:46:04

車聯(lián)網(wǎng)智能交通ITS

2019-09-03 10:40:23

數(shù)據(jù)結(jié)構(gòu)HTML編程
點(diǎn)贊
收藏

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