kubernets(k8s)使用-Deployment


Deployment是⼀個⽐RS應⽤模式更⼴的API對象,可以是創建⼀個新的服務,更新⼀個新的服務,也可以是滾動升級⼀個服務。滾動升級⼀個服務。
實際是創建⼀個新的RS,然後逐漸將新RS中副本數增加到理想狀態,將舊RS中的副本數減少到0的複合操作;這樣⼀個複合操作⽤⼀個RS是不太好描述的,所以⽤⼀個更通⽤的Deployment來描述。

1.創建Deployment

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3		# 創建副本個數
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image:  docker.io/nginx:1.7.9
        imagePullPolicy: IfNotPresent  
        ports:
        - containerPort: 80
          protocol: TCP

查看deployments 創建過程
kubectl get deployments -w
在這裏插入圖片描述

2. 更新Deployment

Deployment 的 rollout 當且僅當 Deployment 的 pod template(例如.spec.template )中的 label 更新或者鏡像更改時被觸發。其他更新,例如擴容 Deployment 不會觸發 rollout。

2.1 使用set image更新

kubectl set image deployment/nginx nginx=nginx:1.9.1
在這裏插入圖片描述

2.2 使用kubectl edit更新

在這裏插入圖片描述
查看rollout 狀態:kubectl rollout status deployment/nginx
在這裏插入圖片描述

3. 暫停/重啓Deployment跟新

暫停:kubectl rollout pause deployment/nginx
重啓:kubectl rollout resume deployment/nginx

【例】:首先暫停deployment/nginx的更新,修改nginx版本號,查看rs發現並沒有更新,此時重啓deployment/nginx的更新,發現升級正常,通常用於升級過程中發現版本有問題,可暫停更新,重新修改鏡像版本,再啓用版本更新
更新nginx版本
在這裏插入圖片描述

重啓nginx版本更新在這裏插入圖片描述
動態查看rs
在這裏插入圖片描述

4. 回滾Deployment

4.1 查看升級歷史

kubectl rollout history deployment/nginx
在這裏插入圖片描述
查看版本詳細信息
kubectl rollout history deployment/nginx --revision=1
在這裏插入圖片描述

4.2 回滾到上個版本

kubectl rollout undo deployment/nginx

4.3 回滾到指定版本

kubectl rollout undo deployment/nginx --to-revision=1

5 擴容(增加副本數)

kubectl scale deployment nginx --replicas 5
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章