十四、资源控制器之RS
RC (ReplicationController )主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数 。即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收(已经成为过去时)。
Kubernetes 官方建议使用 RS(ReplicaSet ) 替代 RC (ReplicationController ) 进行部署,RS 跟 RC 没有本质的不同,只是名字不一样,并且 RS 支持集合式的 selector。

RS 用示例:
vim rs.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myweb
spec:
replicas: 3
selector:
matchLabels:
tier: myweb
template:
metadata:
labels:
tier: myweb
spec:
containers:
- name: nginx
image: docker.io/nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
我们来查看下我们的 Pod 信息:

这个时候我们来随便删除一个其中的 Pod 后在查看下我们的 Pod 信息:

通过上述操作,我们可以看到,当我们定义了一个 RS 控制器的副本数目为 3 以后,那么,系统会始终保持我们的副本数为,不管是多了还是少了,系统始终会保持我们的副本数量与我们定义的数量一致(多删少建)。这个时候我们可以通过 kubectl get pod --show-labels 来查看我们 Pod 的标签:

这个时候可以看到我们在 rs.yanl 文件内所定义的标签,这个时候,我们来通过命令 kubectl label pod myweb-rkqjz tier=my-nginx --overwrite=True 修改我们 myweb-rkqjz 这个Pod 的标签然后看下效果:

这个时候我们需要注意一下
“error: 'tier' already has a value (myweb), and --overwrite is false“
因为标签已经存在,所以后面需要接上 --overwrite=True 才能修改,我们的标签,但是修改玩以后,因为 RS 是通过 Pod 的标签来确定哪些 Pod 是我管理的, 哪些 Pod 不是我管理的,当我们修改了其中一个 Pod 的标签以后,RS 发现我所管理的 Pod 数量与副本定义数量不符,所以会创建一个新的 Pod 来补足,这也就是为什么,当使用删除 RS 的命令 kubectl delete rs --all 以后,会有一个 Pod 没有被删除,因为该 Pod 标签与 rs.yaml 内定义的标签不符,所以不归该 RS 管理器管辖。
十四、资源控制器之RS的更多相关文章
- 十六、资源控制器之DaemonSet
资源控制器之DaemonSet DaemonSet 确保全部(或者一些) Node上运行一个 Pod 的副本,当有 Node 加入集群时,也会为他们新增一个 Pod,当有 Node 从集群移除时,这些 ...
- Linux SD卡驱动开发(四) —— SD 控制器之真正的硬件操作
前面对SD卡控制器有了一个主要的介绍.事实上SD控制器层更过的意义是为core层提供一种操作SD卡硬件的一种方法.当然不同的控制器对硬件控制的方法不尽同样,可是他们终于都能像core层提交一个统一的封 ...
- (二十四)权限控制(粗粒度)-通过filter
扩展:权限控制(粗粒度)-通过filter 过滤器编写步骤: 1.编写一个类 实现filter接口 重写方法 2.编写配置文件 <filter> <filter-mapping> ...
- Jmeter(十四)取样器之JDBC Request
在接口测试中,需要与数据库进行交互,这时候需要用到JDBC Request取样器. JDBC Request可以向数据库发送一个请求(sql语句),一般它需要配合JDBC Connection Con ...
- 十五、资源控制之Deployment
资源控制器之Deployment Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationControlle ...
- 只需十四步:从零开始掌握 Python 机器学习(附资源)
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
- 第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表、课程章节表、课程视频表、课程资源表
第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表.课程章节表.课程视频表.课程资源表 创建名称为app_courses的 ...
- Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得 --转
Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得 通过前6节的Demo制作演示,大家应该已经相当熟悉这款Silverlight-2D游戏场景 ...
- 只需十四步:从零开始掌握Python机器学习(附资源)
转载:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源.你现在也在考虑从 Python 入门机器学习吗?本教程或许 ...
随机推荐
- V8中的快慢属性(图文分解更易理解)
出于好奇:js中使用json存数据查找速度快,还是使用数组存数据查找快? 探究V8中对象的实现原理,熟悉数组索引属性.命名属性.对象内属性.隐藏类.描述符数组.快慢属性等等. D8调试工具使用请来这里 ...
- 关于virtio_net网卡命名的小问题
最近看了一个小问题,涉及到一致性网络设备命名(Consistent Network Device Naming),在此记录一下. 系统是 4.18.0-240.el8.x86_64,centos 8. ...
- 2.窗口部件-对话框QDialog
1.模态和非模态 看代码 widget.cpp #include "widget.h" #include "ui_widget.h" #include<Q ...
- OpenJudge1.5.17 菲波那契数列
17:菲波那契数列 总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和. 给出一个正整数k,要求 ...
- Neo4j入门详细教程
Neo4j安装配置 (1)下载安装包 (2)安装jdk (3)环境变量配置 分三步,具体参考 https://www.bilibili.com/video/BV1Nz411q7bG?from=sea ...
- 使用Inno Setup 制作软件安装包详细教程(与开发语言无关)
前言:关于如何制作一个软件安装包的教程,与编程语言无关.以下,请看详情~ 1.下载Inno Setup,下载地址:https://jrsoftware.org/isinfo.php 2.下载最新版本即 ...
- Maven 过滤问题
<build> <resources> <resource> <directory>src/main/resources</directory&g ...
- Exchange如何将邮件转发给外部邮件地址
Exchange如何将邮件转发给外部邮件地址 最近遇到一个需求.一位已经离职的员工需要将后续的邮件转发给他自己的私人邮箱.安全,行政的审核通过后,这个问题就到了技术部门了. Exchange可以很方便 ...
- IDEA远程部署项目到Docker
前言 最近在写东西部署到服务器,结构是springboot工程配合docker部署. 但是每次部署都3个步骤: 本地构建jar 复制jar到远程服务器 用DockerFile构建镜像 部署次数一多,我 ...
- Docker Compose配置文件详解(V3)
Docker Compose配置文件是Docker Compose的核心,用于定义服务.网络和数据卷.格式为YAML,默认路径为./docker-compose.yml,可以使用.yml或.yaml扩 ...