Kubernetes & Deployment
Kubernetes & Deployment
Deployment是Kubernetes在1.2版本中引入的新概念,用于更好地解决Pod的编排问题。为此,Deployment在内部使用了Replica Set来实现目的,无论从Deployment的作用与目的、YAML定义,还是从它的具体命令行操作来看,我们都可以把它看作RC的一次升级,两者的相似度超过90%。
Deployment相对于RC的一个最大升级是我们可以随时知道当前Pod“部署”的进度。实际上由于一个Pod的创建、调度、绑定节点及在目标Node上启动对应的容器这一完整过程需要一定的时间,所以我们期待系统启动N个Pod副本的目标状态,实际上是一个连续变化的“部署过程”导致的最终状态。
Deployment的典型使用场景有以下几个:
- ◎ 创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建。
- ◎ 检查Deployment的状态来看部署动作是否完成(Pod副本数量是否达到预期的值)。
- ◎ 更新Deployment以创建新的Pod(比如镜像升级)。
- ◎ 如果当前Deployment不稳定,则回滚到一个早先的Deployment版本。
- ◎ 暂停Deployment以便于一次性修改多个PodTemplateSpec的配置项,之后再恢复Deployment,进行新的发布。
- ◎ 扩展Deployment以应对高负载。
- ◎ 查看Deployment的状态,以此作为发布是否成功的指标。
- ◎ 清理不再需要的旧版本ReplicaSets
本人博客所有文章,均为原创。部分文章中或引用相关资料,但均已著明来源出处。可随意转载、分享,但需加本文链接,以及版权说明。