kubernetes集群系列資料08--deployment介紹
阿新 • • 發佈:2021-06-18
一、deployment案例
vim nginx-deployment.yaml ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 template: #以下為巢狀pod的欄位; metadata: labels: tier: nginx spec: containers: - name: nginx image: hub.atguigu.com/library/nginx:latest ports: - containerPort: 80 #由於k8s的網路為扁平化網路,直接可通過IP訪問,因此無需宣告埠。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kubectl apply -f nginx-deployment.yaml --record #--record引數可以記錄命令,以便檢視每次revision的變化。儘量加上該引數,如果不加,則 kubectl rollout history 查詢歷史版本時CHANGE-CAUSE的值皆為none。 kubectl get deployment;kubectl get rs;kubectl get pod --show-labels #建立deployment會自動建立對應的RS和pod出來。 kubectl get pod -o wide #檢視pod執行節點及IP; curl 10.244.2.36:80 #測試nginx服務是否能訪問。 kubectl scale deployment nginx-deployment --replicas=5 #對指定nginx-deployment進行擴容,此時,pod的RS不會發生變化; kubectl scale deployment nginx-deployment --replicas=2 #對指定nginx-deployment進行縮容,此時,pod的RS不會發生變化; kubectl get deployment;kubectl get rs;kubectl get pod #檢視擴容結果; # kubectl autoscale deployment nginx-deployment --min=2 --max=15 --cpu-percent=80 #如果叢集支援HPA的化,還可以為deployment設定為自動擴充套件。 kubectl exec nginx-deployment-567c69b49f-4vzqg -it -- /usr/sbin/nginx -v #檢視nginx版本為1.21.0; kubectl set image deployment/nginx-deployment nginx=nginx:1.19.1 #更新映象為nginx:1.19.1;也可直接edit其yaml檔案中image版本。此時,pod的RS會發生變化; kubectl exec nginx-deployment-5c5c5d7bdc-f9bvz -it -- /usr/sbin/nginx -v #檢視nginx更新後的版本為1.19.1; kubectl rollout undo deployment/nginx-deployment #回滾nginx上一個版本 kubectl rollout status deployment/nginx-deployment #檢視rollout的狀態及更新流程(按照更新策略更新)。如果rollout成功完成,將會返回一個0的exit code。 kubectl rollout history deployment/nginx-deployment #檢視rollout的歷史。 kubectl rollout pause deployment/nginx-deployment #暫停deployment的更新。 kubectl rollout undo deployment/nginx-deployment --to-revision=2 #回滾nginx指定版本; kubectl exec nginx-deployment-567c69b49f-5mnx7 -it -- /usr/sbin/nginx -v #檢視nginx更新後的版本為1.21.0; kubectl get rs #檢視rs,包含歷史RS; kubectl describe deployments #檢視deployment詳細資訊,包含變更events;