k8s系列(六:实例)pod控制器、replicaSet、deployment、动态更新、控制更新节奏(金丝雀、蓝绿)

本文介绍了Kubernetes中Pod控制器如ReplicaSet、Deployment、DaemonSet和StatefulSet的用途。重点讲解了ReplicaSet的自动扩缩容和滚动更新,以及如何使用Deployment进行声明式配置资源和回滚。动态更新方面,通过金丝雀发布和蓝绿发布两种策略展示了更新节奏的控制。最后,详细阐述了如何通过kubectl命令进行滚动更新、控制最大可用和不可用副本数,以及如何进行回滚操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pod控制器的类型:

       ReplicaSet:支持滚动更新,自动扩缩容,用pod资源模板保证pod副本数量

       Deployment:借助ReplicaSet来实现,还支持回退,声明式配置资源,这个服务是无状态的,必须保持一直运行,守护进程类                                的 

       DaemonSet: 用一个节点精确保持一个特定pod副本运行,例如一些基础服务、这个服务是无状态的,必须保持一直运行,守                                 护进程类的 

       Jop: 只运行一次,任务没完成会重建,任务完成后不会重建,只能执行一次性作业,不需要持续运行

       Cronjop:周期性运行,不需要持续运行,

       StatefulSet: 有状态应用(redis、mysq)把手动做的操作复杂的执行逻辑定义成脚本放在pod模板当中,故障后通过脚本自动恢                              复过来

       TPR: Third Party Resources, 1.2-1.7

       CDP: Custom Defined Resoutces,1.8+

       Operator:

Helm: 

 定义 ReplicaSet    

ReplicaSet 的spec包括副本数、标签选择器、pod模板

编辑ReplicaSet 的yaml配置文件

在 Kubernetes (k8s) 中,“热修复”通常指的是在不影响应用程序正常运行的情况下,对集群中的资源或应用进行升级、修补漏洞或修改配置的操作。这种做法可以最大限度地减少停机时间,并确保服务连续性。以下是几种常见的热修复方法及其实现方式: ### 1. 使用 `kubectl rollout` Kubernetes 提供了一个非常方便的工具叫作 `rollout`,它可以用来管理有状态集(StatefulSets)、副本集(ReplicaSets)、部署(Deployments)等资源的版本控制和平滑更新过程。 #### 更新镜像 你可以通过上述提到的 `kubectl set image` 来动态替换正在运行的服务使用的容器镜像,从而实现不停服的情况下的代码更新。例如: ```bash kubectl set image deployment/my-app-deployment my-container=my-image:new-version ``` 这会触发一次滚动更新,将所有实例逐步切换到新版镜像上。 #### 回滚 如果发现新版本存在问题,还可以利用 `kubectl rollout undo` 来迅速回退到最后一个稳定的状态。 ```bash kubectl rollout undo deployment/my-app-deployment ``` ### 2. 修改 ConfigMap 和 Secret 有时你需要调整环境变量、配置文件等内容而不必重启整个 Pod。这时就可以直接编辑对应的 ConfigMap 或 Secret 对象;因为它们的内容会被挂载进 Pod 内部作为卷或者注入成环境变量,所以当这些对象发生变化时,Pod 可以自动读取最新的值而不需要完全重建。 ```bash # 编辑 ConfigMap kubectl edit configmap my-config-map # 应用更改后的 ConfigMap 到现有 pod kubectl rollout restart deployment/my-app-deployment ``` 不过需要注意的是,不是所有的 Pod 都会对这样的变化做出响应——只有那些设计得足够灵活的应用才会监听外部依赖的变化并在必要时刷新自身设置。 ### 3. 蓝绿部署和金丝雀发布 为了降低风险并更好地测试变更效果,在实施较大规模的改动之前往往会选择蓝绿部署或是采用金丝雀发布的策略。这两种模式允许你在小范围内验证新版本的表现后再考虑全面推广。 - **蓝绿部署**:创建一个新的完整的生产环境 ("蓝色") 并平行保留原有的生产环境("绿色") ,一旦确认无误再一次性迁移流量过去。 - **金丝雀发布**:逐渐增加新版本的比例,比如开始只让一小部分用户访问最新版的功能模块,然后根据监控数据慢慢扩大范围直至全部上线。 ### 实施注意事项 无论采取哪种方式进行热修复,都应当密切监视系统的健康状况以及性能指标,及时处理可能出现的问题。同时也要考虑到网络分区、磁盘 I/O 等潜在瓶颈因素,避免因临时负载激增而导致系统不稳定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值