Kubernetes - 部署

升级部署和更高版本的复制控制器.它们管理副本集的部署,副本集也是复制控制器的升级版本.它们能够更新副本集,并且还能够回滚到以前的版本.

它们提供了 matchLabels 的许多更新功能.选择的.我们在Kubernetes master中有一个名为部署控制器的新控制器,它实现了它.它能够在中途改变部署.

更改部署

更新 : 用户可以在完成之前更新正在进行的部署.在此,将解决现有部署并创建新部署.

删除 : 用户可以在完成之前通过删除部署来暂停/取消部署.重新创建相同的部署将恢复它.

回滚 : 我们可以回滚部署或正在进行的部署.用户可以使用 DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec创建或更新部署.

部署策略

部署策略有助于定义新RC如何取代现有RC.

重新创建 : 此功能将杀死所有现有的RC,然后调出新的RC.这会导致快速部署,但是当旧容器关闭且新容器没有启动时会导致停机.

滚动更新 : 这个功能逐渐降低了旧的RC并带来了新的RC.这导致部署缓慢,但是没有部署.在这个过程中,任何时候都很少有旧的pod和很少的新pod.

Deployment的配置文件看起来像这样.

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

在上面的代码中,唯一与副本集不同的是我们已经将类型定义为部署.

创建部署

$ 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