1. 程式人生 > 其它 >kubernetes集群系列資料08--deployment介紹

kubernetes集群系列資料08--deployment介紹

一、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;