Kubernetes基础:使用rollout对Deployment进行控制
kubectl rollout可以对Deployment、DaemonSet和StatefulSet进行控制,这篇文章以Deployment为例,对控制方式进行说明。
rollout常见操作
子命令 | 功能说明 |
---|---|
history | 查看rollout操作历史 |
pause | 将提供的资源设定为暂停状态 |
restart | 重启某资源 |
resume | 将某资源从暂停状态恢复正常 |
status | 查看rollout操作状态 |
undo | 回滚前一rollout |
事前准备
使用如下YAML文件创建Deployment
[root@host131 Deployment]# cat v1.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:name: busybox-deployment-v1
spec:replicas: 3selector:matchLabels:app: busybox-v1template:metadata:labels:app: busybox-v1spec:containers:- name: busybox-hostimage: busybox:1.31.1command: ["sleep"]args: ["1000"]
...
[root@host131 Deployment]#
创建Deployment并确认
[root@host131 Deployment]# kubectl create -f v1.yaml
deployment.apps/busybox-deployment-v1 created
[root@host131 Deployment]# kubectl get deployment -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
busybox-deployment-v1 3/3 3 3 7s busybox-host busybox:1.31.1 app=busybox-v1
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-7bfdbd9656-ch65w 1/1 Running 0 14s 10.254.152.6 192.168.163.131 <none> <none>
busybox-deployment-v1-7bfdbd9656-f68s2 1/1 Running 0 14s 10.254.152.5 192.168.163.131 <none> <none>
busybox-deployment-v1-7bfdbd9656-s6f6j 1/1 Running 0 14s 10.254.152.7 192.168.163.131 <none> <none>
[root@host131 Deployment]# kubectl exec -it busybox-deployment-v1-7bfdbd9656-ch65w sh
/ # ps -ef
PID USER TIME COMMAND1 root 0:00 sleep 10006 root 0:00 sh11 root 0:00 ps -ef
/ # busybox |grep BusyBox
BusyBox v1.31.1 (2019-12-23 19:20:27 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.BusyBox is a multi-call binary that combines many common Unixlink to busybox for each function they wish to use and BusyBox
/ #
操作之:history
子命令 | 功能说明 |
---|---|
history | 查看rollout操作历史 |
[root@host131 Deployment]# kubectl rollout history deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1
REVISION CHANGE-CAUSE
1 <none>[root@host131 Deployment]#
操作之:status
子命令 | 功能说明 |
---|---|
status | 查看rollout操作状态 |
[root@host131 Deployment]# kubectl rollout status deployment busybox-deployment-v1
deployment "busybox-deployment-v1" successfully rolled out
[root@host131 Deployment]#
操作之:pause
子命令 | 功能说明 |
---|---|
pause | 将提供的资源设定为暂停状态 |
[root@host131 Deployment]# kubectl rollout pause deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1 paused
[root@host131 Deployment]#
可以通过describe命令确认到Progressing的状态:
[root@host131 Deployment]# kubectl describe deployment busybox-deployment-v1 |grep ProgressingProgressing Unknown DeploymentPaused
[root@host131 Deployment]#
操作之:resume
子命令 | 功能说明 |
---|---|
resume | 将某资源从暂停状态恢复正常 |
[root@host131 Deployment]# kubectl rollout resume deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1 resumed
[root@host131 Deployment]#
可以通过describe命令确认到Progressing的状态:
[root@host131 Deployment]# kubectl describe deployment busybox-deployment-v1 |grep ProgressingProgressing True NewReplicaSetAvailable
[root@host131 Deployment]#
操作之:restart
子命令 | 功能说明 |
---|---|
restart | 重启某资源 |
[root@host131 Deployment]# kubectl get deployment -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
busybox-deployment-v1 3/3 3 3 10m busybox-host busybox:1.31.1 app=busybox-v1
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-7bfdbd9656-ch65w 1/1 Running 0 10m 10.254.152.6 192.168.163.131 <none> <none>
busybox-deployment-v1-7bfdbd9656-f68s2 1/1 Running 0 10m 10.254.152.5 192.168.163.131 <none> <none>
busybox-deployment-v1-7bfdbd9656-s6f6j 1/1 Running 0 10m 10.254.152.7 192.168.163.131 <none> <none>
[root@host131 Deployment]# kubectl rollout history deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1
REVISION CHANGE-CAUSE
1 <none>[root@host131 Deployment]#
[root@host131 Deployment]# kubectl rollout restart deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1 restarted
[root@host131 Deployment]# kubectl rollout status deployment busybox-deployment-v1
Waiting for deployment "busybox-deployment-v1" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "busybox-deployment-v1" rollout to finish: 1 old replicas are pending termination...
deployment "busybox-deployment-v1" successfully rolled out
[root@host131 Deployment]# kubectl rollout history deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1
REVISION CHANGE-CAUSE
1 <none>
2 <none>[root@host131 Deployment]# kubectl get deployment -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
busybox-deployment-v1 3/3 3 3 11m busybox-host busybox:1.31.1 app=busybox-v1
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-7bfdbd9656-ch65w 1/1 Terminating 0 11m 10.254.152.6 192.168.163.131 <none> <none>
busybox-deployment-v1-7bfdbd9656-f68s2 1/1 Terminating 0 11m 10.254.152.5 192.168.163.131 <none> <none>
busybox-deployment-v1-7bfdbd9656-s6f6j 1/1 Terminating 0 11m 10.254.152.7 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-kjt5z 1/1 Running 0 25s 10.254.152.10 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-r9xjk 1/1 Running 0 29s 10.254.152.8 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-vnnhx 1/1 Running 0 27s 10.254.152.9 192.168.163.131 <none> <none>
[root@host131 Deployment]#
操作之:undo
子命令 | 功能说明 |
---|---|
undo | 回滚前一rollout |
- 回滚前状态确认
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-7c6899456-kjt5z 1/1 Running 0 66s 10.254.152.10 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-r9xjk 1/1 Running 0 70s 10.254.152.8 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-vnnhx 1/1 Running 0 68s 10.254.152.9 192.168.163.131 <none> <none>
[root@host131 Deployment]# kubectl exec -it busybox-deployment-v1-7c6899456-kjt5z sh
/ # ps -ef
PID USER TIME COMMAND1 root 0:00 sleep 10006 root 0:00 sh11 root 0:00 ps -ef
/ # busybox |grep BusyBox
BusyBox v1.31.1 (2019-12-23 19:20:27 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.BusyBox is a multi-call binary that combines many common Unixlink to busybox for each function they wish to use and BusyBox
/ #
- 修改配置文件
修改启动命令的sleep时间以及busybox的版本,详细如下所示
[root@host131 Deployment]# cat v1.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:name: busybox-deployment-v1
spec:replicas: 3selector:matchLabels:app: busybox-v1template:metadata:labels:app: busybox-v1spec:containers:- name: busybox-hostimage: busybox:1.30.1command: ["sleep"]args: ["10000"]
...
[root@host131 Deployment]#
- 修改当前Deployment和Pod信息
[root@host131 Deployment]# kubectl apply -f v1.yaml
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
deployment.apps/busybox-deployment-v1 configured
[root@host131 Deployment]#
[root@host131 Deployment]# kubectl get deployment -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
busybox-deployment-v1 3/3 3 3 15m busybox-host busybox:1.30.1 app=busybox-v1
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-5fd9b98ccc-9h6gd 1/1 Running 0 17s 10.254.152.6 192.168.163.131 <none> <none>
busybox-deployment-v1-5fd9b98ccc-l67nw 1/1 Running 0 15s 10.254.152.7 192.168.163.131 <none> <none>
busybox-deployment-v1-5fd9b98ccc-vfkdv 1/1 Running 0 19s 10.254.152.5 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-kjt5z 1/1 Terminating 0 4m25s 10.254.152.10 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-r9xjk 1/1 Terminating 0 4m29s 10.254.152.8 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-vnnhx 1/1 Terminating 0 4m27s 10.254.152.9 192.168.163.131 <none> <none>
[root@host131 Deployment]#
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-5fd9b98ccc-9h6gd 1/1 Running 0 45s 10.254.152.6 192.168.163.131 <none> <none>
busybox-deployment-v1-5fd9b98ccc-l67nw 1/1 Running 0 43s 10.254.152.7 192.168.163.131 <none> <none>
busybox-deployment-v1-5fd9b98ccc-vfkdv 1/1 Running 0 47s 10.254.152.5 192.168.163.131 <none> <none>
[root@host131 Deployment]# kubectl exec -it busybox-deployment-v1-5fd9b98ccc-9h6gd sh
/ # ps -ef
PID USER TIME COMMAND1 root 0:00 sleep 100006 root 0:00 sh11 root 0:00 ps -ef
/ # busybox |grep BusyBox
BusyBox v1.30.1 (2019-05-09 01:23:43 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.BusyBox is a multi-call binary that combines many common Unixlink to busybox for each function they wish to use and BusyBox
/ #
查看历史信息
[root@host131 Deployment]# kubectl rollout history deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1
REVISION CHANGE-CAUSE
1 <none>
2 <none>
3 <none>[root@host131 Deployment]#
- 回滚
此处使用不带参数的回滚,表示回滚至上一个版本,也可以指定回滚的具体版本
[root@host131 Deployment]# kubectl rollout undo deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1 rolled back
[root@host131 Deployment]# kubectl rollout status deployment busybox-deployment-v1
deployment "busybox-deployment-v1" successfully rolled out
[root@host131 Deployment]# kubectl rollout history deployment busybox-deployment-v1
deployment.apps/busybox-deployment-v1
REVISION CHANGE-CAUSE
1 <none>
3 <none>
4 <none>[root@host131 Deployment]#
- 回滚结果确认
[root@host131 Deployment]# kubectl get deployment -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
busybox-deployment-v1 3/3 3 3 19m busybox-host busybox:1.31.1 app=busybox-v1
[root@host131 Deployment]#
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-5fd9b98ccc-l67nw 0/1 Terminating 0 4m10s 10.254.152.7 192.168.163.131 <none> <none>
busybox-deployment-v1-5fd9b98ccc-vfkdv 0/1 Terminating 0 4m14s <none> 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-2qbgc 1/1 Running 0 36s 10.254.152.9 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-cwpw7 1/1 Running 0 34s 10.254.152.10 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-qzh44 1/1 Running 0 39s 10.254.152.8 192.168.163.131 <none> <none>
[root@host131 Deployment]#
[root@host131 Deployment]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox-deployment-v1-7c6899456-2qbgc 1/1 Running 0 59s 10.254.152.9 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-cwpw7 1/1 Running 0 57s 10.254.152.10 192.168.163.131 <none> <none>
busybox-deployment-v1-7c6899456-qzh44 1/1 Running 0 62s 10.254.152.8 192.168.163.131 <none> <none>
[root@host131 Deployment]# kubectl exec -it busybox-deployment-v1-7c6899456-2qbgc sh
/ # ps -ef
PID USER TIME COMMAND1 root 0:00 sleep 10006 root 0:00 sh11 root 0:00 ps -ef
/ # busybox |grep BusyBox
BusyBox v1.31.1 (2019-12-23 19:20:27 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.BusyBox is a multi-call binary that combines many common Unixlink to busybox for each function they wish to use and BusyBox
/ #
Kubernetes基础:使用rollout对Deployment进行控制相关推荐
- Kubernetes基础详解
1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不 ...
- kubernetes基础介绍及kubectl常用命令
kubernetes基础介绍及kubectl常用命令 k8s的pod分类 自主式pod 控制器管理的pod 核心主键 HPA service 网络模型 同节点Pod之间的通信 不同节点上的Pod通信 ...
- Kubernetes基础组件概述
本文讲的是Kubernetes基础组件概述[编者的话]最近总有同学问Kubernetes中的各个组件的相关问题,其实这些概念内容在官方文档中都有,奈何我们有些同学可能英文不好,又或者懒得去看,又或者没 ...
- Kubernetes基础入门(完整版)
简介 Kubernetes这个名字源于希腊语,意为"舵手"或"飞行员".k8s这个缩写是因为k和s之间有八个字符.Google在 2014年开源了Kuberne ...
- SAP SD基础知识之交货中的控制元素
SAP SD基础知识之交货中的控制元素 一,交货类型Delivery Type Delivery type控制整个的交货,我们可以在delivery header中看到delivery type: D ...
- Kubernetes基础学习(一)
Kubernetes基础学习 Kubernetes核心组件 Kubernetes核心组件如下: Kubernetes Master部分: etcd保存了整个集群的状态: apiserver提供了资源操 ...
- Kubernetes生产实践系列之二十九:Kubernetes基础技术之容器关键技术实践
一.前言 在文章<Kubernetes生产实践系列之二十八:Kubernetes基础技术之容器关键技术介绍>中,对于Docker容器技术依赖的namespace.cgroup和UnionF ...
- 【 js基础 Day2】js的流程控制:分支语句,循环.顺序结构
复习 JavaScript简称为JS JavaScript是什么? 是一门脚本语言:不需要编译,直接运行 是一门解释性的语言:遇到一样代码就解释一行代码 C#语言是一门面向对象的语言,也是编译语言,是 ...
- Kubernetes基础:Deployment中ReplicaSet
Deployment是通过ReplicaSet来进行Pod的管理的,这篇文章通过一个简单的示例,对此进行说明. Deployment的YAML示例 有如下busybox的Deployment的YAML ...
- Kubernetes基础3
主题 1.运行机制介绍 2.flanel 网络介绍 3.Nginx+tomcat+NFS 实现动静分离 1.运行机制介绍 1.1 master 运行机制 1.1.1 kube-apiserver k8 ...
最新文章
- 金字塔式梯度方向直方图(PHOG)
- 北风设计模式课程---13、享元模式
- 完整案例:实现延迟队列的两种方法
- Linux(CentOS 6.5)下配置Mono和Jexus并且部署ASP.NET MVC5
- mysql 设置默认值_为什么 Flink 无法实时写入 MySQL?
- python 实例方法 类方法_Python实例方法 静态方法 类方法
- 2层框架结构柱子间距_框架结构加固方法,这六大要点行之有效!
- .Net中的AOP系列之《单元测试切面》
- 【详细】MySQL之游标
- windows7专业版64位 vmware虚拟机镜像,vmware打开直接能用
- 中美线径对照表_中国线径与英美德线规对照表
- JAVA学习篇--静态代理VS动态代理
- 华中数控808系统说明书_智能制造之高端数控系统龙头
- php工具箱mysql启动不_解决php工具箱(phpStudy)Apache启动成功,MySql无法启动的问题...
- 2021年超全超详细的最新大数据开发面试题,附答案解析
- 使用nw.js将网址打包生成exe可安装程序支持xp系统
- 【MATLAB】极坐标绘图 ( Polar Chart 极坐标图 | MATLAB 绘图问题 1 )
- Leetcode题目分类指南(单独刷题或学习算法书籍配合使用)
- KeyError: 2
- Macbook Pro 外接显卡实现Tensorflow GPU运行之环境配置(重点)
热门文章
- python阳历转阴历,阴历转阳历
- 关于认知升级的思考-认知升级是深度思考、认知升级是探索未知
- java多个文件下载之压缩包下载
- xp系统显示错误1053服务器,使用故障恢复控制台解决XP系统无法启动的常见故障...
- TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey
- 菌群多样性是如何形成的,与健康的关系,如何改善?
- 班级主页效果图html,DW制作网页|html静态页面|班级网页素材|蝶恋花班级主页网站...
- CodeForces 711B. Chris and Magic Square(水题)
- 使用gca警告: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4.
- 大数据开发学习脑图+学习路线清晰的告诉你!月薪50K很轻松