3.1 资源对象及API群组

REST是Representational State Transfer的缩写,意为“表征状态转移”,它是一种程序架构风格,基本元素为资源(resource)、表征(representation)和行为(action)。资源即对象,一个资源通常意味着一个附带类型和关联数据、支持的操作方法以及与其它对象的关系的对象,它们是持有状态的事物,即REST中的S(State)。REST组件通过使用“表征”来捕获资源的当前或预期的状态并在组件之间传输该表征从而对资源执行操作。表征是一个字节序列,由数据、描述数据的元数据以及偶尔描述元数据的元数据组成(通常用于验证消息的完整性),表征还有一些其他常用但不太精确的名称,如文档、文件和HTTP消息实体等。表征的数据格式被称为媒体类型(media type),常用的有JSON或XML。API客户端不能直接访问资源,它们需要执行“动作”(action)来改变资源的状态,于是资源的状态从一种形态“转移”(Transfer)为另一种形式。

资源可以分组为集合(collection),每个集合值包含单一类型的资源,并且各资源间是无序的,当然资源可以不属于任何集合,它们称为单体资源。事实上,集合本身也是资源,它可以部署与全局级别,位于API的顶层,也可以包含与某个资源中,表现为“子集合”。集合、资源、子集合及子资源间的关系如图3-1所示。

集合、资源和子资源
图 1.5.1 - 集合、资源和子资源

Kubernetes 系统将一切事物都抽象为API资源,其遵循REST架构风格组织并管理这些资源及对象,同时还支持通过标准的HTTP方法(POST、PUT、PATCH、DELETE和GET)对资源进行增、删、改、查等管理操作。不过,在Kubernetes系统的语境中,“资源”用于表示“对象”的集合,例如,Pod资源可用于描述所有Pod类型的对象,但本书将不加区别地使用资源、对象和资源对象,并将它们统统理解为资源类型生成的示例——对象。

results matching ""

    No results matching ""