当前位置: 首页 > article >正文

Kubernetes 实战对比:ReplicationController 与 Deployment 核心差异+落地案例

Kubernetes 实战对比ReplicationController 与 Deployment 核心差异落地案例一、前言从案例看控制器选择的重要性在 Kubernetes 部署实践中控制器的选择直接影响应用的稳定性和运维效率。本文通过3 个真实业务场景结合命令实操和结果对比深度解析 ReplicationControllerRC与 Deployment 的核心差异帮助读者快速判断何时该用 RC何时必须选 Deployment。二、核心差异速览表格汇总对比维度ReplicationControllerRCDeployment推荐底层依赖直接管理 Pod基于 ReplicaSet 间接管理 PodRC 升级版标签选择器仅支持等式选择器appnginx等式 集合选择器app in (nginx, web)更新能力命令式滚动更新无策略配置声明式滚动更新支持maxSurge/maxUnavailable回滚功能不支持更新失败需手动恢复支持任意版本回滚自动记录历史暂停 / 恢复更新不支持支持批量修改后统一生效适用场景简单副本维持测试环境生产环境复杂部署更新、回滚、灰度三、实战案例3 个场景看透差异案例 1生产环境 Pod 镜像更新最常用场景需求将线上 Nginx 应用从nginx:1.7.9升级到nginx:1.9.1要求零停机更新失败可快速回滚。1.1 用 RC 实现痛点明显#1. 查看当前 RC 状态3个副本运行中 kubectl get rc NAME DESIRED CURRENT READY AGE nginx 3 3 3 10m #2. 执行命令式滚动更新无状态记录 kubectl rolling-update nginx --imagenginx:1.9.1执行结果与问题更新过程中无法暂停若镜像拉取失败如nginx:1.91拼写错误RC 会持续创建失败 Pod导致资源浪费无更新历史记录若新镜像存在 bug需手动创建旧版本 RC--imagenginx:1.7.9恢复耗时且易出错无法配置更新策略默认一次性替换 Pod可能导致短暂服务不可用。1.2 用 Deployment 实现优雅高效#1. 查看当前 Deployment 状态 kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE nginx 3 3 3 3 10m #2. 声明式更新镜像支持策略配置 kubectl set image deployment/nginx nginxnginx:1.9.1 #3. 监控更新进度 kubectl rollout status deployment/nginx #输出deployment nginx successfully rolled out关键优势自动创建新 ReplicaSetnginx-xxx逐步扩容新 Pod、缩容旧 Pod零停机若更新失败如镜像错误Deployment 自动停止更新保留旧 Pod 可用#查看失败状态 kubectl describe deploy nginx #回滚至稳定版本1键操作 kubectl rollout undo deployment/nginx可提前配置更新策略零停机保障spec: strategy: rollingUpdate: maxSurge: 1 # 最多多创建1个 Pod maxUnavailable: 0 # 不允许任何 Pod 不可用案例 2批量修改 Pod 配置如资源限制需求给 Nginx 应用添加 CPU / 内存限制cpu: 200m, memory: 512Mi避免多次更新导致服务波动。2.1 用 RC 实现繁琐且有风险#1. 编辑 RC 配置添加资源限制 kubectl edit rc nginx #2. 保存后RC 会删除旧 Pod 并重建新 Pod3个 Pod 同时重建服务中断 kubectl get pods #输出旧 Pod 逐步删除新 Pod 正在创建期间可用 Pod 数为 0问题修改后直接重建所有 Pod导致服务短暂不可用无法批量生效。2.2 用 Deployment 实现安全可控#1. 暂停 Deployment 更新避免修改过程中触发多次滚动更新 kubectl rollout pause deployment/nginx #2. 编辑配置添加资源限制 kubectl edit deploy nginx #3. 可选继续修改其他配置如环境变量、端口 kubectl set env deployment/nginx APP_ENVprod #4. 恢复 Deployment一次性生效所有修改 kubectl rollout resume deployment/nginx关键优势暂停期间可批量修改多个配置恢复后仅触发 1 次滚动更新更新过程遵循预设策略保障服务可用无中断风险。案例 3从 RC 迁移到 Deployment存量系统升级需求现有系统使用 RC 管理 Nginx 应用需迁移到 Deployment保留现有 Pod 不中断服务。迁移步骤无缝衔接基于 RC 配置创建 Deployment YAMLnginx-deploy.yamlapiVersion: apps/v1 kind: Deployment metadata: name: nginx # 与原 RC 同名 spec: replicas: 3 # 与原 RC 副本数一致 selector: matchLabels: app: nginx # 与原 RC selector 一致关键 template: metadata: labels: app: nginx # 复用原 Pod 标签 spec: containers: - name: nginx image: nginx:1.7.9 # 原镜像版本 ports: - containerPort: 80 resources: # 新增资源限制可选 limits: cpu: 200m memory: 512Mi应用 Deployment 配置kubectl apply -f nginx-deploy.yaml验证迁移结果#查看 Deployment3个副本可用与原 RC 一致 kubectl get deploy nginx #查看 Pod原 Pod 未被删除Deployment 直接接管 kubectl get pods --show-labels删除旧 RC保留 Podkubectl delete rc nginx --cascadefalse迁移优势零停机原 Pod 继续运行Deployment 接管后不影响服务平滑过渡配置完全复用仅需修改kind字段学习成本低。四、适用场景与决策建议场景类型推荐控制器核心原因测试环境 / 简单副本维持RC配置简单无需高级功能生产环境 / 零停机更新Deployment支持滚动更新策略保障服务可用需版本回滚 / 问题追溯Deployment自动记录历史版本1 键回滚批量修改配置Deployment支持暂停 / 恢复避免多次更新波动灰度发布 / 金丝雀部署Deployment基于 ReplicaSet 实现多版本并行旧版 Kubernetes 集群RCDeployment 需 Kubernetes 1.9 支持五、总结核心选择原则生产环境首选 Deployment无论从稳定性、可维护性还是功能完整性Deployment 都是当前 Kubernetes 部署的标准方案覆盖 90% 业务场景RC 仅用于特殊场景仅当集群版本过低、或仅需简单副本维持无更新需求时考虑迁移无压力从 RC 到 Deployment 可无缝衔接无需中断服务建议存量系统逐步升级。通过实际案例可见Deployment 并非简单替代 RC而是在其基础上解决了生产环境的核心痛点更新策略、回滚、批量配置是 Kubernetes 声明式部署的最佳实践。

相关文章:

Kubernetes 实战对比:ReplicationController 与 Deployment 核心差异+落地案例

Kubernetes 实战对比:ReplicationController 与 Deployment 核心差异落地案例 一、前言:从案例看控制器选择的重要性 在 Kubernetes 部署实践中,控制器的选择直接影响应用的稳定性和运维效率。本文通过 3 个真实业务场景,结合命令…...

告别多余空白:Matplotlib 图像输出精细化控制指南 / 详解 bbox_inches 与 subplots_adjust 实战

1. 为什么你的Matplotlib图表总有多余空白? 每次用Matplotlib保存图表时,你是不是也遇到过这样的烦恼:明明在代码里设置了完美的尺寸,保存出来的图片却总带着一圈多余的空白边缘?这些空白不仅浪费空间,还会…...

Outstanding深度解析:从公式到实战的带宽优化指南

1. 从数学公式到真实场景:理解Outstanding的核心价值 第一次接触Outstanding这个概念时,我也被那些字母公式搞得头晕。但真正理解后才发现,它其实就是个"排队理论"的工程应用。想象一下你去银行办业务:R是柜员处理每笔业…...

如何快速移除Unity游戏马赛克:5分钟完成配置的终极指南

如何快速移除Unity游戏马赛克:5分钟完成配置的终极指南 【免费下载链接】UniversalUnityDemosaics A collection of universal demosaic BepInEx plugins for games made in Unity3D engine 项目地址: https://gitcode.com/gh_mirrors/un/UniversalUnityDemosaics…...

2025届必备的十大降重复率工具解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 为了对内容质量予以优化并且规避自动化检测,能够采取下面这些策略去降低AIGC特征…...

Figma中文插件终极指南:让Figma界面秒变中文的完整教程

Figma中文插件终极指南:让Figma界面秒变中文的完整教程 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾经因为Figma的全英文界面而感到困扰?作为一名中文…...

Spring Boot 自动装配条件触发逻辑

Spring Boot自动装配条件触发逻辑揭秘 Spring Boot的自动装配机制是其核心特性之一,它通过条件触发逻辑智能地加载所需的Bean,大幅简化了配置工作。这种“约定优于配置”的设计理念,让开发者能够快速构建应用,而无需手动编写大量…...

突破百度网盘限速:Python直连解析工具让你的下载速度飙升30倍

突破百度网盘限速:Python直连解析工具让你的下载速度飙升30倍 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字资源获取日益频繁的今天,百度网盘作…...

测试时数据增强(TTA)在表格数据中的实践指南

1. 测试时数据增强在表格数据中的应用测试时数据增强(Test-Time Augmentation, TTA)是一种提升预测模型性能的技术。虽然它最初是为图像数据设计的,但在表格数据上同样能发挥显著作用。作为一名从业多年的数据科学家,我发现很多同…...

DDR5 On-Die ECC:内存颗粒内的数据守护者

1. 内存数据的隐形杀手:为什么需要On-Die ECC? 当你用电脑处理重要文件时,有没有想过内存芯片内部正在发生一场无声的战争?DDR5内存颗粒中集成的On-Die ECC技术,就像一位24小时值守的保安,专门对付那些看不…...

51单片机实战:从直流电机调速到步进电机精确定位

1. 51单片机电机控制入门指南 第一次接触51单片机控制电机时,我完全被各种电机类型搞晕了。直到亲手让一个小车动起来,才真正理解其中的奥妙。51单片机作为经典微控制器,在电机控制领域有着广泛的应用场景,特别适合DIY智能小车、机…...

告别繁琐存档修改:一站式网页版暗黑破坏神2存档编辑器

告别繁琐存档修改:一站式网页版暗黑破坏神2存档编辑器 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾在暗黑破坏神2中为了一件稀有装备反复刷图数小时?是否想过调整角色属性却担心复杂的修改工具…...

深度解析:如何用UE Viewer高效处理虚幻引擎1-4代游戏资源

深度解析:如何用UE Viewer高效处理虚幻引擎1-4代游戏资源 【免费下载链接】UEViewer Viewer and exporter for Unreal Engine 1-4 assets (UE Viewer). 项目地址: https://gitcode.com/gh_mirrors/ue/UEViewer UE Viewer是一款强大的开源虚幻引擎资源查看与导…...

ComfyUI IPAdapter Plus:如何用一张图片重塑AI生成的艺术世界?

ComfyUI IPAdapter Plus:如何用一张图片重塑AI生成的艺术世界? 【免费下载链接】ComfyUI_IPAdapter_plus 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_IPAdapter_plus 你是否曾经遇到过这样的困境:想要AI生成一张特定风格的…...

5分钟快速配置Switch大气层系统:终极优化指南

5分钟快速配置Switch大气层系统:终极优化指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 你是否还在为Switch游戏加载缓慢、系统频繁崩溃而烦恼?Atmosphere-sta…...

Docker Desktop → Docker CE 完整迁移部署方案

全程分为 5 步:环境准备 → 迁移文件 → 部署配置 → 启动验证 → 维护规范。一、先明确两个环境区别Docker Desktop:开发用(Windows/Mac),自带 ComposeDocker CE:Linux 服务器生产环境(CentOS …...

Kubernetes 垃圾收集(Garbage Collection)完全指南:对象生命周期管理

Kubernetes 垃圾收集(Garbage Collection)完全指南:对象生命周期管理 1. Owner 和 Dependent(所有者与依赖对象) 1.1 核心概念Owner(所有者):Kubernetes 中部分对象可作为其他对象的…...

3PEAK思瑞浦 TP2582-SR SOIC-8 运算放大器

特性 供电电压:3V至36V 差分输入电压范围至电源轨输入轨至-Vs,轨到轨输出过载恢复时间 快速响应:10MHz带宽,8V/us斜率,100ns 低失调电压:在25C时最大3mV,在-40C至85C范围内最大值为3.5mV 在-40C至125C范围内最大值为4mV 极低总谐波…...

LFM2.5-VL-1.6B惊艳效果:手绘草图→物体识别+CAD建模提示词生成

LFM2.5-VL-1.6B惊艳效果:手绘草图→物体识别CAD建模提示词生成 1. 模型概述 LFM2.5-VL-1.6B是由Liquid AI推出的轻量级多模态大模型,专为边缘设备和端侧应用优化。这个1.6B参数的视觉语言模型(1.2B语言400M视觉)能够在低显存环境…...

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控 1. Before you begin(前置条件) 1.1 核心要求Kubernetes 集群需支持 NetworkPolicy API(Kubernetes 1.7 版本默认支持)。部署…...

基于RAG与本地化部署的智能文献助手Aeiva:从原理到实践

1. 项目概述:当AI遇上科研,Aeiva如何重塑文献阅读与知识管理如果你是一名科研工作者、研究生,或者任何需要深度阅读大量文献的从业者,那么你肯定对“文献焦虑”深有体会。面对海量的PDF论文,从筛选、阅读、整理到提炼核…...

前端库作者必看:如何用@babel/plugin-transform-runtime优雅地发布你的npm包(避坑全局污染)

前端库作者必看:如何用babel/plugin-transform-runtime优雅地发布你的npm包(避坑全局污染) 当你准备将精心开发的前端库发布到npm时,是否考虑过你的polyfill策略可能会污染使用者的全局环境?作为库开发者,我…...

多智能体强化学习环境PettingZoo:从AEC/并行API到实战应用

1. 项目概述:从单智能体到多智能体的跃迁 如果你是从OpenAI Gym或者Gymnasium一路玩过来的强化学习爱好者,那么当你第一次尝试把研究兴趣扩展到多个智能体时,大概率会感到一阵头疼。单智能体环境里, env.reset() 、 env.step(…...

ESP32-CAM通过TCP传图,如何解决常见的网络中断和图片乱码问题?

ESP32-CAM TCP图像传输实战:破解网络中断与数据乱码的工程级方案 当你兴奋地完成ESP32-CAM的基础TCP图像传输demo后,现实往往给你当头一棒——WiFi信号波动导致频繁断连、接收到的图片出现诡异马赛克、服务端解析时内存溢出...这些才是真实开发中的常态。…...

终极Windows更新修复指南:5分钟解决系统更新故障的完整方案

终极Windows更新修复指南:5分钟解决系统更新故障的完整方案 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool 你是否…...

微软公司产品图谱及生态

微软公司产品图谱及生态报告日期:2026年4月25日摘要微软(Microsoft Corporation)作为全球市值最高的科技企业之一,已完成了从传统软件授权公司向云服务与人工智能平台的史诗级转型。在首席执行官萨提亚纳德拉(Satya Na…...

Conda创建环境卡在‘Solving environment: failed’?别慌,试试这3种镜像源配置方法(附.condarc文件详解)

Conda环境创建卡在Solving environment: failed的深度解决方案与镜像源配置指南 当你在使用Conda创建Python环境时遇到Solving environment: failed错误,这通常意味着Conda无法解析和满足你指定的依赖关系。这个问题在配置不当或网络连接不稳定的情况下尤为常见。本…...

谷歌 Decoupled DiLoCo:革新分布式训练,高容错低带宽提升超大规模模型训练效率!

弹性 AI 预训练新前沿:谷歌的突破弹性 AI 预训练推进到了下一个前沿,这个突破来自谷歌。他们提出的 Decoupled DiLoCo 是一种革命性的分布式训练技术,能利用全球各地的异构硬件进行训练,即便硬件发生故障,系统也不会停…...

基于安卓的社区儿童托管预约平台毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一款基于安卓平台的社区儿童托管预约系统以解决当前城市社区中儿童托管服务供需失衡与管理效率低下等问题。随着我国城市化进程加速及双职工…...

Python系列AI系列(仅供参考-推荐):AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧

AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧1. 为什么开发者需要Trae AI插件2. 安装与基础配置详解2.1 插件安装的正确姿势2.2 账号配置与模型选择3. 日常开发中的高…...