总结:K8S之之Pod和Deployment的区别及RC相关概念

本文探讨了Kubernetes中的Pod、Deployment、ReplicationController之间的关系,重点介绍了Deployment作为高级资源在应用部署中的关键作用,包括版本管理、回滚策略和弹性伸缩。
摘要由CSDN通过智能技术生成

一、介绍

Pod是k8s的最小调度单位,一个Pod中可以有多个containers,彼此共享网络等,这是k8s的核心概念。

其他资源基本上都是围绕着Pod而展开,比如RC(Replication Controller)或者RS(Replication Set),这两种资源可以控制Pod的副本数,所以它们就比Pod高级一点,在定义它们的时候和Deployment一样,需要在template中定义Pod中的容器等内容,而Deployment是比RC或者RS更高级的一种资源,它不但可以控制Pod的副本数,同时还可以控制Pod的版本,所以这么高级的资源并不是时时刻刻都需要的,比如你就想暂时性的部署一个小程序,用完就不要了,那么你就没有必要使用RS或者RC,更没有必要去用Deploment。

----------------------------------------

从开发者角度看,deployment顾明思意,既部署,对于完整的应用部署流程,除了运行代码(既pod)之外,需要考虑更新策略,副本数量,回滚,重启等步骤,而运行代码的方式有很多种,例如有一次性的也就是job,有定时执行的也就是crontabjob,有排号的也就是sts,为了复用运行代码的功能所以抽象为pod,从而进行复用。
从用户角度看,我们操作时也会根据不同的代码副本进行查看,例如日志,资源占用都是实例级别的也需要这么一个抽象。
----------------------------------------

pod是单一亦或一组容器的合集。

deployment是pod版本管理的工具 用来区分不同版本的pod。

单独创建pod的时候就不会有deployment出现,但是创建deployment的时候一定会创建pod,因为pod是一个基础的单位。

任何的控制器单位的具体实现必须落到pod去实现。

----------------------------------------

二、Replication Controller与Deployment

Replication Controller

Replication Controller为Kubernetes的一个核心内容,应用托管到Kubernetes之后,需要保证应用能够持续的运行,Replication Controller就是这个保证的key,主要的功能如下:

  • 确保pod数量:它会确保Kubernetes中有指定数量的Pod在运行。如果少于指定数量的pod,Replication Controller会创建新的,反之则会删除掉多余的以保证Pod数量不变。

  • 确保pod健康:当pod不健康,运行出错或者无法提供服务时,Replication Controller也会杀死不健康的pod,重新创建新的。

  • 弹性伸缩 :在业务高峰或者低峰期的时候,可以通过Replication Controller动态的调整pod的数量来提高资源的利用率。同时,配置相应的监控功能(Hroizontal Pod Autoscaler),会定时自动从监控平台获取Replication Controller关联pod的整体资源使用情况,做到自动伸缩。

  • 滚动升级:滚动升级为一种平滑的升级方式,通过逐步替换的策略,保证整体系统的稳定,在初始化升级的时候就可以及时发现和解决问题,避免问题不断扩大。

Deployment

Deployment同样为Kubernetes的一个核心内容,主要职责同样是为了保证pod的数量和健康,90%的功能与Replication Controller完全一样,可以看做新一代的Replication Controller。但是,它又具备了Replication Controller之外的新特性:

  • Replication Controller全部功能:Deployment继承了上面描述的Replication Controller全部功能。

  • 事件和状态查看:可以查看Deployment的升级详细进度和状态。

  • 回滚:当升级pod镜像或者相关参数的时候发现问题,可以使用回滚操作回滚到上一个稳定的版本或者指定的版本。

  • 版本记录: 每一次对Deployment的操作,都能保存下来,给予后续可能的回滚使用。

  • 暂停和启动:对于每一次升级,都能够随时暂停和启动。

  • 多种升级方案:Recreate:删除所有已存在的pod,重新创建新的; RollingUpdate:滚动升级,逐步替换的策略,同时滚动升级时,支持更多的附加参数,例如设置最大不可用pod数量,最小升级间隔时间等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值