3.2.3 spec 和 status 字段

Kubernetes 用 spec 来描述所期望的对象应该具有的状态,而用 status 字段来记录对象在系统上的当前状态,因此 status 字段仅对活动对象才有意义。这两个字段都属于嵌套类型的字段。在定义资源配置清单时,spec是必须定义的字段,用于描述对象的目标状态,即用户期望对象需要表现出来的特征。status字段则记录了对象的当前状态(或实际状态),此字段值由 Kubernete 系统负责填充或更新,用户不能手动进行定义。Master 的 controller-manager 通过相应的控制器组件动态管理并确保对象的实际状态匹配用户所期望的状态,他是一种调和(reconsiliation)配置系统。

例如,Deployment 是一种用于描述集群中运行的应用的对象,因此,创建 Deployment 类型的对象时,需要为目标 Deployment 对象设定 spec,指定期望需要运行的pod副本数量、使用的标签选择器以及pod模板等。Kubernetets 系统读取待创建的 Deployment 对象的量、使用的标签选择器以及Pod模板等。Kubernetes系统读取待创建的Deployment对象的spec以及系统上相应的活动对象的当前状态,必要时进行对象更新以确保status字段吻合spec字段中期望的状态。如果这其中任一实例出现了问题(status字段发生了变化),那么Kubernetes系统则需要及时对spec和status字段的差异做出响应,例如,补足缺失的Pod副本数目等。

spec字段嵌套的字段对于不同的对象类型来说各不相同,具体需要参照Kubernetes API参考手册中的说明分别进行获取,核心资源对象的常用配置字段将会再本书后面的章节中进行讲解。

results matching ""

    No results matching ""