为了系统的阐述声明式 和 命令式,我们需要了解状态机,从当前状态S 到目标状态 S'''。需要经过若干个中间状态。每个状态转化都需要执行若干个动作。
所谓的命令式,就是逐步执行各种动作Command,每步动作后,观察动作后的状态,然后用户再根据状态执行后续对应的动作,以此类推,达到最终状态。
而声明式,则是通过内部的controller自动调整状态变化,用户只需要提交一个最终Desired State,剩下的操作交给controller去协调,以此达到最终状态。controller通常先进行diff操作,发现状态差异,然后直接补齐状态。
除此之外,当系统发生变化后,譬如某台机器宕机了,发生了状态飘逸,对于命令式,必须人为介入,查看当前状态,然后执行对应的动作。而声明式,则会一直处于死循环协调状态,不断保持目标状态和当前状态的一致。
对应k8s 来说,如果我们在副本数为3的时候,controller manger便会在后台一直协调,通过不断检查容器当前副本数和目标副本数,保证容器副本数一致,发生Pod丢失,则会创建对应个数的Pod。
页面更新:2024-04-25
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号