Kubernetes(K8S) 部署

  • Kubernetes 部署

    部署已升级,并且复制控制器的版本更高。他们管理副本集的部署,副本集也是复制控制器的升级版本。它们具有更新副本集的功能,也可以回滚到以前的版本。
    它们提供了matchLabel和选择器的许多更新功能。我们在Kubernetes主服务器中有了一个称为部署控制器的新控制器,它可以实现它。它具有在中途更改部署的功能。
  • 更改部署

    更新-用户可以在正在进行的部署完成之前对其进行更新。这样,将解决现有部署并创建新部署。
    删除-用户可以在完成之前通过删除部署来暂停/取消部署。重新创建相同的部署将恢复它。
    回滚-我们可以回滚部署或正在进行的部署。用户可以使用DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec创建或更新部署。
  • 部署策略

    部署策略有助于定义新的RC应该如何替换现有的RC。
    重新创建-此功能将杀死所有现有的RC,然后启动新的RC。这样可以实现快速部署,但是当旧的Pod停机并且新的Pod尚未启动时,这将导致停机。
    滚动更新-此功能逐渐降低旧RC并显示新RC。这导致部署缓慢,但是没有部署。在此过程中,始终没有可用的旧容器和新容器。
    部署的配置文件如下所示。
    
    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