zoukankan      html  css  js  c++  java
  • Kubernetes之Deployment控制器

    Deployment

    简介

    Deployment(简称deploy)构建于replicaset和pod之上,其大部分功能能通过调用replicaset来实现。

    • 事件和状态查看:可查看deploy升级的详细进度和状态
    • 回滚:支持返回到前一个或用户指定的版本
    • 版本记录:每一次deploy操作进行记录,用于回滚
    • 暂停和启动:升级过程中可以暂停和启动
    • 多种自动更新方案:recreate,删除重建机制。rollingupdate,滚动更新机制。

    详细操作

    创建一个deploy的yaml文件

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deploy
      labels:
        k8s-app: nginx-demo
    spec:
      replicas: 3
      strategy:
        type: recreate #升级方式
        rollingUpdate:##由于replicas为3,则整个升级,pod个数在2-4个之间
          maxSurge: 3 #滚动升级时会先启动3个pod
          maxUnavailable: 1 #滚动升级时允许的最大Unavailable的pod个数
      template:
        metadata:
          labels:
            app: nginx
        spec:
          nodeName: ecs28-201.host.com
          containers:
          - name: nginx
            image: harbor.od.com/public/nginx:v1.7.9
            ports:
            - containerPort: 80

    maxSurge和maxUnavailable

    maxSurge: 1 表示滚动升级时会先启动1个pod

    maxUnavailable:1  表示滚动升级时允许的最大Unavailable的pod个数。由于replicas为3,则整个升级,pod个数在2-4个之间

    minReadySeconds

    minReadySeconds: 5 表示pod启动5s后可以对外提供服务,并开始下一个pod的更新

    回滚操作

    可以使用minReadySeconds来记录保留版本数量

    kubectl apply -f dp.yaml --record

    --record 的作用是将当前命令记录到 revision 记录中,不添加只记录版本不记录命令

    可以通过改命令查看历史

    [root@ecs28-201 ~]# kubectl rollout history deploy nginx-deploy
    deployment.extensions/nginx-deploy 
    REVISION  CHANGE-CAUSE
    1         <none>
    2         kubectl apply --filename=dp.yaml --record=true

    版本回退

    kubectl rollout undo deploy nginx-deploy --to-revision=1
    加油,你们是最棒的!
  • 相关阅读:
    HTML介绍
    python D41 前端初识
    mysql索引原理与查询优化
    python D41
    python D40 pymsql和navicat
    python D40 以及多表查询
    python D35 selectors模块
    python D35 I/O阻塞模型
    测试过程
    测试基础
  • 原文地址:https://www.cnblogs.com/Wshile/p/12575849.html
Copyright © 2011-2022 走看看