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
广告