k8s用kubectl管理应用升级,服务发布与回滚,扩缩容
应用升级
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管理应用升级,服务发布与回滚,扩缩容的更多相关文章
- k8s 集群管理和微服务 适合做啥
k8s 集群管理和微服务 适合做啥 都知道k8s是集群 适合微服务 有很多教程 但你可以先了解他能干啥 traefix 是负载均衡工具 k8s 适合部署无状态依赖的微服务 可以按需求开启多个微服务 管 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十一)——一步一步教你如何撸Dapr之自动扩/缩容
上一篇我们讲到了dapr提供的bindings,通过绑定可以让我们的程序轻装上阵,在极端情况下几乎不需要集成任何sdk,仅需要通过httpclient+text.json即可完成对外部组件的调用,这样 ...
- Docker Swarm 服务版本更新与回滚
Docker Swarm 服务版本更新 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1.78 工作 ...
- ansible实现发布、回滚功能
ansible的两篇博客,本来是打算合二为一的,发现只用一篇写,嗯,好鬼长.... 一向秉承简单为美的我于是忍痛割爱,一分为二了 ansible实现升级发布.回滚功能 1.应用场景 在实际生产环境中, ...
- 构建Docker平台【第四篇】创建服务及扩缩容等操作
第一步:创建服务 1. 配置 nginx 的 yaml 文件 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-ng ...
- 2、jenkins+svn自动发布和回滚
Jenkins配置回滚思路: 目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作.后续实现 以下配置可以为每个项目备份构建文件到本地指定路径 ...
- Jenkins实用发布与回滚PHP项目生产实践
目录 1.概述 2.项目实践 2.1.环境说明 2.2.Jenkins配置 2.2.1.修改Jenkins的运行用户 2.2.2.配置Jenkins用户和Gitlab的ssh-key 2.2.3.Je ...
- Jenkins 搭建企业实战案例 (发布与回滚)
让我们的代码部署变得easy,不再难,Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins非常易于安装和配置,简单易用 ...
- Docker Swarm(七)Scale 扩(缩)容服务
扩(缩)容服务 扩容服务 Service还提供了复制(类似kubernetes里的副本)功能.可以通过 docker service scale 命令来设置服务中容器的副本数: docker serv ...
随机推荐
- JavaSE07-字符串常用API
1.String 1.1 String类概述 String 类代表字符串,Java 程序中的所有字符串文字(例如"abc")都被实现为此类的实例.也就是说,Java 程序 中所有的 ...
- 【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别
最近在准备一些科普性的知识内容,发现大家对于一些基础性的知识概念还是有点模糊.今天先来简单介绍一下IaaS/PaaS/SaaS的区别~ 其实还有一个On-Premises(本地部署)的概念,也可以一并 ...
- Linux OOM Killer造成数据库访问异常排查
服务器上的服务器访问异常,查看/va/log/messages发现如下: Sep 22 16:08:21 safeserver kernel: java invoked oom-killer: gfp ...
- 图解JanusGraph系列 - 关于JanusGraph图数据批量快速导入的方案和想法(bulk load data)
大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...
- Python十大装B语法!你会几种?
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python ...
- 寻找两个数组中的公共元素Java程序代码
package lianxi; import java.util.*; public class UnionSearch { public static void main(String[] args ...
- 常用Appium API
以最右App为例 .apk文件网盘地址: 链接:https://pan.baidu.com/s/1L4MYkhpb5ECe8XeaneTx_Q 提取码:0jqm 操作类API # -*- coding ...
- 记一次Ajax请求MVC调优
问题描述 ASP.NETMVC项目,编辑页面赋值操作,ajax请求很慢. 对同一个控制器有2个请求 一个为获取该表的树形结构数据(绑定下拉框) 一个为获取某实体的单条记录(编辑操作) 排查过程 数据库 ...
- 【命令】set命令
1.查看所有的本地变量和环境变量. 2.检测变量是否定义: 开启检测功能: set -u 关闭检测功能: set +u [root@localhost likui]# unset mm 删除了m ...
- 微信小程序--每周图书推荐
这是我个人的第一个原生微信小程序,作为一枚萌新,自己没有前端经历,所以代码很混乱,界面很简单,难度也很低,主要用来记录自己学小程序过程中遇到的问题. 一. 先上预览图 左右滑动切换每周推荐的图书,点击 ...