controller(Deployment)概述和應用場景
- 什么是controller
- Pod和Controller關系
- Deployment控制器應用場景
- 使用deployment部署時yaml中欄位說明相互關系建立
- Deployment控制器部署應用
- 匯出yaml檔案
- 使用yaml部署應用
- 對外發布(暴露埠號)
- 升級回滾
- 應用升級
- 應用回滾
- 彈性伸縮
什么是controller
確保預期的pod副本數量,確保所有的node運行同一個pod
一次性任務和定時任務
無狀態應用部署
無狀態應用部署
- 在集群上管理和運行Pod的物件
Pod和Controller關系
- Pod是通過Controller實作應用運維,比如伸縮和滾動升級等等
- Pod和Controller之間通過label標簽建立關系

Deployment控制器應用場景
- 部署無狀態應用(web,nginx等)
- 管理Pod和ReplicaSet
- 部署,滾動升級等功能
** 應用場景:web服務,微服務
使用deployment部署時yaml中欄位說明相互關系建立
pod和cotroller通過label和selector

Deployment控制器部署應用
kubectl create deployment web --image=nginx // 只是一種測驗
kubectl create deployment --image=ngix -o yaml >web01.yaml //匯出到yaml檔案中,也可以修改
kubectl apply -f web.yaml //使用yaml檔案應用部署
kubectl get pods //查看pod資訊
匯出yaml檔案
kubectl create deployment --image=ngix -o yaml >web01.yaml
使用yaml部署應用
kubectl apply -f web.yaml //使用yaml檔案應用部署
kubectl get pods //查看pod資訊
對外發布(暴露埠號)
kubectl expose deployment web01 --port=80 --type=NodePort --target-port=80 --name=web02 -o yaml > web02.yaml
kubectl get pods,service //查看對外埠號,slave節點也可以訪問

最后使用slave節點訪問結果如下:

升級回滾
應用升級
kubectl set image deployment [pod名] nginx=nginx:1.15 //將鏡像從1.14升級到1.15
升級的程序:
使用副本替換,并不是停止原來的1.14版本即服務不中斷,而是下載新的1.15再替換掉正在運行的舊版本,依次替換,

程序

docker中的鏡像,我們發現docker下載了nginx的1.15版本

查看升級狀態
kubectl rollout status deployment web01 //查看升級狀態

應用回滾
將nginx回滾到1.14
查看歷史版本
kubectl rollout history deployment web01 // 查看歷史升級版本

回到上一個版本
kubectl rollout undo deployment web01 //還原到上一個版本

回滾到指定的版本中去
kubectl rollout undo deployment web01 --to-version=2 //回滾到指定版本

彈性伸縮
kubectl get pods //查看pod狀態
kubectl scale deployment web01 --replicas=10 //伸縮的值

這個就是彈性伸縮特點,提供多種服務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/317735.html
標籤:其他
上一篇:Linux 檔案基本操作
下一篇:Nginx 的深入學習
