【雲端技能包】k8s 知識- 模組化方式認識Statefulset和Deployment

語言: CN / TW / HK

在學習乾貨前,客官請留步——【“雲”住民生存訓練營--玩轉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中有kindspec共2個module:

具體來看一下 kind中包含的模組,kind支援Deployment、DaemonSet、StatefulSet、Job、CronJob等。

按照模組化的方式來抽象和拆解,認知記憶這些元素就會容易很多

如下圖,可以左右對比一下StatefulSet與Deployment:兩邊都有 kind spec spec部分有一些區別,如圖)其他如 selector還有 template的部分都是一樣的


 二者重點的區別主要集中於更新策略strategy部分,如下圖:

StatefulSet

Deployment

我們可以進一步對template部分做一下拆分和抽象:

以上就是我們對k8s resource的理解和記憶小竅門,可以採用模組化抽象化的方式,認知共性找出區別,方便大家的學習和使用。