Kubernetes 部署
部署已升级,复制控制器版本更高。他们管理副本集的部署,这也是复制控制器的升级版本。它们具有更新副本集的能力,也能够回滚到以前的版本。
它们提供了
matchLabels 和
选择器 的许多更新功能。我们在 Kubernetes master 中有一个新的控制器,称为部署控制器,它实现了。它具有中途更改部署的能力。
更改部署
更新-用户可以在完成之前更新正在进行的部署。在此,现有部署将被解决并创建新部署。
删除-用户可以通过在部署完成之前将其删除来暂停/取消部署。重新创建相同的部署将恢复它。
回滚-我们可以回滚部署或正在进行的部署。用户可以使用
DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.创建或更新部署
部署策略
部署策略有助于定义新 RC 应如何取代现有 RC。
重新创建-此功能将杀死所有现有的 RC,然后调出新的。这会导致快速部署,但是当旧 Pod 关闭而新 Pod 没有出现时,它会导致停机。
滚动更新-此功能会逐渐降低旧的 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