Kubernetes - 部署



部署是複製控制器的升級和更高版本。它們管理副本集的部署,副本集也是複製控制器的升級版本。它們能夠更新副本集,也能夠回滾到之前的版本。

它們提供了許多更新的匹配標籤選擇器功能。我們在 Kubernetes 主節點中獲得了一個新的控制器,稱為部署控制器,它使這一切成為可能。它能夠中途更改部署。

更改部署

更新 - 使用者可以在部署完成之前更新正在進行的部署。在此過程中,現有部署將被結算,並將建立新的部署。

刪除 - 使用者可以在部署完成之前透過刪除來暫停/取消部署。重新建立相同的部署將恢復它。

回滾 - 我們可以回滾部署或正在進行的部署。使用者可以使用DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec來建立或更新部署。

部署策略

部署策略有助於定義新的 RC 如何替換現有的 RC。

重新建立 - 此功能將終止所有現有 RC,然後啟動新的 RC。這導致快速部署,但是當舊 Pod 關閉而新 Pod 尚未啟動時,會導致停機。

滾動更新 - 此功能會逐漸關閉舊 RC 並啟動新的 RC。這導致部署緩慢,但是沒有停機時間。在此過程中,始終有一些舊 Pod 和一些新 Pod 可用。

部署的配置檔案如下所示。

apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
   name: Tomcat-ReplicaSet
spec:
   replicas: 3
   template:
      metadata:
         lables:
            app: Tomcat-ReplicaSet
            tier: Backend
   spec:
      containers:
         - name: Tomcatimage:
            tomcat: 8.0
            ports:
               - containerPort: 7474

在上面的程式碼中,與副本集唯一不同的是我們將 kind 定義為 deployment。

建立部署

$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.

獲取部署

$ kubectl get deployments
NAME           DESIRED     CURRENT     UP-TO-DATE     AVILABLE    AGE
Deployment        3           3           3              3        20s

檢查部署狀態

$ kubectl rollout status deployment/Deployment

更新部署

$ kubectl set image deployment/Deployment tomcat=tomcat:6.0

回滾到之前的部署

$ kubectl rollout undo deployment/Deployment –to-revision=2
廣告