Kubernetes之Deployment

Deployment 简介

deployment 是用来管理无状态应用的,面向的是集群的管理, 举例:有一群鸭子,要吃掉一个,只需要再放一个新的鸭仔就好了,不会影响什么,而有状态的应用,就同时养三条狗一样,而每个狗都是无法代替用新的事物代替的,因为有“感情”这个状态在里面。

Deployment 为Pod 和 ReplicaSet 之上,提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationController 来方便的管理应用。

你只需要在 Deployment 中描述您想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和ReplicaSet 的实际状态改变到您的目标状态。您可以定义一个全新的 Deployment 来

创建 ReplicaSet 或者删除已有的 Deployment 并创建一个新的来替换。也就是说Deployment是可以管理多个ReplicaSet的。

典型的应用场景包括: 

  • 创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建过程。
  • 检查Deployment的状态来看部署动作是否完成(Pod副本的数量是否达到预期的值)。
  • 更新Deployment以创建新的Pod(比如镜像升级)。
  • 如果当前Deployment不稳定,则回滚到一个早先的Deployment版本。
  • 暂停Deployment以便于一次性修改多个Pod Template Spec的配置项,之后再恢复Deployment,进行新的发布。
  • 扩展Deployment以应对高负载。
  • 查看Deployment的状态,以此作为发布是否成功的指标。
  • 清理不再需要的旧版本ReplicaSet。

Deployment 升级

kubectl explain deploy.spec.strategy 

策略订是配置怎么滚动升级的,支持两种策略:

  • Recreate   重建式更新,就是删一个建一个。
  • rollingUpdate  滚动更新,简单定义 更新期间pod最多有几个等

rollingUpdate 有两种策略

  • maxSurge  指定超出副本数有几个,两种方式:1、指定数量 2、百分比
  • maxUnavailable 最多有几个不可用

Deployment 历史版本

kubectl explain deploy.spec.revisionHistoryLimit

最多保存多少个历史版本,默认是10个

Deployment 模板

kubectl explain deploy.spec.template

 

posted @   Mr.peter  阅读(405)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2018-03-20 论MYSQL数据库数据错误的处理
2017-03-20 Yii2修改默认布局
2017-03-20 Yii2中把路由地址中的%2F改为/
点击右上角即可分享
微信分享提示