溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kubernetes怎么更新APP

發(fā)布時間:2022-01-04 14:10:58 來源:億速云 閱讀:143 作者:iii 欄目:云計算

本篇內(nèi)容介紹了“Kubernetes怎么更新APP”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

執(zhí)行滾動更新

更新應(yīng)用程序

用戶希望應(yīng)用程序隨時可用,而開發(fā)人員則希望每天多次部署新版本的應(yīng)用程序。 在Kubernetes中,這是通過滾動更新完成的。 滾動更新允許部署的更新在零停機時間內(nèi)進行,方法是使用新實例增量更新Pods實例。 新Pods將會被安排在具有可用資源的節(jié)點上。

 默認情況下,在更新期間不可用的pod的最大數(shù)量和可以創(chuàng)建的新pod的最大數(shù)量是1。 這兩個選項都可以配置為數(shù)字或百分比(pod的)。 在Kubernetes中,更新是版本控制的,任何部署更新都可以恢復(fù)到以前的(穩(wěn)定的)版本。

滾動更新概述

與應(yīng)用程序伸縮類似,如果部署是公開的,服務(wù)將只在更新期間將流量負載均衡到可用的pod 。 可用Pod是應(yīng)用程序用戶可用的實例。

滾動更新允許以下操作:

  • 將應(yīng)用程序從一個環(huán)境提升到另一個環(huán)境( 通過容器鏡像更新)

  • 回滾到以前版本

  • 持續(xù)集成和應(yīng)用程序的持續(xù)交付,并且沒有停機時間

  1. 查看資源信息的命令:kubectl get deployments; kubectl get pods;kubectl describe pods

  2. 使用set image命令將應(yīng)用程序的鏡像更新到版本2:kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2,該命令通知部署為應(yīng)用程序使用不同的映像,并啟動滾動更新。再次使用kubectl get pods檢查Pods的狀態(tài)。

  3. 驗證更新

    首先,讓我們檢查應(yīng)用程序是否正在運行。我們可以使用kubectl describe services/kubernetes-bootcamp命令找出公開的IP和端口。

    創(chuàng)建一個名為NODE_PORT的環(huán)境變量,該變量具有指定的節(jié)點端口的值:export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}') echo NODE_PORT=$NODE_PORT

    接下來,我們將對公開的IP和端口通過curl來訪問:curl $(minikube ip):$NODE_PORT,執(zhí)行多次請求,每個請求都會碰到不同的Pod,我們看到所有Pod都在運行最新版本(v2)。

    還可以通過運行rollout status命令來確認更新:kubectl rollout status deployments/kubernetes-bootcamp

    要查看應(yīng)用程序的當前鏡像版本,執(zhí)行:kubectl describe pods

  4. 回滾一個更新

    讓我們執(zhí)行另一個更新,并部署標記為v10的鏡像執(zhí)行:kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/google-samples/kubernetes-bootcamp:v10

    使用kubectl get deployments查看部署的狀態(tài)??赡軙l(fā)現(xiàn)有點問題,可用Pods的數(shù)量沒有達到我們所期望的。使用kubectl get pods查看pods狀態(tài)。kubectl describe pods命令可以提供更多的信息。從信息里可以發(fā)現(xiàn)存儲庫中沒有標為v10的鏡像。

    讓我們回到以前的可工作版本,我們將使用rollout撤銷命令:kubectl rollout undo deployments/kubernetes-bootcamp.rollout命令會將部署恢復(fù)到以前的已知狀態(tài)(v2版本鏡像)。更新是有版本控制的,您可以恢復(fù)到以前已知的任何部署狀態(tài)。再次執(zhí)行kubectl get podskubectl describe pods

“Kubernetes怎么更新APP”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI