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