7

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

 2 years ago
source link: https://my.oschina.net/u/5173391/blog/5371259
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

up-b36f49416c499a34f9c5fbc5c85c3de31d5.png

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

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

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

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

up-8b0a0578ea6ad8b33bd6b8bb350af4552b0.png

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

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

up-7cb2f1a2bb6e6b2fea4109b6488438d4a70.png

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

up-872ba7ce12f6e854a411c0e21b064e8d20e.png

up-a1e752e4721f65e8bb2351972fe356d82f9.png

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

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

up-3c45738c2fc9726019b51a5b915200afcf6.png

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

【StatefulSet】

up-d3fb839b81a9c95ecab09b0ded329fcf3d2.png

【Deployment】

up-8b296d236b32f4ecbf3226b41635698864f.png

up-7363d5f200cd2c2365fd9b30c19a39905b5.png

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

up-3080f5df0c2353669af2c388f6aabd3ca5a.png

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK