k8s的流程
- 編寫dockerfile
- 使用控制器來部署應用
- 使用服務來對外暴露應用
1. 建立應用
使用指令來建立
kubectl create deployment nginx --image=nginx:1.14
使用yaml檔案建立
kubectl create deployment nginx --image=nginx:1.14 --dry-run=client -o yaml > nginx.yaml
#空運作建立一個nginx的yaml檔案
kubectl apply -f nginx.yaml
2.服務應用
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort
#暴露服務端口
#--port:是pod内部通信的端口
#--target-port:是服務的端口,和dockerfile裡的expose暴露的端口一緻
3. 服務更新
把nginx從1.14更新到1.15版本
使用yaml檔案更新
使用kubectl edit deployment/nginx, 找到image進行修改
使用指令更新
kubectl set image deployment nginx nginx=nginx:1.5
4. 服務縮放 (水準擴容,橫向擴容)
kubectl scale deployment nginx --replicas=2
#pod裡擴容到兩台
#也可以在yaml檔案裡修改replicas 副本數
5. 服務復原
復原到上一個版本
kubectl rollout undo deployment nginx
檢視曆史版本
kubectl rollout history deployment nginx
給曆史版本寫上注釋
kubectl annotate deployment/nginx kubernetes.io/change-cause="$資訊"
#隻能修改最後的一個版本
檢視曆史版本的詳細資訊
kubectl rollout history deployment nginx --revision=1
復原到指定版本
kubectl rollout undo deployment nginx --to-revision=1
6. 服務删除