k8s术语之Replication Controller

Replication Controller 在kubernetes中简称RC,它其实是定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,包括一下几个值:

1.Pod期待的副本数(replicas)

2.用于筛选目标Pod的Lable Selector

3.当Pod的副本数量小于预期数量时,用于创建新的Pod的模板(template)

当我们定义了一个RC并提交到kubernetes后,Master节点上的Controller Manager组件就得带通知,定期巡检检测中当前存活的目标Pod,并确保目标Pod实例的梳理刚好等于replicas的值,如果多于这个值,系统就会停掉一些pod,少之则创建。可以说,通过RC,kubernetes实现用户应用集群的高可用性,减少了手工运维操作

通过RC,可动态进行Pod实例数的缩放,kubectl scale命令为我们提供了这一功能

kubectl scale rc redis-slave --replicas=3

需要注意的是,删除RC并不会影响通过该RC已经创建好的Pod,为了删除所有Pod,可用通过设置replicas的值为0,然后更新该RC.另外Kubectl提供了stop和delete命令来一次性删除RC和RC控制的所有Pod

RC也提供用户应用平滑升级的功能,比如当前系统中有10个旧版本的Pod需要更新到新版,最好的方式是每次停止一个旧版本的Pod,就创建一个新版本的Pod,几分钟后当所有的Pod都是新版本时升级完成,用户不会感受到业务有任何影响,这种在kubernetes中被称作"滚动升级"

扩展和缩减

将replicas修改为5

kubectl apply -f rctest.yaml

kubectl get pod -o wide

相关推荐
秋饼1 分钟前
LangChain4j + Java 实现企业级 Text-to-SQL 智能问数系统:从自然语言到安全可控的数据洞察
java·ai·技术分享·后端开发
Escalating_xu8 分钟前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
qizhideyu17 分钟前
kubernetes
云原生·容器·kubernetes
何以解忧,唯有..18 分钟前
Python os模块详解:文件与目录操作指南
java·服务器·python
Csxyzj29 分钟前
kubernetes集群部署方法
java·linux·kubernetes
SQL-First布道者35 分钟前
全面解构传统持久层框架,拥抱真正的 SQL-First
java·数据库·spring boot·sql·spring·mybatis·spring jdbc
wish3661 小时前
K8S 免镜像部署:通过 API 上传文件动态创建服务(以 Ollama 为例)
人工智能·云原生·容器·kubernetes·local llm
小小克1 小时前
k8s集群部署的方法
云原生·容器·kubernetes
kobeyyl1 小时前
K8s集群部署核心原理与主流部署方法全解析
云原生·容器·kubernetes
小蒜学长1 小时前
vue旅游攻略网站(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端·旅游