kubernetes云平台管理实战:如何创建deployment更好(九)
一、文件创建带--record
1、文件
[root@k8s-master ~]# cat nginx_deploy.yml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: 10.0.128.0:5000/nginx:1.13
ports:
- containerPort: 80
2、启动
[root@k8s-master ~]# kubectl create -f nginx_deploy.yml --record
deployment "nginx-deployment" created
[root@k8s-master ~]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/nginx-deployment 3 3 3 3 7s NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/nginx-deployment-2950479891 3 3 3 7s nginx 10.0.128.0:5000/nginx:1.13 app=nginx,pod-template-hash=2950479891 NAME READY STATUS RESTARTS AGE IP NODE
po/nginx-deployment-2950479891-3dwct 1/1 Running 0 7s 172.16.50.2 k8s-node1
po/nginx-deployment-2950479891-6wvsw 1/1 Running 0 7s 172.16.19.2 k8s-node2
po/nginx-deployment-2950479891-95133 1/1 Running 0 7s 172.16.50.3 k8s-node1
3、更新镜像
[root@k8s-master ~]# vim nginx_deploy.yml
版本手动修改为1.15
[root@k8s-master ~]# kubectl apply -f nginx_deploy.yml
deployment "nginx-deployment" configured
[root@k8s-master ~]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/nginx-deployment 3 3 3 3 1m NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/nginx-deployment-2950479891 0 0 0 1m nginx 10.0.128.0:5000/nginx:1.13 app=nginx,pod-template-hash=2950479891
rs/nginx-deployment-3113009173 3 3 3 7s nginx 10.0.128.0:5000/nginx:1.15 app=nginx,pod-template-hash=3113009173 NAME READY STATUS RESTARTS AGE IP NODE
po/nginx-deployment-3113009173-4xrq4 1/1 Running 0 7s 172.16.19.3 k8s-node2
po/nginx-deployment-3113009173-5crv5 1/1 Running 0 5s 172.16.19.2 k8s-node2
po/nginx-deployment-3113009173-vckhg 1/1 Running 0 7s 172.16.50.2 k8s-node1
4、显示历史版本
[root@k8s-master ~]# kubectl rollout history deployment nginx-deployment
deployments "nginx-deployment"
REVISION CHANGE-CAUSE
1 kubectl create -f nginx_deploy.yml --record
2 kubectl apply -f nginx_deploy.yml
二、命令行创建不带--record
1、启动
[root@k8s-master ~]# kubectl delete deployment nginx
deployment "nginx" deleted
[root@k8s-master ~]# kubectl get all -o wide
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb
[root@k8s-master ~]# kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5
deployment "nginx" created
[root@k8s-master ~]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/nginx 5 5 5 5 7s NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/nginx-835034785 5 5 5 7s nginx 10.0.128.0:5000/nginx:1.13 pod-template-hash=835034785,run=nginx NAME READY STATUS RESTARTS AGE IP NODE
po/nginx-835034785-8f4m0 1/1 Running 0 7s 172.16.50.2 k8s-node1
po/nginx-835034785-8j9w2 1/1 Running 0 7s 172.16.19.3 k8s-node2
po/nginx-835034785-c7nx3 1/1 Running 0 7s 172.16.19.4 k8s-node2
po/nginx-835034785-p2vn0 1/1 Running 0 7s 172.16.19.2 k8s-node2
po/nginx-835034785-z42qh 1/1 Running 0 7s 172.16.50.3 k8s-node1
2、更新镜像
[root@k8s-master ~]# kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15
deployment "nginx" image updated
[root@k8s-master ~]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/nginx 5 5 5 5 34s NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/nginx-835034785 0 0 0 34s nginx 10.0.128.0:5000/nginx:1.13 pod-template-hash=835034785,run=nginx
rs/nginx-984850083 5 5 5 10s nginx 10.0.128.0:5000/nginx:1.15 pod-template-hash=984850083,run=nginx NAME READY STATUS RESTARTS AGE IP NODE
po/nginx-984850083-4pd4w 1/1 Running 0 10s 172.16.19.2 k8s-node2
po/nginx-984850083-k979d 1/1 Running 0 10s 172.16.50.4 k8s-node1
po/nginx-984850083-nljkt 1/1 Running 0 4s 172.16.19.4 k8s-node2
po/nginx-984850083-r3hqh 1/1 Running 0 6s 172.16.19.3 k8s-node2
po/nginx-984850083-x6x47 1/1 Running 0 7s 172.16.50.5 k8s-node1
3、查看历史版本
[root@k8s-master ~]# kubectl rollout history deployment nginx
deployments "nginx"
REVISION CHANGE-CAUSE
1 <none>
2 <none>
三、命令创建不带--record
1、启动
[root@k8s-master ~]# kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
deployment "nginx" created
[root@k8s-master ~]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/nginx 5 5 5 0 3s NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/nginx-835034785 5 5 0 3s nginx 10.0.128.0:5000/nginx:1.13 pod-template-hash=835034785,run=nginx NAME READY STATUS RESTARTS AGE IP NODE
po/nginx-835034785-b9mnp 0/1 ContainerCreating 0 3s <none> k8s-node2
po/nginx-835034785-gp2m5 0/1 ContainerCreating 0 3s <none> k8s-node1
po/nginx-835034785-hhz0b 0/1 ContainerCreating 0 3s <none> k8s-node1
po/nginx-835034785-mvv4p 0/1 ContainerCreating 0 3s <none> k8s-node2
po/nginx-835034785-x6mjp 0/1 ContainerCreating 0 3s <none> k8s-node1
2、升级镜像版本
[root@k8s-master ~]# kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15
deployment "nginx" image updated
[root@k8s-master ~]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/nginx 5 5 5 5 32s NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 1d <none>
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 22h app=myweb NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/nginx-835034785 0 0 0 32s nginx 10.0.128.0:5000/nginx:1.13 pod-template-hash=835034785,run=nginx
rs/nginx-984850083 5 5 5 14s nginx 10.0.128.0:5000/nginx:1.15 pod-template-hash=984850083,run=nginx NAME READY STATUS RESTARTS AGE IP NODE
po/nginx-984850083-4xt4s 1/1 Running 0 5s 172.16.50.4 k8s-node1
po/nginx-984850083-gk5fq 1/1 Running 0 7s 172.16.50.2 k8s-node1
po/nginx-984850083-mhp7h 1/1 Running 0 13s 172.16.50.3 k8s-node1
po/nginx-984850083-vs93g 1/1 Running 0 14s 172.16.19.4 k8s-node2
po/nginx-984850083-z5px0 1/1 Running 0 11s 172.16.19.5 k8s-node2
3、查看历史版本
[root@k8s-master ~]# kubectl rollout history deployment nginx
deployments "nginx"
REVISION CHANGE-CAUSE
1 kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
2 kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15
四、小结
1、创建资源方式总结
方式一:
kubectl create -f nginx_deploy.yml
方式二:
kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
通过以上三个查看历史版本的详细程度来看方式三为最优,建议生产使用,具体命令如下
kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
kubernetes云平台管理实战:如何创建deployment更好(九)的更多相关文章
- kubernetes云平台管理实战:deployment通过标签管理pod(十)
一.kubectl run命令拓展 1.RC创建 [root@k8s-master ~]# kubectl run web --generator=run/v1 --image=10.0.128.0: ...
- kubernetes云平台管理实战: 高级资源deployment-滚动升级(八)
一.通过文件创建deployment 1.创建deployment文件 [root@k8s-master ~]# cat nginx_deploy.yml apiVersion: extensions ...
- kubernetes云平台管理实战:HPA水平自动伸缩(十一)
一.自动伸缩 1.启动 [root@k8s-master ~]# kubectl autoscale deployment nginx-deployment --max=8 --min=2 --cpu ...
- kubernetes云平台管理实战: 滚动升级秒级回滚(六)
一.nginx保证有两个版本 1.查看当前容器运行nginx版本 [root@k8s-master ~]# kubectl get pod -o wide NAME READY STATUS REST ...
- kubernetes云平台管理实战: 故障自愈实战(四)
一.创建实验文件 [root@k8s-master ~]# cat myweb-rc.yml apiVersion: v1 kind: ReplicationController metadata: ...
- kubernetes云平台管理实战: 集群部署(一)
一.环境规划 1.架构拓扑图 2.主机规划 3.软件版本 [root@k8s-master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1 ...
- kubernetes云平台管理实战: 最小的资源pod(二)
一.pod初体验 1.编辑k8s_pod.yml文件 [root@k8s-master ~]# cat k8s_pod.yml apiVersion: v1 kind: Pod metadata: n ...
- kubernetes云平台管理实战: 自动加载到负载均衡(七)
一.如何实现外界能访问 外界访问不了 1.启动svc [root@k8s-master ~]# cat myweb-svc.yaml apiVersion: v1 kind: Service meta ...
- kubernetes云平台管理实战: 服务发现和负载均衡(五)
一.rc控制器常用命令 1.rc控制器信息查看 [root@k8s-master ~]# kubectl get replicationcontroller NAME DESIRED CURRENT ...
随机推荐
- spring基本知识
什么是spring: spring就是以IOC反转控制和AOP面向切面编程为内核,使用基本的JavaBean来完成以前由EJB完成的工作. spring框架的优点: (1)方便耦合,简化开发:spri ...
- c/c++ 多线程 unique_lock的使用
多线程 unique_lock的使用 unique_lock的特点: 1,灵活.可以在创建unique_lock的实例时,不锁,然后手动调用lock_a.lock()函数,或者std::lock(lo ...
- Java多线程基础(二)
1.多线程数据安全 线程同步:多个线程需要访问同一资源时,需要以某种顺序来确定该资源某一时刻只能被一个线程使用.从而,解决并发操作可能带来的异常. 2.同步代码块实现同步(部分代码的访问,我们希望它同 ...
- HP ML150 G6 服务器硬件介绍
前面板和背面板组件介绍: 1 介质托架 12 系统运行状况 LED 指示灯 2 USB 2.0 端口 (2) 13 AC ...
- Windows Server 2012 R2 配置FTP服务器
Windows Server 2012 R2 安装IIS参考上一篇配置IIS 8.0:https://www.cnblogs.com/aq-ry/p/9329310.html 搭建完IIS 后,最近又 ...
- MPLAB X IDE调试仿真功能简单入门
仿真分为硬件仿真和软件仿真,这里的硬件仿真和软件仿真的区别,就不多说了,相信大家都听说过这两个概念. 我这里想给大家介绍的是“Set PC at Cursor”--“设置PC到光标处”这个功能,这个功 ...
- Spring Boot 2.x 综合示例-整合thymeleaf、mybatis、shiro、logging、cache开发一个文章发布管理系统
一.概述 经过HelloWorld示例(Spring Boot 2.x 快速入门(上)HelloWorld示例)( Spring Boot 2.x 快速入门(下)HelloWorld示例详解)两篇的学 ...
- Java操作Excel(使用POI)
背景说明 以前写过使用 JXL 操作Excel的例子,但JXL对于Excel 2007版本以后的文件(即扩展名为 .xlsx)无法读取,也找不到可以支持的包.所以,有时不得不用 POI 来操作Exce ...
- bootatrsp datetimepicker的初始化和阻止模态窗关闭(事件冒泡)
1.github下载资源包 http://www.bootcss.com/p/bootstrap-datetimepicker/ 2.引入bootstrap-datetimepicker.min.c ...
- 目前在segmentfault写博客
不是打广告.只是由于自己体验之类的关系,转移到segmentfault了,地址 https://segmentfault.com/u/linlinma,欢迎关注和交流