1.API对象
API对象是k8s集群的管理操作单元(例如pod,statefulset等作为k8s的对象,都有对应的API对象),因此,每当k8s新增一个新的对象或者功能的时候,都要为其生成对应的API对象。
每个API对象中都有三个属性:metadata,spec,status
- metadata:每个api对象的标识,metadata中都包含name,namespace,uid三个元素;同时还可在metadata中添加label标签来标识该对象
- spec:api对象预期达到的状态,用户可以通过配置spec,来表明想要该api对象达到哪个状态;例如,副本控制器spec中的副本数填3,那么该api对象就会往副本数为3的目标努力
- status:该api对象目前达到的状态
k8s中都是声明式的命令,会通过设置spec里的值,来要求该api对象达到的最终状态,而不是通过+1的方式来修改api对象的状态;这种方式的好处在于能够保持k8s系统的稳定性,例如设置副本数为 3 的操作运行多次也还是一个结果,而给副本数加 1 的操作就不是声明式的,运行多次结果就错了。