k8s用kubectl管理应用升级,服务发布与回滚,扩缩容

应用升级

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

[[email protected] ~]# kubectl set image deployment/nginx nginx=nginx:1.11

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

[[email protected] ~]# 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版本了,另外下面还有他的输出信息

[[email protected] ~]# kubectl describe po/nginx-76c4c6d6d8-cwhw5

nginx:

Container ID:   docker://ca046dd27d86bc10f330131be7ba5b91b14cb555c5d9677bb23f481e4e69aa67

Image:          nginx:1.11

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

直接进行编辑就行

[[email protected] ~]# kubectl edit deploy/nginx

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

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

[[email protected] ~]# 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镜像信息

[[email protected] ~]# kubectl describe po/nginx-7454cd89d8-tlngj

nginx:

Container ID:   docker://6768df2391defe44097e3ce2a857529ec614d49962181c1cf541c1bbc6dbce08

Image:          nginx:1.15

用node端直接访问查看版本

[[email protected] ~]# 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

查看版本升级信息

[[email protected] ~]# kubectl rollout history deploy/nginx

deployments "nginx"

REVISION  CHANGE-CAUSE

1         <none>

2         <none>

3         <none>

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

[[email protected] ~]# kubectl set image deployment/nginx nginx=nginx:1.16 --record

[[email protected] ~]# 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

[[email protected] ~]# kubectl rollout undo deploy/nginx

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

[[email protected] ~]# 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>

[[email protected] ~]# kubectl describe po/nginx-7454cd89d8-txjpm

Containers:

nginx:

Container ID:   docker://f17b88c301d61b8c75a46cba84d97c285f5d61886c081b3cfc9c0668e5cbf4e3

Image:          nginx:1.15

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

[[email protected] ~]# kubectl scale deploy/nginx --replicas=10

deployment "nginx" scaled

[[email protected] ~]# 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

业务量下降我们进行缩容

[[email protected] ~]# kubectl scale deploy/nginx --replicas=5

[[email protected] ~]# 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

[[email protected] ~]# kubectl delete deploy/nginx

deployment "nginx" deleted

[[email protected] ~]# kubectl delete svc/nginx-service

查看资源已经删除

[[email protected] ~]# kubectl get all

原文地址:https://www.cnblogs.com/zc1741845455/p/11150518.html

时间: 2024-11-06 03:44:33

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

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

k8s 集群管理和微服务 适合做啥 都知道k8s是集群 适合微服务 有很多教程 但你可以先了解他能干啥 traefix 是负载均衡工具 k8s 适合部署无状态依赖的微服务 可以按需求开启多个微服务 管理工具能自动发现并均衡 像redis sql ceph(对象存储)这些 支撑 和有状态依赖的服务 并不适合k8 原文地址:https://www.cnblogs.com/ham-731/p/12231693.html

jenkins服务器免密登录tomcat jenkins发布or回滚插件

安装maven91 gitlab-ctl start 92 /etc/init.d/jenkins start上传所需安装包查看自身jdk环境93 rpm -qa | grep jdk94 rpm -e java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 --nodeps #卸载自身jdk环境95 tar zxf jdk-8u

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

扩(缩)容服务 扩容服务 Service还提供了复制(类似kubernetes里的副本)功能.可以通过 docker service scale 命令来设置服务中容器的副本数: docker service scale masl=4 和创建服务一样,增加scale数之后,将会创建新的容器,这些新启动的容器也会经历从准备到运行的过程,过一分钟左右,服务应该就会启动完成,这时候可以再来看一下 masl 服务中的容器 可以看到,之前masl容器在manager-node和node1节点上各有一个实例,

Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(四):发布与回滚

写在前面 我们以前windows跑.net Framework程序的时候,发布,自己乖乖的替换程序:备份,也是自己一个一个的重命名备份:回滚,发布遇到问题的回滚更是不用说了:运维很是怕我们 这些用windows的啊: 那全面拥抱linux的一一.net core 时代 ,是如何处理这些个问题的呢? 噔噔蹬蹬~请往下看. 运行环境 centos:7.2 cpu:1核 2G内存 1M带宽 Jenkins ver. 2.150.1 一台安装jenkins的机器. (本文例子不一定要安装jenkins,

kubernetes 滚动更新发布及回滚

基本命令 记录历史 --record kubectl  apply -f **** --record 查看当前状态 kubectl rollout status deployment/demo -w 查看历史 kubectl rollout history deployment/demo 回滚到指定版本 kubectl rollout undo deployment/demo --to-revision=2 原文地址:https://www.cnblogs.com/zhangeamon/p/82

Jenkins代码发布与回滚

一:Jenkins的简介 1.1 Jenkins概念: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术.Jenkins是一种软件允许持续集成. 1.2 Jenkins目的: 1.持续.自动地构建/测试软件项目. 2.监控软件开放流程,快速问题定位及处理,提示开放效率. 1.3 特性: 开源的java语言开发持续集成工具,支持CI,CD. 易于安装部署配置:

K8S使用deployment 管理Pod以及滚动更新(6)

前面有使用pod的举例,但是我们现在有一个Pod正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营活动非常成功,网站访问量突然暴增可以使用[HPA]运行当前Pod的节点发生故障了,Pod不能正常提供服务了[高可用pod]后面是解决方法,但是如果没有或者我们不了解底层pod运行模式,需要手动去干预处理,将会非常的麻烦.第一种情况,可能比较好应对,一般活动之前我们会大概计算下会有多大的访问量,提前多启动几个Pod,活动结束后再把多余的Pod杀掉,虽然有点麻烦,但是应该还是能够应对

k8s核心资源对象& NameSpace(指定版本回滚)

k8s核心的资源对象: Pod:是运行以及调度的原子单位,也就是k8s中最小的资源单位,同一个pod可以同时运行多个container,多个container之间共享:(UTS(主机名和域名),IPC(消息队列和共享内存),NET(网络栈,端口等),namespace(名称空间)),但USR(用户和组),MNT(挂载点),PID(进行编号)是相互隔离的.pod有两种类型的pod:一类是由控制器控制的pod,一类是自主式pod(不受控制器管理,自己管理自己) Deployment:最常见的pod控

K8s资源对象的基本管理(升级、回滚、扩容、缩容)

博文大纲:一.资源创建二.解决客户端无法访问k8s内部pod所运行的服务三.搭建私有仓库,并自定义镜像四.版本扩容.缩容五.服务的升级与回滚 一.资源创建 本次博文主要介绍如何使用命令行的方式创建资源! [[email protected] ~]# kubectl run test --image=nginx:latest --replicas=5 //基于httpd的镜像创建一个deployment类型的控制组,名称为test,并指定副本数量为5 [[email protected] ~]#