您的位置:  首页 > 技术杂谈 > 正文

【云端技能包】k8s 知识- 模块化方式认识Statefulset和Deployment

2021-12-16 16:00 https://my.oschina.net/u/5173391/blog/5371259 云上说禅 次阅读 条评论

在学习干货前,客官请留步——【“云”住民生存训练营--玩转k8s】本周五,即将在线上开播,扫码一键预约直播!

                                           

当我们使用 k8s 的各种 resource 时,常常会感到 yaml 元素项目繁多、难以记忆,例如api, meta data, spec,template等等。我们在记忆某个选项或者是自己在编写这个选项的时候,可能会感觉比较困难。

事实上,k8s 的 resource 描述方式自有其规律在其中。如果能用模块化的方法拆解一下,可以更好地理解记忆它们的相同与不同之处。

云资源优化服务 SpotMax无缝集成了Kubernetes,可便捷实现容器的管理与自动化发布。==>戳链接了解SpotMax

StatefulSet  Deployment 作为我们在 k8s 中常用的控制器(工作负载),以不同方式管理着 Pod。通常情况下,StatefulSet用于部署有状态应用,Deployment 则用于部署无状态应用。

这一期“云端跟我学”,我们将以StatefulSet和Deployment为例,用模块化的方式进行对比记忆,并认知其中的规律。

对比一下 Statefulset和 deployment,可以看到有module这种概念。

例如Statefulset中有kind、有 spec,共2个module:

具体来看一下 kind中包含的模块,kind支持Deployment、DaemonSet、StatefulSet、Job、CronJob等。

按照模块化的方式来抽象和拆解,认知记忆这些元素就会容易很多。

如下图,可以左右对比一下StatefulSet与Deployment:两边都有 kind、 spec( spec部分有一些区别,如图),其他如 selector还有 template的部分都是一样的。


 二者重点的区别主要集中于更新策略(strategy)部分,如下图:

【StatefulSet】

【Deployment】

我们可以进一步对template部分做一下拆分和抽象:

以上就是我们对k8s resource的理解和记忆小窍门,可以采用模块化、抽象化的方式,认知共性,找出区别,方便大家的学习和使用。

  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接