一  Replication Controller的介绍

       pod可能会由于各种原因消失和多出来,例如node节点去除集群或者人为的手工创建,所以为了方便和管理pod的数量,k8s里面

  的另外一种资源就应运而生,Replication Controller,它能够管理特定的pod的标签,使其动态保持一个数量,少了就会去创建,多了就会删除集群中的pod

  始终保持集群中pod数量是一个自己定义的数量

二 Replication Controller的组成(后面部分都简称RC)

      RC由三部分组成

    • label selector 用于确定RC能够控制的pod的标签的范围
    • replica count  副本个数,指定运行容器的数量
    • pod template pod的模板,用于创建新的pod副本

  

三 以yaml的形式创建一个RC 

  3.1 配置文件内容如下 

[root@node01 Chapter04]# cat kubia-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: kubia
spec:
replicas: 3
selector:
app: kubia
template:
metadata:
labels:
app: kubia
spec:
containers:
- name: kubia
image: luksa/kubia
ports:
- containerPort: 8080

 

 3.2 创建RC

[root@node01 Chapter04]# k create -f kubia-rc.yaml
  replicationcontroller/kubia created

[root@node01 Chapter04]# k get rc
NAME DESIRED CURRENT READY AGE
kubia 3 3 2 9s

[root@node01 Chapter04]# k get po
NAME READY STATUS RESTARTS AGE
kubia-cc6dg 1/1 Running 0 27s
kubia-dsc2x 1/1 Running 0 27s
kubia-liveness 1/1 Running 24 94m
kubia-liveness-delay 1/1 Running 17 64m
kubia-vz52m 1/1 Running 0 27s

 

 3.3 经由RC管控的pod在被删除某个副本之后,RC会感知到数量已经不符合预期,会重新去拉取镜像创建pod,红色的是刚刚由RC最新创建的

[root@node01 Chapter04]#  k get po
NAME READY STATUS RESTARTS AGE
kubia-cc6dg 1/1 Running 0 6m55s
kubia-dsc2x 1/1 Running 0 6m55s
kubia-vz52m 1/1 Running 0 6m55s [root@node01 Chapter04]# k delete po kubia-cc6dg
pod "kubia-cc6dg" deleted [root@node01 Chapter04]# k get po
NAME READY STATUS RESTARTS AGE
kubia-dsc2x 1/1 Running 0 8m22s
kubia-qgxvw 1/1 Running 0 80s
kubia-vz52m 1/1 Running 0 8m22s

 3.4 RC完成通过标签来管控pod,也可以通过修改pod里面的标签,从而脱离RC的管控,甚至将pod从一个RC移动至另一个RC

[root@node01 Chapter04]# k get po --show-labels
NAME READY STATUS RESTARTS AGE LABELS
kubia-dsc2x 1/1 Running 0 11m app=kubia
kubia-qgxvw 1/1 Running 0 4m49s app=kubia
kubia-vz52m 1/1 Running 0 11m app=kubia

[root@node01 Chapter04]# k label po kubia-qgxvw type=docker
pod/kubia-qgxvw labeled

[root@node01 Chapter04]# k get po --show-labels
NAME READY STATUS RESTARTS AGE LABELS
kubia-dsc2x 1/1 Running 0 12m app=kubia
kubia-qgxvw 1/1 Running 0 5m39s app=kubia,type=docker
kubia-vz52m 1/1 Running 0 12m app=kubia

[root@node01 Chapter04]# k label po kubia-vz52m app=k8s --overwrite
pod/kubia-vz52m labeled

[root@node01 Chapter04]# k get po
NAME READY STATUS RESTARTS AGE
kubia-dsc2x 1/1 Running 0 13m
kubia-jqr8m 0/1 ContainerCreating 0 5s
kubia-qgxvw 1/1 Running 0 6m9s
kubia-vz52m 1/1 Running 0 13m

  注意:  可以使用k edit rc rc_name来编辑rc的配置

3.5 修改pod的模板之后,原来的pod将不受到管控,并且删除之后RC将会产生新的pod里面也会和修改过后的模板保持一致

[root@node01 Chapter04]# k delete po --all
pod "kubia-dsc2x" deleted
pod "kubia-jqr8m" deleted
pod "kubia-qgxvw" deleted
pod "kubia-vz52m" deleted

[root@node01 Chapter04]# k get po --show-labels
NAME READY STATUS RESTARTS AGE LABELS
kubia-27g4j 1/1 Running 0 99s app=kubia,version=v1.0
kubia-k7964 1/1 Running 0 99s app=kubia,version=v1.0
kubia-wn8wz 1/1 Running 0 99s app=kubia,version=v1.0

kubernets之Replication Controller的更多相关文章

  1. kubernetes进阶之五:Replication Controller&Replica Sets&Deployments

    一:Replication Controller RC是kubernetes的核心概念之一.它定义了一个期望的场景即声明某种Pod的副本数量在任意时候都要符合某个预期值. 它由以下几个部分组成: 1. ...

  2. kubernetes 1.3管中窥豹- RS(Replica Sets):the next-generation Replication Controller

    前言 kubernates 1.3出了几个新的概念,其中包括deployments,Replica Sets,并且官网称之为是the next-generation Replication Contr ...

  3. Replication Controller 和 Replica Set

    使用Replication Controller . Replica Set管理Pod Replication Controller (RC) 简写为RC,可以使用rc作为kubectl工具的快速管理 ...

  4. Replication Controller、Replica Set

    假如我们现在有一个Pod正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营活动非常成功,网站访问量突然暴增 运行当前Pod的节点发生故障了,Pod不能正常提供服务了 第一种情况,可 ...

  5. kubernetes concepts -- Replication Controller

    Edit This Page ReplicationController NOTE: A Deployment that configures a ReplicaSet is now the reco ...

  6. kubernetes in action - Replication Controller

    理解这个问题,就是pods在Kubernetes中怎么进行failover 在Kubernetes的work node上有kubelet,会负责监控该work node上的pods,如果有contai ...

  7. Replication Controller

    RC保证在同一时间能够运行指定数量的Pod副本,保证Pod总是可用.如果实际Pod数量比指定的多就结束掉多余的,如果实际数量比指定的少就启动缺少的. 当Pod失败.被删除或被终结时,RC会自动创建新的 ...

  8. Kubernets搭建Kubernetes-dashboard

    接上篇文章,在已经部署好Kubernetes的基础上部署kubernetes-dashboard,它是官方提供的用户管理Kubernets集群可视化工具:部署dashboard其实和在kubernet ...

  9. kubernetes的Controller Manager

    1. Controller Manager简介 Controller Manager作为集群内部的管理控制中心,负责集群内的Node.Pod副本.服务端点(Endpoint).命名空间(Namespa ...

随机推荐

  1. JavaSE22-Lambda表达式&方法引用

    1.Lambda表达式 1.1 Lambda表达式的标准格式 1 (形式参数) -> {代码块} 形式参数:如果有多个参数,参数之间用逗号隔开:如果没有参数,留空即可 ->:由英文中画线和 ...

  2. druid数据源yml配置

    application.yml配置 spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:33 ...

  3. log4j配置获取系统属性及默认值

    一.使用场景 1.因某些原因,我们可能将log4j中的配置变量化,进行动态获取 2.动态获取内容不存在时,我们希望能够赋上通用的值 二.语法 单变量: ${前缀:变量:-默认值} 如: ${sys:i ...

  4. [BUUCTF] 真的很杂

    这似乎是一道安卓逆向题??我就是没有搞懂安卓逆向原来是misc吗... 安卓逆向一个例子 工具准备 1.apktool--可以反编译软件的布局文件.图片等资源,方便大家学习一些很好的布局: 2.dex ...

  5. Application Data in Docker 笔记

    Application Data in Docker By default all files created inside a container are stored on a writable ...

  6. CSS鼠标指针cursor样式

    参考来源:W3SCHOOL 有时我们需要在CSS布局时设定特定的鼠标指针样式,这时可以通过设定cursor来实现: url: 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光 ...

  7. 正方形和球体,利用蒙特卡洛计算pi值

    clc; clear all; close all; R = 3; time = 10000; origin = [0,0,0]; %%======绘制球体====== t=linspace(0,pi ...

  8. Sentinel入门学习记录

    最近公司里面在进行微服务开发,因为有使用到限流降级,所以去调研学习了一下Sentinel,在这里做一个记录. Sentinel官方文档:https://github.com/alibaba/Senti ...

  9. RxHttp 完美适配Android 10/11 上传/下载/进度监听

    1.前言 随着Android 11的正式发布,适配Android 10/11 分区存储就更加的迫切了,因为Android 11开始,将强制开启分区存储,我们就无法再以绝对路径的方式去读写非沙盒目录下的 ...

  10. Next.js+React聊天室|Next仿微信桌面端|next.js聊天实例

    一.项目介绍 next-webchat 基于Next.js+React.js+Redux+Antd+RScroll+RLayer等技术构建的PC桌面端仿微信聊天项目.实现了消息/表情发送.图片/视频预 ...