应用升级

Kubectl set image --help 有案例指定新版本

[root@k8s-master ~]# kubectl set image deployment/nginx nginx=nginx:1.11

升级之后他会将所有版本进行替换,用describe来查看版本

[root@k8s-master ~]# kubectl get pods

NAME                       READY     STATUS    RESTARTS   AGE

busybox-5d4f595646-dzjv4   1/1       Running   0          2d

nginx-76c4c6d6d8-5w825     1/1       Running   0          2m

nginx-76c4c6d6d8-bh2sm     1/1       Running   0          2m

nginx-76c4c6d6d8-cwhw5     1/1       Running   0          1m

用describe来查看版本,看到版本已经升级为1.11版本了,另外下面还有他的输出信息

[root@k8s-master ~]# kubectl describe po/nginx-76c4c6d6d8-cwhw5

nginx:

Container ID:   docker://ca046dd27d86bc10f330131be7ba5b91b14cb555c5d9677bb23f481e4e69aa67

Image:          nginx:1.11

第二种修改应用版本===可以使用edit

直接进行编辑就行

[root@k8s-master ~]# kubectl edit deploy/nginx

找到image直接修改进行保存,升级之后他会将所有版本进行替换,用describe来查看版本

等启动之后查看pod重启新的镜像已经运行了

[root@k8s-master ~]# kubectl get pods

NAME                       READY     STATUS    RESTARTS   AGE

busybox-5d4f595646-dzjv4   1/1       Running   0          2d

nginx-7454cd89d8-fpncj     1/1       Running   0          5m

nginx-7454cd89d8-gdz8c     1/1       Running   0          4m

nginx-7454cd89d8-tlngj     1/1       Running   0          5m

用describe查看Pod镜像信息

[root@k8s-master ~]# kubectl describe po/nginx-7454cd89d8-tlngj

nginx:

Container ID:   docker://6768df2391defe44097e3ce2a857529ec614d49962181c1cf541c1bbc6dbce08

Image:          nginx:1.15

用node端直接访问查看版本

[root@k8s-node1 ~]# curl -I 10.10.10.173:88

HTTP/1.1 200 OK

Server: nginx/1.15.12

Date: Mon, 08 Jul 2019 04:23:42 GMT

查看版本升级信息

[root@k8s-master ~]# kubectl rollout history deploy/nginx

deployments "nginx"

REVISION  CHANGE-CAUSE

1         <none>

2         <none>

3         <none>

记录版本信息状态,便于回滚

[root@k8s-master ~]# kubectl set image deployment/nginx nginx=nginx:1.16 --record

[root@k8s-master ~]# kubectl rollout history deploy/nginx

deployments "nginx"

REVISION  CHANGE-CAUSE

1         <none>

2         <none>

3         <none>

4         kubectl set image deployment/nginx nginx=nginx:1.16 --record=true

进行回滚用rollout undo,默认恢复到上一个版本也就是1.15

[root@k8s-master ~]# kubectl rollout undo deploy/nginx

默认少一个3,也就是回到上次第三次版本了

[root@k8s-master ~]# kubectl rollout history deploy/nginx

deployments "nginx"

REVISION  CHANGE-CAUSE

1         <none>

2         <none>

4         kubectl set image deployment/nginx nginx=nginx:1.16 --record=true

5         <none>

[root@k8s-master ~]# kubectl describe po/nginx-7454cd89d8-txjpm

Containers:

nginx:

Container ID:   docker://f17b88c301d61b8c75a46cba84d97c285f5d61886c081b3cfc9c0668e5cbf4e3

Image:          nginx:1.15

业务量突然增加,我们需要增加副本

[root@k8s-master ~]# kubectl scale deploy/nginx --replicas=10

deployment "nginx" scaled

[root@k8s-master ~]# kubectl get pod

NAME                       READY     STATUS    RESTARTS   AGE

busybox-5d4f595646-dzjv4   1/1       Running   0          2d

nginx-7454cd89d8-4cct8     1/1       Running   0          19s

nginx-7454cd89d8-75tvg     1/1       Running   0          7m

nginx-7454cd89d8-7v5qp     1/1       Running   0          1m

nginx-7454cd89d8-dtsgq     1/1       Running   0          19s

nginx-7454cd89d8-hjcpw     1/1       Running   0          7m

nginx-7454cd89d8-mhhww     1/1       Running   0          19s

nginx-7454cd89d8-txjpm     1/1       Running   0          7m

nginx-7454cd89d8-vkmjn     1/1       Running   0          19s

nginx-7454cd89d8-z8dbn     1/1       Running   0          19s

nginx-7454cd89d8-zn8pm     1/1       Running   0          1m

业务量下降我们进行缩容

[root@k8s-master ~]# kubectl scale deploy/nginx --replicas=5

[root@k8s-master ~]# kubectl get pod

NAME                       READY     STATUS    RESTARTS   AGE

busybox-5d4f595646-dzjv4   1/1       Running   0          2d

nginx-7454cd89d8-75tvg     1/1       Running   0          8m

nginx-7454cd89d8-7v5qp     1/1       Running   0          3m

nginx-7454cd89d8-hjcpw     1/1       Running   0          8m

nginx-7454cd89d8-txjpm     1/1       Running   0          8m

nginx-7454cd89d8-zn8pm     1/1       Running   0          3m

要是不需要这些资源或者换项目了

直接用delete=======删除deploy还有service

[root@k8s-master ~]# kubectl delete deploy/nginx

deployment "nginx" deleted

[root@k8s-master ~]# kubectl delete svc/nginx-service

查看资源已经删除

[root@k8s-master ~]# kubectl get all

k8s用kubectl管理应用升级,服务发布与回滚,扩缩容的更多相关文章

  1. k8s 集群管理和微服务 适合做啥

    k8s 集群管理和微服务 适合做啥 都知道k8s是集群 适合微服务 有很多教程 但你可以先了解他能干啥 traefix 是负载均衡工具 k8s 适合部署无状态依赖的微服务 可以按需求开启多个微服务 管 ...

  2. 通过Dapr实现一个简单的基于.net的微服务电商系统(十一)——一步一步教你如何撸Dapr之自动扩/缩容

    上一篇我们讲到了dapr提供的bindings,通过绑定可以让我们的程序轻装上阵,在极端情况下几乎不需要集成任何sdk,仅需要通过httpclient+text.json即可完成对外部组件的调用,这样 ...

  3. Docker Swarm 服务版本更新与回滚

    Docker Swarm 服务版本更新 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1.78 工作 ...

  4. ansible实现发布、回滚功能

    ansible的两篇博客,本来是打算合二为一的,发现只用一篇写,嗯,好鬼长.... 一向秉承简单为美的我于是忍痛割爱,一分为二了 ansible实现升级发布.回滚功能 1.应用场景 在实际生产环境中, ...

  5. 构建Docker平台【第四篇】创建服务及扩缩容等操作

    第一步:创建服务 1. 配置 nginx 的 yaml 文件 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-ng ...

  6. 2、jenkins+svn自动发布和回滚

    Jenkins配置回滚思路: 目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作.后续实现 以下配置可以为每个项目备份构建文件到本地指定路径 ...

  7. Jenkins实用发布与回滚PHP项目生产实践

    目录 1.概述 2.项目实践 2.1.环境说明 2.2.Jenkins配置 2.2.1.修改Jenkins的运行用户 2.2.2.配置Jenkins用户和Gitlab的ssh-key 2.2.3.Je ...

  8. Jenkins 搭建企业实战案例 (发布与回滚)

    让我们的代码部署变得easy,不再难,Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins非常易于安装和配置,简单易用 ...

  9. Docker Swarm(七)Scale 扩(缩)容服务

    扩(缩)容服务 扩容服务 Service还提供了复制(类似kubernetes里的副本)功能.可以通过 docker service scale 命令来设置服务中容器的副本数: docker serv ...

随机推荐

  1. C# 9.0中引入的新特性init和record的使用思考

    写在前面 .NET 5.0已经发布,C# 9.0也为我们带来了许多新特性,其中最让我印象深刻的就是init和record type,很多文章已经把这两个新特性讨论的差不多了,本文不再详细讨论,而是通过 ...

  2. NFS文件共享服务器搭建

    环境准备 centos 7.x+ 两台 192.168.40.128(用作NFS服务端) 192.168.40.129(用作NFS客户端) NFS服务端部署(192.168.40.128 机器上面执行 ...

  3. oracle 常用语句3

    - oracle 函数 select sign(-3),sign(3), sign(0) from dual; select ceil(3.7) from dual; select floor(3.7 ...

  4. java_day_02

    一.return的两个作用 1.停止当前方法 2.将后面的结果数据返回值还给调用处 二.方法的三种调用格式 1.单独调用:方法名(参数): public class Method { public s ...

  5. 根据json数据和HTML模板,渲染嵌套的HTML

    2020-12-22 11:53:23 星期二 场景, HTML模板是多个div嵌套, 里边有列表, 也有键值对, 与之匹配的有一个json数据, 需要根据json去渲染这个HTML DOM 示例截图 ...

  6. Docker 部署 _实现每日情话 定时推送(apscheduler)

    由于最近工作比较忙,后续博客可能更新不及时,哈哈 前言: 由于python对于微信推送不够友好,需要扫码登录,短信接口需要RMB.我就想到了qq邮箱发送到好友,然而微信有qq邮箱提醒功能,就实现了我需 ...

  7. CentOS7下常用安装服务软件yum方式的介绍

    简介:介绍yum软件包的管理并配置本地yum源 yum安装:基于 C/S 架构,yum安装称之为傻瓜式安装 yum安装优点:方便快捷,不用考虑包依赖,自动下载软件包. yum安装缺点:人为无法干预,无 ...

  8. 【linux】系统编程-2-消息队列

    目录 前言 4. 消息队列 4.1 概念 4.2 对比 4.3 函数及使用流程 4.3.1 msgget() 4.3.2 msgsng() 4.3.3 msgrcv() 4.3.4 msgctl() ...

  9. docker 使用笔记

    docker 使用笔记 1. 与宿主机之间拷贝文件 docker cp test.html 99f952ac05e6cd879f14aa6c9d0db02aaf498634edc4f6cdc9953c ...

  10. [LeetCode]86. Partition List分离链表

    /* 这个题是medium的意思应该是用双指针的方法做,如果使用下边的新建链表的方法,就是easy的题目了 双指针会用到很多链表的相连操作 */ public ListNode partition(L ...