在学习干货前,客官请留步——
【“云”住民生存训练营--玩转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的理解和记忆小窍门,可以采用模块化、抽象化的方式,认知共性,找出区别,方便大家的学习和使用。