利用一个简单的例子来启动一个deployment的Pod控制器
[root@master song]# cat deploy.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas:
selector:
matchLabels:
app: myapp
release: canary
template:
metadata:
labels:
app: myapp
release: canary
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1

Pod.yml

启动控制器

kubectl create --save-config  -f deploy.yml
[root@master song]# !
kubectl get pod -l app=myapp
NAME READY STATUS RESTARTS AGE
myapp-deploy-7769f49474-lq7dw / Running 14m
myapp-deploy-7769f49474-v4nj4 / Running 14m

查看deployment和rs之间的命名关系

[root@master song]# kubectl get deployments.
NAME READY UP-TO-DATE AVAILABLE AGE
myapp-deploy / 15m
nginx-test / 6d21h
tomcat-test / 6d18h
[root@master song]# kubectl get rs
NAME DESIRED CURRENT READY AGE
myapp-deploy-7769f49474 15m rs控制器的名字为deployment的名称+随机串
nginx-test-8bbbdc7d5 6d21h
nginx-test-8f5f46d94 6d20h
tomcat-test-76789745c5 6d18h

编辑配置文件 将 replicas改为3

使用  kubectl  get pods  -l app=myapp  -w

^C[root@master ~]# kubectl get pods -l app=myapp -w
NAME READY STATUS RESTARTS AGE
myapp-deploy-84d9546645-l6gvz / Running 6m3s
myapp-deploy-84d9546645-lmn8n / Running 6m3s
pod-demo / Running 2d3h
myapp-deploy-84d9546645-tjhtr / Pending 0s
myapp-deploy-84d9546645-tjhtr / Pending 0s
myapp-deploy-84d9546645-tjhtr / ContainerCreating 0s
myapp-deploy-84d9546645-tjhtr / Running 2s

在将配置文件中 副本数一值改为5,进行版本升级操作

是控制器配置生效的集中操作  apply直接更改配置文件   edit 编辑动态配置   path 命令行动态的以json形式进行资源更改

kubectl patch deployments myapp-deploy  -p '{"spec":{"strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}}}'   字母不能错,错了不提示

查看最新描述中有关rollingUpdate 的部分操作

Selector:               app=myapp,release=canary
Replicas: desired | updated | total | available | unavailable
StrategyType: RollingUpdate
MinReadySeconds:
RollingUpdateStrategy: max unavailable, max surge

进行版本更新,并在途中执行pause命令来进行服务暂停

[root@master song]# kubectl set image deployment myapp-deploy myapp=ikubernetes/myapp:v2 && kubectl rollout pause deployment myapp-deploy
deployment.extensions/myapp-deploy image updated
deployment.extensions/myapp-deploy paused 查看状态
[root@master ~]# kubectl get pods -l app=myapp -w
NAME READY STATUS RESTARTS AGE
myapp-deploy-7769f49474-8zxl2 / Running 13m
myapp-deploy-7769f49474-jsj6l / Running 20m
myapp-deploy-7769f49474-nkr5g / Running 13m
myapp-deploy-7769f49474-vc6dg / Running 20m
myapp-deploy-7769f49474-wg2cx / Running 20m
pod-demo / Running 2d4h
myapp-deploy-84d9546645-v55vd / Pending 0s
myapp-deploy-84d9546645-v55vd / Pending 0s
myapp-deploy-84d9546645-v55vd / ContainerCreating 0s
myapp-deploy-84d9546645-v55vd / Running 1s describe 来查看资源状态,5个副本中多出来一个就是我们的新启动的这个 Selector: app=myapp,release=canary
Replicas: desired | updated | total | available | unavailable
StrategyType: RollingUpdate
MinReadySeconds:
RollingUpdateStrategy: max unavailable, max surge
Pod Template:

Daemonset 控制器

9.Pod控制器概念和基本操作2的更多相关文章

  1. kubernetes系列07—Pod控制器详解

    本文收录在容器技术学习系列文章总目录 1.Pod控制器 1.1 介绍 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无 ...

  2. Kubernetes的pod控制器及ReplicaSet控制器类型的pod的定义

    为什么需要Pod Kubernetes项目之所以这么做的原因: 因为Kubernetes是谷歌公司基于Borg项目做出来的,谷歌工程师发现,他们部署的应用往往存在这进程与进程组的关系.具体说呢,就是这 ...

  3. k8s学习笔记之六:Pod控制器(kube-controller-manager)

    第一章.什么是kube-controller-manager? Controller Manager 由 kube-controller-manager 和 cloud-controller-mana ...

  4. kubernetes 的pod控制器

    转载于网络   pod是kubernetes的最小单元,自主式创建的pod删除就没有了,但是通过资源控制器创建的pod如果删除还会重建.pod控制器就是用于实现代替我们去管理pod的中间层,并帮我们确 ...

  5. Kubernetes学习之路(十二)之Pod控制器--ReplicaSet、Deployment

    一.Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源. pod控制器 ...

  6. InfluxDB概念和基本操作 二

    InfluxDB概念和基本操作   InfluxDB基本概念 数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value ...

  7. k8s的Pod控制器

    pod的配置清单常见选项: apiVersion,kind,metadata,spec,status(只读) spec: containers: nodeSelector: nodeName: res ...

  8. k8s之pod控制器

    1.生产中,很少会跑一个自主式pod,一般由控制器去创建pod,其配置文件中内嵌了pod的创建方式. pod控制器:ReplicaSet.Deployment.DaemonSet.Job.Cronjo ...

  9. 05-kubernetes Pod控制器应用进阶

    目录 Pod 资源 标签 给资源打标签 标签选择器 Pod 生命周期 实际操作 livenessProbe 实战 livenessProbe exec 测试 livenessProbe httpGet ...

随机推荐

  1. express+vue+mongodb+session 实现注册登录

    上个月写了一篇文章是 express+mongodb+vue 实现增删改查. 只是简单的实现了增删改查功能,那么今天是在那个基础之上做了扩展,首先实现的功能有如下: 1. 支持注册,登录功能,用户可以 ...

  2. redis学习(三)——List数据类型

    一.概述      在Redis中,List类型是按照插入顺序排序的字符串链表.和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素.在插入时,如果该键并不存在,R ...

  3. python推导式创建序列

    推导式创建序列 推导式是一个或多个迭代器快速创建序列的一种方式.可以将循环和条件判断结合,简化代码.几个推导式注意符号的使用,比如小括号,方括号,大括号等等. 列表推导式 列表推导式生成列表对象,语法 ...

  4. 你知道Java的四种引用类型吗

    关于java四种引用类型,我也是刚了解,特此记下! 在Java中提供了四个级别的引用:强引用,软引用,弱引用和虚引用.在这四个引用类型中,只有强引用FinalReference类是包内可见,其他三种引 ...

  5. [翻译] 如何在 ASP.Net Core 中使用 Consul 来存储配置

    [翻译] 如何在 ASP.Net Core 中使用 Consul 来存储配置 原文: USING CONSUL FOR STORING THE CONFIGURATION IN ASP.NET COR ...

  6. .net core实践系列之SSO-跨域实现

    前言 接着上篇的<.net core实践系列之SSO-同域实现>,这次来聊聊SSO跨域的实现方式.这次虽说是.net core实践,但是核心点使用jquery居多. 建议看这篇文章的朋友可 ...

  7. IP核引发的关于定,浮点数的认识

    上面是一段关于CORDIC_IP测试文件,用于计算给定角度的sin值和cos值,关于数值表示规则在此不再重复,仅仅说明以下3点: 1  数采用原码,反码,补码,本身并没有正确与否之分(这一点很重要,我 ...

  8. PS调出春夏外景婚纱照

    效果图 先来看看原图和夏季的效果图 先看看原图 教程终于来咯 原图暗部太深,需要将暗部提亮.可以把暗部选区选出来.为了精确选择暗部选区,我利用计算命令如上图所示.最后得到暗部的选区. 上图得到了暗部选 ...

  9. 关于iframe页面里的重定向问题

    最近公司做的一个功能,使用了iframe,父页面内嵌子页面,里面的坑还挺多的,上次其实就遇到过,只不过今天在此描述一下. 请允许我画个草图: 外层大圈是父级页面,里层是子级页面,我们是在父级引用子级页 ...

  10. 单列模式,装饰器、new方法、类/静态方法实现单列模式

    一.单列模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在. 如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 C ...