Deployment控制器原理和日常操作

Pod與控制器的關係?
1)Controllers:在集羣上管理和運行容器的對象。
2)通過label-selector相關聯pod。
3)Pod通過控制器實現應用的運維,如伸縮,滾動升級等。

Deployment功能和應用場景?
1)管理無狀態服務。
2)管理Pod和replicaset。
3)具備上線部署,副本設定,滾動升級,回滾等功能。
4)提供申明式更新,例如只哥更新一個新的Image。
應用場景:Web服務,微服務。

1、創建deployment
#kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml  通過命令創建yaml文件。
#kubeclt apply -f web.yaml
#kubeclt get deploy,pods

2、發佈,暴露應用端口
#kubectl expose deployment web --port=80 --type=NodePort --target-port=8080 --name=web 
#kubectl get service

3、升級
#kubectl set image deployment web java=nginx   #鏡像更新
#kubectl rollout status deployment/nginx    #查看升級狀態
#kubectl edit deployment/web
#kubectl edit svc/web

4、回滾
#kubectl rollout history deployment web     #查看deployment的日誌信息
#kubectl rollout undo deployment/web    #回滾到上次個版本
#kubectl rollout undo deployment/web --revision=2   #回滾到指定版本

5、刪除
#kubeclt delete deployment web  #徹底刪除,如果只刪除容器不行。

6、擴容副本
#kubectl scale deployment web --replicas=5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章