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