Kubernetes - 部署
部署是升级和更高版本的复制控制器。 他们管理副本集的部署,这也是复制控制器的升级版本。 他们有能力更新副本集,也有能力回滚到以前的版本。
它们提供了 matchLabels 和 selectors 的许多更新功能。 我们在 Kubernetes master 中有一个新的控制器,称为部署控制器,它可以实现。 它具有中途更改部署的能力。
更改部署
更新 − 用户可以在完成之前更新正在进行的部署。 在此,现有的部署将被解决,新的部署将被创建。
删除 − 用户可以通过在部署完成之前将其删除来暂停/取消部署。 重新创建相同的部署将恢复它。
回滚 − 我们可以回滚部署或正在进行的部署。 用户可以使用 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
在上面的代码中,唯一与副本集不同的是我们将类型定义为部署。
创建部署
$ 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