您好,登錄后才能下訂單哦!
示例:
創(chuàng)建一個(gè)app:
kubectl create deployment nginx --image=nginx:1.11
創(chuàng)建service
kubectl expose deployment nginx --port=80 --type=NodePort
擴(kuò)縮容:
kubectl scale deployment nginx --replicas=5
修改鏡像,滾動(dòng)更新:
kubectl set image deployment nginx nginx=nginx:1.10
或者
kubectl edit deployment/nginx
查看更新狀態(tài):
kubectl rollout status deployment nginx
終止升級(jí)
kubectl rollout pause deployment/nginx
繼續(xù)升級(jí)
kubectl rollout resume deployment/nginx
回滾
kubectl rollout undo deployment/nginx
回滾到指定版本
kubectl rollout undo deployment/nginx --to-revision=2
查看滾動(dòng)版本:
kubectl rollout history deployment nginx
查看信息:
kubectl describe deployment/nginx
幾個(gè)重要參數(shù)說明
maxSurge與maxUnavailable
maxSurge: 1 表示滾動(dòng)升級(jí)時(shí)會(huì)先啟動(dòng)1個(gè)pod
maxUnavailable: 1 表示滾動(dòng)升級(jí)時(shí)允許的最大Unavailable的pod個(gè)數(shù)
由于replicas為3,則整個(gè)升級(jí),pod個(gè)數(shù)在2-4個(gè)之間
terminationGracePeriodSeconds
k8s將會(huì)給應(yīng)用發(fā)送SIGTERM信號(hào),可以用來正確、優(yōu)雅地關(guān)閉應(yīng)用,默認(rèn)為30秒。
如果需要更優(yōu)雅地關(guān)閉,則可以使用k8s提供的pre-stop lifecycle hook 的配置聲明,將會(huì)在發(fā)送SIGTERM之前執(zhí)行。
livenessProbe與readinessProbe
livenessProbe是kubernetes認(rèn)為該pod是存活的,不存在則需要kill掉,然后再新啟動(dòng)一個(gè),以達(dá)到replicas指定的個(gè)數(shù)。
readinessProbe是kubernetes認(rèn)為該pod是啟動(dòng)成功的,這里根據(jù)每個(gè)應(yīng)用的特性,自己去判斷,可以執(zhí)行command,也可以進(jìn)行httpGet。比如對(duì)于使用java web服務(wù)的應(yīng)用來說,并不是簡(jiǎn)單地說tomcat啟動(dòng)成功就可以對(duì)外提供服務(wù)的,還需要等待spring容器初始化,數(shù)據(jù)庫(kù)連接連接上等等。對(duì)于spring boot應(yīng)用,默認(rèn)的actuator帶有/health接口,可以用來進(jìn)行啟動(dòng)成功的判斷。
其中readinessProbe.initialDelaySeconds可以設(shè)置為系統(tǒng)完全啟動(dòng)起來所需的最少時(shí)間,livenessProbe.initialDelaySeconds可以設(shè)置為系統(tǒng)完全啟動(dòng)起來所需的最大時(shí)間+若干秒。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。