国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn)

這篇具有很好參考價(jià)值的文章主要介紹了【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、Kubernetes中滾動(dòng)發(fā)布的需求背景

1.1 滾動(dòng)發(fā)布

  • Kubernetes及其強(qiáng)大的特點(diǎn)之一就是超大規(guī)模集群應(yīng)用的自動(dòng)化部署,這其中包括了應(yīng)用的擴(kuò)容、縮容及其自適應(yīng)擴(kuò)縮容(HPA、VPA)。
  • 在滾動(dòng)發(fā)布的過(guò)程中,Kubernetes會(huì)對(duì)要進(jìn)行升級(jí)的應(yīng)用所屬Pod進(jìn)行逐個(gè)的替換,直至將所有的Pod都替換為新版本的Pod。整個(gè)過(guò)程中新老版本的Pod都處于在線(xiàn)、提供服務(wù)的狀態(tài)。

1.2 滾動(dòng)發(fā)布、藍(lán)綠發(fā)布、金絲雀發(fā)布的區(qū)別

  • 藍(lán)綠發(fā)布:藍(lán)綠發(fā)布是存在2個(gè)系統(tǒng),一個(gè)是正在提供服務(wù)的系統(tǒng),標(biāo)記為綠色,一個(gè)是準(zhǔn)備發(fā)布的帶有新功能的系統(tǒng),標(biāo)記為藍(lán)色。藍(lán)色系統(tǒng)用來(lái)做發(fā)布前的測(cè)試,測(cè)試過(guò)程中發(fā)現(xiàn)的任何問(wèn)題都可以直接在藍(lán)色系統(tǒng)上直接更改,不干擾用戶(hù)正在使用的系統(tǒng)。藍(lán)色系統(tǒng)經(jīng)過(guò)充分、有效的測(cè)試、驗(yàn)證后,被證明可以安全上線(xiàn)后,會(huì)將所有的用戶(hù)切到藍(lán)色系統(tǒng)上。
    【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

  • 金絲雀發(fā)布(灰度發(fā)布):金絲雀發(fā)布是只有一個(gè)系統(tǒng),對(duì)該系統(tǒng)中的應(yīng)用實(shí)例進(jìn)行逐步替換。例如系統(tǒng)中有100個(gè)服務(wù)實(shí)例,我們可以先替換掉其中的10個(gè)實(shí)例,然后系統(tǒng)給這10個(gè)實(shí)例切分流量,通過(guò)一段時(shí)間的線(xiàn)上流量的測(cè)試,如果發(fā)現(xiàn)這10個(gè)實(shí)例在功能及體驗(yàn)上沒(méi)有任何問(wèn)題,那我們繼續(xù)擴(kuò)大新實(shí)例的比例,并給新版本的實(shí)例切分更多的流量,直至全部實(shí)例替換完成。

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

  • 滾動(dòng)發(fā)布:滾動(dòng)發(fā)布只有一個(gè)系統(tǒng),雖然也是逐個(gè)替換掉系統(tǒng)中的服務(wù)實(shí)例,但是新老實(shí)例會(huì)同時(shí)在系統(tǒng)中提供服務(wù),不存在特意的流量切分。不過(guò),在Kubernetes集群中,可以利用標(biāo)簽選擇器實(shí)現(xiàn)金絲雀發(fā)布(灰度發(fā)布)的效果。

二、Kubernetes中實(shí)現(xiàn)滾動(dòng)發(fā)布

2.1 定義Kubernetes中的版本

  • 我們常說(shuō)的版本可能就是跟代碼掛鉤,就是代碼或者配置發(fā)生變動(dòng)就產(chǎn)生一個(gè)新的版本,Kubernetes中將在Yaml中對(duì)Pod的定義定義為一個(gè)版本,可參考文章Kubernetes 中 Pod 定義與操作實(shí)踐快速了解Pod定義。
  • K8S中版本定義范圍。我們?cè)赑od模版中定義了Pod使用的鏡像及其版本、鏡像拉取策略、環(huán)境變量參數(shù)等。定義Pod的Yaml內(nèi)容的變化都會(huì)產(chǎn)生一個(gè)新的版本。對(duì)Pod的定義不光是通過(guò)創(chuàng)建Pod資源對(duì)象直接創(chuàng)建,我們?cè)贒eployment 資源對(duì)象或者 DaemonSet 資源對(duì)象中的 template 字段中定義的Pod 的變化也會(huì)導(dǎo)致Pod的版本變化。
  • 版本號(hào)。Kubernetes中的版本號(hào)一般是對(duì)Deployment 資源對(duì)象或者 DaemonSet 資源對(duì)象中的 template 字段的定義部分進(jìn)行哈希,計(jì)算哈希值,取哈希值作為版本號(hào)。

2.2 創(chuàng)建 Deployment 資源對(duì)象

2.2.1 在 Yaml 中定義 Deployment 資源對(duì)象

Yaml 內(nèi)容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ngx-dep
  name: ngx-dep
  
spec:
  minReadySeconds: 20
  replicas: 4
  selector:
    matchLabels:
      app: ngx-dep
      
  template:
    metadata:
      labels:
        app: ngx-dep
    spec:
      containers:
      - image: nginx:1.24-alpine
        name: nginx

2.2.2 執(zhí)行命令創(chuàng)建 Deployment 資源對(duì)象

在終端窗口中執(zhí)行命令kubectl apply -f ngx-dep-v1.yaml:

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
使用kubectl get pod 、 kubectl get deploy 或者 kubectl describe deploy 命令查看創(chuàng)建出的資源對(duì)象的狀態(tài)。

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

三、Kubernetes中滾動(dòng)發(fā)布的管理

3.1 查看 Deployment 資源對(duì)象對(duì)應(yīng)Pod在滾動(dòng)發(fā)布中的狀態(tài)

3.1.1 查看滾動(dòng)發(fā)布狀態(tài)

執(zhí)行命令 kubectl rollout status deploy ngx-dep ,查看deploy資源名為ngx-dep 的狀態(tài):

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
終端會(huì)不斷輸出當(dāng)前滾動(dòng)發(fā)布的進(jìn)程狀態(tài),直接滾動(dòng)發(fā)布完成,完成時(shí)該命令結(jié)束會(huì)輸出deployment "xxxxxx" successfully rolled out 的字樣。

3.1.2 查看滾動(dòng)發(fā)布?xì)v史

執(zhí)行命令 kubectl rollout history deploy ngx-dep ,查看 deploy資源名為ngx-dep 的滾動(dòng)發(fā)布記錄:

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

查到滾動(dòng)發(fā)布記錄之后,我們可以通過(guò)--revision 參數(shù)來(lái)具體指定某個(gè)具體的版本,來(lái)查看該發(fā)布相對(duì)于上一個(gè)版本的變更,例如執(zhí)行 kubectl rollout history deploy --revision=2:

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

3.2 版本回退

3.2.1 回滾掉最新的滾動(dòng)發(fā)布

使用 kubectl rollout undo deploy ngx-dep 回滾掉名為 ngx-dep 的 deploy 資源對(duì)象最新的滾動(dòng)發(fā)布:

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
我們使用kubectl rollout history 命令查看發(fā)布記錄可以看到多出一個(gè)記錄4,因?yàn)榛貪L也會(huì)產(chǎn)生一個(gè)新的發(fā)布記錄。

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

3.2.2 回滾至指定版本

我們使用kubectl rollout history 命令先看下當(dāng)前有哪些版本可用:

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
我們使用kubectl rollout history deploy --revision 命令再看下版本3和版本5的內(nèi)容:

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

可以看到,這2個(gè)版本的差別僅在與所使用的Nginx 鏡像的版本號(hào)不同,現(xiàn)在使用 kubectl rollout history 命令的--to-revision 選項(xiàng)回退到我們指定的版本3(1.24-alpine):

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生

可以看到提示回滾成功了。我們看下當(dāng)前最新版本Pod的NGINX的版本號(hào):

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生
確實(shí)是我們預(yù)期的1.24-alpine。

3.3 增加版本說(shuō)明

我們需要在Deployment 資源對(duì)象的metadata字段下添加annotations 字段,就可以為查詢(xún)滾動(dòng)發(fā)布記錄的CHANGE-CAUSE 處添加對(duì)應(yīng)說(shuō)明了。此處對(duì)文件 ngx-dep-v3.yaml 進(jìn)行更改如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ngx-dep
  name: ngx-dep
  annotations:
  	kubernetes.io/change-cause: 升級(jí)Nginx的版本到1.27
  
spec:
  minReadySeconds: 20
  replicas: 4
  selector:
    matchLabels:
      app: ngx-dep
      
  template:
    metadata:
      labels:
        app: ngx-dep
    spec:
      containers:
      - image: nginx:1.27-alpine
        name: nginx

然后執(zhí)行kubectl apply -f ngx-dep-v3.yaml 命令進(jìn)行升級(jí)。然后我們使用kubectl rollout history 命令再來(lái)查看版本記錄,可以看到我們記錄的具體的變更原因了。

【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn),kubernetes,容器,云原生文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-820735.html

到了這里,關(guān)于【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • React - redux 使用(由淺入深)

    React - redux 使用(由淺入深)

    中文文檔: http://www.redux.org.cn/ 英文文檔: https://redux.js.org/ Github: https://github.com/reactjs/redux 可直接參照 目錄十 進(jìn)行使用 react-redux redux 是一個(gè)專(zhuān)門(mén)用于做狀態(tài)管理的JS庫(kù)(不是react插件庫(kù))。 它可以用在 react, angular, vue 等項(xiàng)目中, 但基本與 react 配合使用。 作用: 集中式管理 re

    2024年02月07日
    瀏覽(24)
  • 【個(gè)人筆記】由淺入深分析 ClickHouse

    項(xiàng)目中不少地方使用到ClickHouse,就對(duì)它做了一個(gè)相對(duì)深入一點(diǎn)的了解和研究。并對(duì)各種知識(shí)點(diǎn)及整理過(guò)程中的一些理解心得進(jìn)行了匯總并分享出來(lái),希望對(duì)其他同學(xué)能有幫助。 本文主要講解ClickHouse的特點(diǎn)、讀寫(xiě)過(guò)程、存儲(chǔ)形式、索引、引擎、物化視圖等特性。 適合 入門(mén)和

    2024年01月20日
    瀏覽(29)
  • 由淺入深理解C#中的事件

    本文較長(zhǎng),給大家提供了目錄,可以直接看自己感興趣的部分。 前面介紹了C#中的委托,事件的很多部分都與委托類(lèi)似。實(shí)際上,事件就像是專(zhuān)門(mén)用于某種特殊用途的簡(jiǎn)單委托,事件包含了一個(gè)私有的委托,如下圖所示: 有關(guān)事件的私有委托需要了解的重要事項(xiàng)如下: 1、事

    2024年02月03日
    瀏覽(30)
  • Springboot3+EasyExcel由淺入深

    Springboot3+EasyExcel由淺入深

    環(huán)境介紹 技術(shù)棧 springboot3+easyexcel 軟件 版本 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3 EasyExcel是一個(gè)基于Java的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的Excel處理工具。 他能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成Excel的讀、寫(xiě)等功能。 官網(wǎng)https://easyexcel.opensource.ali

    2024年01月16日
    瀏覽(28)
  • 【由淺入深學(xué)習(xí)MySQL】之索引進(jìn)階

    【由淺入深學(xué)習(xí)MySQL】之索引進(jìn)階

    本系列為:MySQL數(shù)據(jù)庫(kù)詳解,為千鋒資深教學(xué)老師獨(dú)家創(chuàng)作 致力于為大家講解清晰MySQL數(shù)據(jù)庫(kù)相關(guān)知識(shí)點(diǎn),含有豐富的代碼案例及講解。如果感覺(jué)對(duì)大家有幫助的話(huà),可以【關(guān)注】持續(xù)追更~ 文末有本文重點(diǎn)總結(jié),技術(shù)類(lèi)問(wèn)題,也歡迎大家和我們溝通交流! 從今天開(kāi)始本系列

    2024年02月05日
    瀏覽(22)
  • 手拉手Vue組件由淺入深

    手拉手Vue組件由淺入深

    組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一,它是html、css、js等的一個(gè)聚合體,封裝性和隔離性非常強(qiáng)。 組件化開(kāi)發(fā): ??? 1、將一個(gè)具備完整功能的項(xiàng)目的一部分分割多處使用 ??? 2、加快項(xiàng)目的進(jìn)度 ??? 3、可以進(jìn)行項(xiàng)目的復(fù)用 組件注冊(cè)分為:全局注冊(cè)和局部注冊(cè) 目錄

    2024年01月18日
    瀏覽(22)
  • 由淺入深介紹 Python Websocket 編程

    由淺入深介紹 Python Websocket 編程

    1.1 websocket 協(xié)議簡(jiǎn)介 Websocket協(xié)議是對(duì)http的改進(jìn),可以實(shí)現(xiàn)client 與 server之間的雙向通信; websocket連接一旦建立就始終保持,直到client或server 中斷連接,彌補(bǔ)了http無(wú)法保持長(zhǎng)連接的不足,方便了客戶(hù)端應(yīng)用與服務(wù)器之間實(shí)時(shí)通信。 適用場(chǎng)景 html頁(yè)面實(shí)時(shí)更新, 客戶(hù)端的html頁(yè)面

    2024年02月03日
    瀏覽(23)
  • 由淺入深剖析 Apollo(阿波羅)架構(gòu)

    由淺入深剖析 Apollo(阿波羅)架構(gòu)

    目錄 一、介紹 二、架構(gòu)和模塊 三、架構(gòu)剖析 1.最簡(jiǎn)架構(gòu) ?2. 高可用保障 ?3.多接口擴(kuò)展 四、總結(jié) Apollo(阿波羅)是攜程框架部研發(fā)并開(kāi)源的一款生產(chǎn)級(jí)的配置中心產(chǎn)品,它能夠集中管理應(yīng)用在不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r(shí)推送到應(yīng)用端,并且具備規(guī)范的

    2024年02月13日
    瀏覽(24)
  • 由淺入深了解機(jī)器學(xué)習(xí)和GPT原理

    由淺入深了解機(jī)器學(xué)習(xí)和GPT原理

    我不是一個(gè)機(jī)器學(xué)習(xí)專(zhuān)家,本來(lái)是一名軟件工程師,與人工智能的互動(dòng)很少。我一直渴望深入了解機(jī)器學(xué)習(xí),但一直沒(méi)有找到適合自己的入門(mén)方式。這就是為什么,當(dāng)谷歌在2015年11月開(kāi)源TensorFlow時(shí),我非常興奮,知道是時(shí)候開(kāi)始學(xué)習(xí)之旅了。不想過(guò)于夸張,但對(duì)我來(lái)說(shuō),這就

    2024年02月09日
    瀏覽(20)
  • 【由淺入深學(xué)MySQL】- MySQL連接查詢(xún)

    【由淺入深學(xué)MySQL】- MySQL連接查詢(xún)

    本系列為:MySQL數(shù)據(jù)庫(kù)詳解,為千鋒教育資深Java教學(xué)老師獨(dú)家創(chuàng)作 致力于為大家講解清晰MySQL數(shù)據(jù)庫(kù)相關(guān)知識(shí)點(diǎn),含有豐富的代碼案例及講解。如果感覺(jué)對(duì)大家有幫助的話(huà),可以【點(diǎn)個(gè)關(guān)注】持續(xù)追更~ 文末有重點(diǎn)總結(jié)和福利內(nèi)容! 技術(shù)類(lèi)問(wèn)題,也歡迎大家和我們溝通交流!

    2024年02月05日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包