利用一个简单的例子来启动一个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. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; impor ...

  2. 深入源码理解ThreadLocal和ThreadLocalMap

    一.ThreadLoacl的理解: 官方的讲: ThreadLocal是一个本地线程副本变量工具类,主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰 通俗的讲: Thre ...

  3. 线程安全之CAS机制详解(分析详细,通俗易懂)

    背景介绍:假设现在有一个线程共享的变量c=0,让两个线程分别对c进行c++操作100次,那么我们最后得到的结果是200吗? 1.在线程不安全的方式下:结果可能小于200,比如当前线程A取得c的值为3, ...

  4. 单点登录SSO:概述与示例

    目录 概述 演示一:零改造实施单点登录 演示二: 单点注销 演示三:集成AD认证 演示四:客户端单点登录 演示五:移动端单点登录 单点登录SSO概述 本系列将由浅入深的,带大家掌握最新单点登录SSO方 ...

  5. Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布

    本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过S ...

  6. 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约

    智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...

  7. flask 更新数据库

    在做项目的过程中,我们都遇到过,经常需要修改我们数据库的字段,在flask中,是通过ORM(对象关系映射)来创建数据库的,表--->model class,字段---->属性 在flask ...

  8. sczd

  9. c#中用sql存储过程

    string connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionStri ...

  10. mybatis的mapper注入失败

    因为处在两个不同的资源文件夹下: 导致classpath无法加载其中一些文件,所以修改为classpath*后顺利进行. <!-- 加载spring容器 --> <!-- neede ...