zoukankan      html  css  js  c++  java
  • Centos 7 k8s Deployment新副本控制器

    一、概念

      Kubernetes提供了一种更加简单的更新RC和Pod的机制,叫做Deployment。通过在Deployment中描述你所期望的集群状态,Deployment Controller会将在现在的集群状态在一个可控的速度下逐步更新成你所期望的集群状态,Deployment 主要职责同样是为了保证pod的数量和健康,90%的功能与Replication Controller完全一样,可以看做新一代的Replication Controller。但是,它又具备了Replication Controller之外的新特性。

      Replication Controller全部功能:Deployment继承了上面描述的Replication Controller全部功能。

      事件和状态查看:可以查看Deployment的升级详细进度和状态。

      回滚:档升级pod镜像或者相关参数的时候发现问题,可以使用回滚操作回滚带上一个稳定的版本或者指定的版本。

      版本记录:每一次对Deployment的操作,都能保存下来,给予后续可能的回滚使用。

      暂停和启动:对于每一次升级,都能够随时暂停和启动。

      多种升级方案:Recreate-----删除所有已存在的pod,重新创建新的。RollingUpdate----滚动升级,逐步替换的策略,同事滚动升级时,支持更多的附加参数,例如设置最大不可用pod数量,最小升级间隔时间等等。

       

     二、配置实例

      1、修改配置命令

    [root@k8s-master ~]# vim nginx-deployment.yaml
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: web
        spec:
          containers:
          - name: web
            image: 192.168.125.130:5000/nginx:1.19
            ports:
            - containerPort: 80

      2、基于配置文件创建容器

    [root@k8s-master ~]# kubectl create -f nginx-deployment.yaml
    [root@k8s-master ~]# kubectl get all
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    deploy/nginx-deployment 3 3 3 2 17s
    
    NAME DESIRED CURRENT READY AGE
    rc/nginx2 3 3 3 18h
    
    NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    svc/kubernetes 10.254.0.1 <none> 443/TCP 3d
    
    NAME DESIRED CURRENT READY AGE
    rs/nginx-deployment-3637952344 3 3 2 16s
    
    NAME READY STATUS RESTARTS AGE
    po/nginx 1/1 Running 1 21h
    po/nginx-deployment-3637952344-50pgk 0/1 ContainerCreating 0 16s
    po/nginx-deployment-3637952344-js979 1/1 Running 0 16s
    po/nginx-deployment-3637952344-ltwfm 1/1 Running 0 16s
    po/nginx2-516gh 1/1 Running 1 18h
    po/nginx2-p56cf 1/1 Running 1 18h
    po/nginx2-v6t11 1/1 Running 1 18h

      3、升级版本

    [root@k8s-master ~]# kubectl edit nginx-deployment                     修改配置文件,所有的配置文件都存放在etcd里面

     随即就会创建基于1.13版本的容器

     

       4、记录版本

    [root@k8s-master ~]# kubectl delete deployment nginx-deployment
    [root@k8s-master ~]# kubectl create -f nginx-deployment.yaml  --record                  创建容器,加上描述参数
    [root@k8s-master ~]# kubectl get rs -o wide 查看容器名称,标签

      5、降级版本

    [root@k8s-master ~]# kubectl set image deploy nginx-deployment web=192.168.125.130:5000/nginx:1.13
    [root@k8s-master ~]# kubectl get all
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    deploy/nginx-deployment 3 3 3 3 6m
    
    NAME DESIRED CURRENT READY AGE
    rc/nginx2 3 3 3 18h
    
    NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    svc/kubernetes 10.254.0.1 <none> 443/TCP 3d
    
    NAME DESIRED CURRENT READY AGE
    rs/nginx-deployment-3150364498 3 3 3 31s
    rs/nginx-deployment-3637952344 0 0 0 6m
    
    NAME READY STATUS RESTARTS AGE
    po/nginx 1/1 Running 1 22h
    po/nginx-deployment-3150364498-79c79 1/1 Running 0 29s
    po/nginx-deployment-3150364498-bfkmj 1/1 Running 0 31s
    po/nginx-deployment-3150364498-k72dn 1/1 Running 0 31s
    po/nginx2-516gh 1/1 Running 1 18h
    po/nginx2-p56cf 1/1 Running 1 18h
    po/nginx2-v6t11 1/1 Running 1 18h

      6、回滚版本

    [root@k8s-master ~]# kubectl rollout history deployment nginx-deployment                  查看历史版本
    deployments "nginx-deployment"
    REVISION    CHANGE-CAUSE
    1        kubectl create -f nginx-deployment.yaml --record
    2        kubectl set image deploy nginx-deployment web=192.168.125.130:5000/nginx:1.13
    [root@k8s-master ~]# kubectl rollout undo deployment nginx-deployment --to-revision=1     回滚到历史1的版本
    deployment "nginx-deployment" rolled back
    [root@k8s-master ~]#

       7、简单快捷命令

    [root@k8s-master ~]# kubectl delete -f nginx-deployment.yaml                        删除容器
    [root@k8s-master ~]# kubectl run nginx --image=192.168.125.130:5000/nginx:1.19 --replicas=5 --record 命令创建容器
    [root@k8s-master ~]# kubectl set image deploy nginx nginx=192.168.125.130:5000/nginx:1.13 修改容器版本

      8、几种升级、降级的操作

     三、pha组件安装

      pha可以管理Deployment,也可以管理RC,是副本之上的资源。

    [root@k8s-master ~]# kubectl autoscale deployment nginx --max=8 --min=2 --cpu-percent=80
  • 相关阅读:
    傻逼Eclipse笔记
    Less笔记
    [转]解决WebClient或HttpWebRequest首次连接缓慢问题
    Css3图标库
    Json.Net4.5 序列化问题
    async和await
    CLR、内存分配和垃圾回收
    C#7.0新语法
    C#6.0新语法
    C#泛型详解
  • 原文地址:https://www.cnblogs.com/aqicheng/p/13090136.html
Copyright © 2011-2022 走看看