文章目录1. 概述2. 工作原理2.1 配置必填字段2.2 调谐循环逻辑控制器持续执行2.3 Pod 归属与接管规则3. 资源清单编写规范3.1 通用顶层基础规范3.2 Pod 模板硬性约束3.3 标签选择器规则3.4 副本数字段规则4. 使用示例4.1 部署、查看、调试4.2 删除4.3 脱离 RS 管控4.4 缩容 Pod 删除优先级示例 1删除成本注解使用示例2缩容演示4.5 Pod 终止机制4.6 HPA 自动扩缩容5. 替代方案对比1. 概述ReplicaSet副本集简称RS核心能力是持续维持集群内指定数量、配置一致的Pod正常运行。唯一目标集群里一直保持replicas指定数量的可用Pod不关心版本更新、灰度发布只做「数量对齐」。ReplicaSet仅负责保证固定数量Pod持续运行而Deployment是更高层级的控制器内置管理ReplicaSet的能力支持声明式滚动更新、版本回滚等大量生产必备特性。2. 工作原理2.1 配置必填字段三大必填字段各自作用spec.selector标签选择器匹配接管对应标签Pod。spec.replicas期望Pod副本数默认1。spec.templatePod模板数量不足时按此新建Pod。2.2 调谐循环逻辑控制器持续执行控制器不停做对比运算统计集群内所有匹配selector的Pod区分两类Pod自有Pod带有ownerReferences指向当前RS裸Pod无归属、仅标签匹配分三种情况处理总数 replicas按template创建新Pod自动给新Pod打上ownerReferences总数 replicas删除多余Pod优先按内置删除策略清理Pod正常运行但进程崩溃 / 节点失联视为失效Pod标记销毁再新建补齐数量。2.3 Pod 归属与接管规则每个Pod的metadata.ownerReferences是一段资源标记记录这个Pod是哪个ReplicaSet创建的。ownerReferences归属绑定规则RS通过这个字段识别自己创建的PodRS新建Pod时自动写入该字段记录父资源为当前RS多RS场景下每个RS只信任带有自己归属标记的Pod互不混淆裸Pod没有此字段属于无主资源。RS会自动捞走匹配标签的裸Pod判断条件同时满足就接管Pod没有ownerReferences无控制器Pod标签和RS的spec.selector完全对上场景1RS期望副本数replicas3但RS已有3个正常Pod手动新建2个同标签裸Pod。此时总 Pod3RS 亲生2裸 Pod5超过目标数量RS调谐逻辑多出来的要删掉 → 直接销毁2个裸Pod维持总数3。场景2先手动建2个同标签裸Pod再创建replicas3的RSRS启动扫描到2个匹配裸Pod直接接管给Pod打上归属标记。当前总数2 期望3RS再按模板新建1个Pod凑够3个。RS认两件事归属标记区分亲生Pod标签匹配就抢无主Pod只保证数量达标不统一Pod内部配置。3. 资源清单编写规范最简合规RS模板对照规范apiVersion:apps/v1kind:ReplicaSetmetadata:name:demo-rs# DNS标签规范命名spec:replicas:3# 可选不写默认1selector:matchLabels:app:demotemplate:metadata:labels:app:demo# 和selector标签完全一致spec:restartPolicy:Always# 仅允许该值containers:-name:demoimage:nginx3.1 通用顶层基础规范强制三要素缺一不可apiVersion、kind、metadataRS专属固定值apiVersion: apps/v1kind: ReplicaSet不可修改metadata.name约束遵循DNS标签命名规范控制平面会用RS名称作为Pod名称前缀命名不规范会导致Pod主机名解析异常。3.2 Pod 模板硬性约束标签强一致性校验模板内metadata.labels必须和spec.selector.matchLabels完全相同API服务端会做校验不一致直接拒绝创建RS。重启策略限制spec.template.spec.restartPolicy仅允许 Always不支持OnFailure/Never原因RS 的职责是长期常驻副本Pod 退出后必须自动重建一次性任务由Job/CronJob负责。3.3 标签选择器规则spec.selector作用筛选集群内可纳入统计的Pod范围多RS同selector隔离机制多个RS配置一模一样的选择器、但Pod模板不同时不会争抢Pod。区分逻辑依靠Pod的ownerReferences归属标记每个RS只管理自己创建、带自身归属标记的Pod裸Pod才会被最先匹配到的RS接管。3.4 副本数字段规则spec.replicas功能定义集群需要维持的目标Pod数量默认值字段省略时自动填充replicas: 1控制器行为持续对比实际Pod总数与期望值自动增删Pod对齐数量。4. 使用示例4.1 部署、查看、调试创建RS资源清单nginx-rs.yaml# K8s API 版本ReplicaSet 归属 apps/v1 组apiVersion:apps/v1# 资源类型副本集 ReplicaSetkind:ReplicaSet# 元数据资源名称、标签标识metadata:# ReplicaSet 名称遵循DNS标签规范用于生成Pod前缀name:nginx-rs# RS自身标签用于筛选、分组管理资源labels:app:nginx# ReplicaSet 核心业务配置段spec:# replicas期望运行的Pod副本数量省略默认值1replicas:3# 标签选择器筛选本RS管控的Podselector:matchLabels:# 匹配Pod模板内定义的标签必须与template.labels完全一致app:nginx# Pod模板副本不足时以此模板新建Podtemplate:metadata:# Pod标签和上方selector.matchLabels保持统一API强制校验labels:app:nginxspec:# Pod容器列表containers:# 容器名称Pod内唯一标识-name:nginx# 官方Nginx轻量镜像image:nginx:1.24-alpine# 容器暴露端口ports:-containerPort:80应用清单创建RSkubectl apply-fnginx-rs.yaml查看集群所有副本集kubectl get rs输出示例NAME DESIRED CURRENT READY AGE nginx-rs 3 3 3 6s字段解释DESIRED期望副本数CURRENT当前运行总实例数READY就绪可用实例数AGE资源创建时长查看RS详细信息kubectl describe rs/nginx-rs输出关键信息解读Selector匹配标签appnginxReplicas当前3个 / 期望3个Pods Status运行中/等待/执行成功/失败Pod数量Pod Template创建Pod使用的Nginx镜像、容器端口配置Events控制器创建Pod的操作日志查看RS管理的Podkubectl get pods输出类似NAME READY STATUS RESTARTS AGE nginx-rs-xxxxxx 1/1 Running 0 20s nginx-rs-yyyyyy 1/1 Running 0 20s nginx-rs-zzzzzz 1/1 Running 0 20s验证Pod的归属引用ownerReferences# 替换为实际Pod名称kubectl get pods nginx-rs-xxxxxx-oyamlPod元数据中ownerReferences会记录所属ReplicaSet标识该Pod由RS全权管理。4.2 删除删除RS连带删除Pod默认kubectl delete rs nginx-rs只删RS、保留Pod孤儿Podkubectl delete rs nginx-rs--cascadeorphan4.3 脱离 RS 管控现有Nginx RSreplicas:3标签app:nginx3个Pod正常运行。查看Podkubectl get pods --show-labels输出nginx-rs-7x9sf 1/1 Running 0 20m appnginx nginx-rs-2dfvj 1/1 Running 0 20m appnginx nginx-rs-5tn8g 1/1 Running 0 20m appnginx修改其中一个Pod标签脱离RS管控kubectl label pod nginx-rs-7x9sfappnginx-test--overwrite现象该Pod标签变为appnginx-test不再匹配RS selector脱离RS管理RS检测当前匹配Pod只剩2个不足3副本立刻新建一个nginx-rs-xxxx补齐至3个现在集群一共4个Pod1个脱离管控的旧Pod RS管理的3个标准Pod。4.4 缩容 Pod 删除优先级示例 1删除成本注解使用给Pod打上低数值注解缩容时优先删掉它# 给Pod设置删除成本-100优先销毁kubectl annotate pod nginx-rs-2dfvj controller.kubernetes.io/pod-deletion-cost-100其他Pod无注解默认0缩容时会先删-100的Pod。示例2缩容演示RS副本3个执行缩容到2个kubectl scale rs nginx-rs--replicas2控制器判断删除顺序如果有Pending未调度Pod优先删有-100注解的Pod第二个删同一节点Pod更多的实例次之刚创建不久的新Pod全部条件一致随机删。4.5 Pod 终止机制终止机制缩容、删除时Pod进入终止状态销毁耗时较长期间集群总Pod数量会临时超过replicas可通过RS的status.terminatingReplicas查看正在销毁的实例。开启方式API Server、kube-controller-manager配置特性门控DeploymentReplicaSetTerminatingReplicas。缩容命令kubectl scale rs nginx-rs--replicas1观察现象kubectl get pods会看到2个Pod状态为Terminating此时集群总Pod数量3大于目标replicas1查看终止中副本数量kubectl get rs nginx-rs-oyaml在status.terminatingReplicas字段能看到正在销毁的Pod个数等待优雅停止完成后数量回归1。4.6 HPA 自动扩缩容RS可作为HPA伸缩目标自动调整副本数apiVersion:autoscaling/v1kind:HorizontalPodAutoscalerspec:scaleTargetRef:apiVersion:apps/v1kind:ReplicaSetname:frontend minReplicas:3maxReplicas:10targetCPUUtilizationPercentage:50快捷命令kubectl autoscale rs frontend--min3--max10--cpu50%5. 替代方案对比控制器核心能力使用场景裸 Pod无控制器无自愈故障不重建本地临时测试禁止线上使用ReplicaSet仅保证固定Pod数量无发布更新几乎不用仅底层支撑DeploymentDeployment复用RS能力支持滚动更新、回滚、版本管理无状态业务Web、API服务首选StatefulSet稳定网络标识、有序创建/删除、专属持久存储有状态实例MySQL、Redis集群、Zookeeper、Elasticsearch等有状态中间件DaemonSet每节点运行1个Pod日志、监控、节点代理Job/CronJob一次性任务执行完成即退出离线批处理、定时任务ReplicationControllerRS前身仅等值标签选择器已淘汰新项目不使用官方建议优先使用 Deployment不直接操作 ReplicaSet。
Linux第18篇:Spring Boot 生产部署完全指南——从“能跑”到“敢拍胸脯” 系列导读:这是《Java微服务运维实战》系列第10篇。在上一篇(第9篇)我们学习了网络诊断工具,解决了“怎么连”的问题。本文将解决“怎么部署”的问题——当你的Spring Boot应用准备上线时,你需要的绝不仅仅是java -jar。…
业务架构:业务的顶层设计 业务架构:业务的顶层设计 开篇:先有业务还是先有系统? 张三想开一家餐厅。 他有两个选择: 选择A:先装修好餐厅,再想卖什么菜 选择B:先想好卖什么菜,再装修餐厅 显然选择B是对的。 业务架构就是"先想好卖什么菜"。 什么是业务架构? 业务架构是对业务…
2026 广州荔湾区长短途搬家全套服务明细,租房搬家完整流程与行业收费套路拆解 - gzdjxd 2026 年 7 月广州荔湾区迎来夏季搬家高峰期,片区内西关老西关步梯旧小区、广钢新城电梯商品房、城中村出租屋混居,狭窄街巷、低层无电梯、大件家具转运难等问题集中,多数租客咨询时容易被低价引流套路误导,想要获取…
成都AI软件定制服务商怎么判断 - IT超人老张 成都AI软件定制服务商怎么判断成都AI软件定制服务商怎么判断,首先要把问题放回真实业务里看。成都本地的产业基础集中在软件信息、游戏文创、电子信息、航空航天、消费服务等方向,企业对AI的期待通常不是做一个能聊天…
2026国内靠谱的geo优化服务商推荐信息整理 - 起跑123 2026国内靠谱的geo优化服务商推荐信息整理2026优选,当前随着豆包、文心一言、通义千问、DeepSeek等各类AI大模型的普及,越来越多用户在查找产品供应商、本地服务商家的时候,都会优先通过AI问答的方式获取推荐结果,…
江诗丹顿中国官方售后服务中心|官方地址及24小时售后电话权威信息通告(2026年7月更新) - 江诗丹顿官方服务中心 江诗丹顿中国官方售后服务中心在2026年7月完成服务网络升级,全国统一客户服务热线正式启用400-882-9682,每日8:00至22:00提供专属支持。同时,官方售后地址于2026年7月变更为全国多城市直属服务站点体系,覆盖北京、…
2026湖北CPPM认证考试辅导机构怎么选?正规核验与避坑指南 - 企智芯 2026年,湖北地区咨询CPPM认证考试辅导机构怎么选的采购从业者明显增多。市场上辅导服务质量参差不齐,本文整理了一套可落地的核验方法,帮助考生理性选择。 湖北作为中部商贸枢纽,采购岗位需求持续增长,不少从业者…
2026年7月最新嘉兴积家官方售后客服服务电话及地址网点大全 - 积家官方售后服务中心 2026年7月最新嘉兴积家官方售后客服服务电话及地址网点大全,为您提供权威的腕表保养、维修与客户服务指南。本文将系统梳理官方售后渠道、收费标准、质保政策、技术标准、养护知识、用户反馈及常见问题,确保您获得准…
2026年全国视觉点胶机厂家推荐:浙江晨灿智能的核心竞争力在哪? - 行业深度观察C 在国内制造业智能化升级的浪潮下,视觉点胶机作为提升生产精度、降低人力成本、保障产品一致性的核心流体控制装备,已经被广泛应用于工艺品、3C电子、新能源、航空航天等多个领域。对于有采购需求的企业来说,筛选靠谱…
2026年7月最新金华宇舶官方售后客户服务热线与维修网点地址汇总 - 亨得利官方服务中心 金华宇舶官方售后客户服务热线与维修网点地址信息是每一位宇舶腕表拥有者都极为关注的核心内容。作为瑞士高端制表品牌,宇舶以其精湛工艺与创新设计闻名,确保腕表始终处于理想运行状态,离不开官方售后渠道的合规支持…
HS2汉化补丁终极指南:一键解锁Honey Select 2完整中文体验 HS2汉化补丁终极指南:一键解锁Honey Select 2完整中文体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日文界面而苦恼吗…
怎么寄快递才能便宜呢?2026年7月寄快递省钱攻略 - 生活情报姬 同一箱老家特产,同事花22寄的,我花9块。不是我路子野,是我按场景选了渠道。寄快递便宜不便宜,一半看你会不会"对号入座"——退换货、卖闲置、寄礼物,招数都不一样。 分场景才最省 丰火递想不管啥场景都…
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复 如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…
企业AI落地困境与AgenticOps实践指南 1. 企业AI落地的现实困境与破局之道过去两年,大模型技术呈现爆发式增长,从GPT-3到GPT-4,从LLaMA到DeepSeek,模型参数规模从百亿级跃升至万亿级,多模态能力从单一文本扩展到图文音视频的综合处理。然而在企业应用层面&a…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…