1.創建yaml模板
kubectl create deployment web --image=Nginx --dry-run -o yaml > web.yaml
2.修改模板 vim web.yaml
apiVersion: Apps/v1
kind: Deployment
metadata:
labels:
app: web
name: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- image: zhangfan5391621/JAVA-demo
name: java
3.創建項目pod
kubectl apply -f web.yaml
kubectl logs web-dc77dd8db-hhrxz #檢查日志
kubectl get deploy #查看deployment有那些
4.創建Service服務
kubectl expose --name=web deployment web --port=80 --target-port=8080 --type=NodePort
# kubectl expose +(資源的類型)+(資源的名稱)+(service端口)+(后端服務的端口)+類型(Nodeport隨機端口)
kubectl get service #查看service服務的端口
任意一個node節點的ip+30909就能訪問該項目
5.升級服務(滾動更新)
kubectl set image deployment web java=nginx
`#kubectl set image+ 資源類型+名字(web)+ (java=nginx)原鏡像名=新鏡像名`
#kubectl edit service/web #如果配置文件有改動,直接修改server
http://192.168.106.103:30909/ #能夠訪問到最新的項目
6.回滾項目
kubectl rollout history deployment web #查看歷史版本
kubectl rollout undo deployment web #回滾到上一個版本
修改service/web端口改為8080,即可訪問上一個版本的項目,nginx和Tomcat是不同的端口
#kubectl rollout undo deployment web --revision=3 ,指定回滾版本
7.副本的擴容/縮容
kubectl scale deployment web --replicas=5
#將web服務副本擴容成5個(原來三個)
kubectl scale deployment web --replicas=2
剛才5個副本已經變成2個副本了
8.刪除service
kubectl delete deployment/web
kubectl delete svc/web