Replication Controller 和 Replica Set
使用Replication Controller 、 Replica Set管理Pod
Replication Controller (RC)
简写为RC,可以使用rc作为kubectl工具的快速管理对象,用来管理多个Pod资源对象,不止针对一个pod对象。如果pod数量过多,则删除多的,如果pod数量减少,有pod不健康或者宕掉时,会重新启动一个pod,保证pod的总数不变,主要用来部署、升级Pod
使用RC管理Pod
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
labels:
app: nginx
spec:
replicat: 3 #设置副本数量
selector:
app: nginx #选择管理的Pod 标签
template:
metadata:
labels:
app: nginx #必须和selector选择的标签一致
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
相比于Pod资源对象的部署文件模板,rc几乎保持一致,需要apiVersion,kind,metadata,spec,不同在于rc中多了spec.template字段,spec.template下是Pod的模板,和Pod资源对象的格式一样。
Replica Set(RS)
简写为rs,下一代RC,功能基本一样,不同之处在于,RC只支持等式标签选择selector(env=dev或environment!=qa),RS还支持基于集合的selector(version in (v1.0,v2.0))
官方模板
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# modify replicas according to your case
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3
总结下关于RC
/RS
的一些特性和作用吧:
- 大部分情况下,我们可以通过定义一个
RC
实现的Pod
的创建和副本数量的控制 RC
中包含一个完整的Pod
定义模块(不包含apiversion
和kind
)RC
是通过label selector
机制来实现对Pod
副本的控制的- 通过改变
RC
里面的Pod
副本数量,可以实现Pod
的扩缩容功能 - 通过改变
RC
里面的Pod
模板中镜像版本,可以实现Pod
的滚动升级功能(但是不支持一键回滚,需要用相同的方法去修改镜像地址) - RS可以作为Pod水平伸缩的定标器(HPA)
Replication Controller 和 Replica Set的更多相关文章
- Replication Controller、Replica Set
假如我们现在有一个Pod正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营活动非常成功,网站访问量突然暴增 运行当前Pod的节点发生故障了,Pod不能正常提供服务了 第一种情况,可 ...
- kubernetes进阶之五:Replication Controller&Replica Sets&Deployments
一:Replication Controller RC是kubernetes的核心概念之一.它定义了一个期望的场景即声明某种Pod的副本数量在任意时候都要符合某个预期值. 它由以下几个部分组成: 1. ...
- kubernetes 1.3管中窥豹- RS(Replica Sets):the next-generation Replication Controller
前言 kubernates 1.3出了几个新的概念,其中包括deployments,Replica Sets,并且官网称之为是the next-generation Replication Contr ...
- kubernetes concepts -- Replication Controller
Edit This Page ReplicationController NOTE: A Deployment that configures a ReplicaSet is now the reco ...
- kubernets之Replication Controller
一 Replication Controller的介绍 pod可能会由于各种原因消失和多出来,例如node节点去除集群或者人为的手工创建,所以为了方便和管理pod的数量,k8s里面 的另外 ...
- kubernetes in action - Replication Controller
理解这个问题,就是pods在Kubernetes中怎么进行failover 在Kubernetes的work node上有kubelet,会负责监控该work node上的pods,如果有contai ...
- 声明式API replica controller vs replica set 对比
1.在命令式API中,你可以直接发出服务器要执行的命令,例如: “运行容器”.“停止容器”等. 在声明性API中,你声明系统要执行的操作,系统将不断向该状态驱动. 可以想象成手动驾驶和自动驾驶系统.( ...
- Replication Controller
RC保证在同一时间能够运行指定数量的Pod副本,保证Pod总是可用.如果实际Pod数量比指定的多就结束掉多余的,如果实际数量比指定的少就启动缺少的. 当Pod失败.被删除或被终结时,RC会自动创建新的 ...
- Kompose: Docker-compose 到 Kubernetes 的迁移工具
Docker 让每个人都能够从 Docker Registry 启动一个打包好的 Docker 应用.Docker-Compose在Docker基础上解决了多容器应用之间的依赖启动问题. Docker ...
随机推荐
- 【PHP】 PHP中插件机制的一种实现方案
插件,亦即Plug-in,是指一类特定的功能模块(通常由第三方开发者实现),它的特点是:当你需要它的时候激活它,不需要它的时候禁用/删除它:且无 论是激活还是禁用都不影响系统核心模块的运行,也就是说插 ...
- echo的色彩处理
在Shell脚本中,可以使用echo的-e选项使显示内容呈现出不同的颜色. 格式1:echo -e "\033[背景颜色代码;文字颜色代码m 输出的字符串 \033[0m" 格式2 ...
- Mac mysql 忘记root密码的解决方法
1.执行命令以安全模式启动MySQL cd /usr/local/mysql/bin sudo ./mysqld_safe --skip-grant-tables 2.同上面目录下执行 '\) whe ...
- 大数据 -- kafka学习笔记:知识点整理(部分转载)
一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...
- TensorFlow 8 bit模型量化
本文基本参考自这篇文章:8-Bit Quantization and TensorFlow Lite: Speeding up mobile inference with low precision ...
- Mac下 homebrew 安装mysql
操作步骤 安装homebrew brew install mysql 安装mysql 安装完成之后,可以运行命令启动mysql服务 mysql.server start 然后输入命令设置密码 mysq ...
- npx vs npm
npx vs npm npx 使用教程
- c# – Asp.Net Core MVC中Request.IsAjaxRequest()在哪里?
要了解有关新的令人兴奋的Asp.Net-5框架的更多信息,我正在使用最新发布的Visual Studio 2015 CTP-6来构建一个Web应用程序. 大多数事情看起来真的很有希望,但我似乎找不到R ...
- Android EditText禁止回车换行
在做一个登录页面的时候,发现了输入手机号的EditText可以输入回车的bug,影响用户体验,在此分享下解决办法. 百度了很多,都是设置singline=true的或者设置maxLines=" ...
- Java开发笔记(一百五十)C3P0连接池的用法
JDBC既制定统一标准兼容了多种数据库,又利用预报告堵上了SQL注入漏洞,照理说已经很完善了,可是人算不如天算,它在性能方面不尽如人意.问题出在数据库连接的管理上,按照正常流程,每次操作完数据库,都要 ...