第 2 章 Image [image.openshift.io/v1]
- 描述
镜像是容器镜像和元数据在时间点上的不可变表示。镜像通过获取其内容的哈希值(元数据和内容),格式、内容或元数据的任何更改都会生成新名称。images 资源主要供集群管理员使用,并像集群镜像 registry - 最终用户一样集成,而是通过 imagestreamtag 或 imagestreamimages 资源访问镜像。虽然镜像元数据存储在 API 中,但实施容器镜像 registry API 的任何集成都必须为原始清单数据、镜像配置和层内容提供自己的存储。
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
对象
2.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| DockerImageConfig 是一个 JSON blob,运行时用于设置容器。这是清单模式 v2 的一部分。当镜像代表清单列表时,不会设置。 |
|
| dockerImageLayers 代表镜像中的层。如果镜像没有定义这些数据,或者镜像代表清单列表,则可能无法设置。 |
|
| ImageLayer 代表镜像的一个层。有些镜像可能有多个层。有些可能没有。 |
|
| DockerImageManifest 是清单的原始 JSON |
|
| DockerImageManifestMediaType 指定清单的 mediaType。这是清单模式 v2 的一部分。 |
|
| 当镜像代表清单列表时,dockerImageManifests 包含有关子清单的信息。当此字段存在时,不应指定 DockerImageLayers。 |
|
| ImageManifest 代表清单列表的子清单。Digest 字段指向常规镜像对象。 |
| dockerImageMetadata 包含有关此镜像的元数据 | |
|
| dockerImageMetadataVersion 会传递对象版本,如果为空默认为 "1.0" |
|
| dockerImageReference 是可用于拉取此镜像的字符串。 |
|
| DockerImageSignatures 提供签名作为不透明 Blob。这是清单 schema v1 的一部分。 |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| metadata 是标准对象的元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 签名包含镜像的所有签名。 |
|
| ImageSignature 包含镜像的签名。只要签名被信任,它就可以验证镜像身份和其他声明。根据此信息,可以将可运行的镜像限制为匹配的集群范围策略。执行镜像验证的客户端应解析必填字段。其他则由服务器从签名的内容解析。它们只是一个信息性目的。 兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。 |
2.1.1. .dockerImageLayers
- 描述
- dockerImageLayers 代表镜像中的层。如果镜像没有定义这些数据,或者镜像代表清单列表,则可能无法设置。
- 类型
-
array
2.1.2. .dockerImageLayers[]
- 描述
- ImageLayer 代表镜像的一个层。有些镜像可能有多个层。有些可能没有。
- 类型
-
object
- 必填
-
name
-
size
-
mediaType
-
属性 | 类型 | 描述 |
---|---|---|
|
| 所引用对象的 MediaType。 |
|
| 由底层存储定义的层名称。 |
|
| 底层大小(以字节为单位)由底层存储定义。 |
2.1.3. .dockerImageManifests
- 描述
- 当镜像代表清单列表时,dockerImageManifests 包含有关子清单的信息。当此字段存在时,不应指定 DockerImageLayers。
- 类型
-
数组
2.1.4. .dockerImageManifests[]
- 描述
- ImageManifest 代表清单列表的子清单。Digest 字段指向常规镜像对象。
- 类型
-
object
- 必填
-
摘要
-
mediaType
-
manifestSize
-
架构
-
os
-
属性 | 类型 | 描述 |
---|---|---|
|
|
Architecture 指定支持的 CPU 架构,如 |
|
| 摘要是清单的唯一标识符。它指的是 Image 对象。 |
|
| ManifestSize 代表原始对象内容的大小,以字节为单位。 |
|
| MediaType 定义清单的类型,可能的值是 application/vnd.oci.image.manifest.v1+json、application/vnd.docker.distribution.manifest.v2+json 或 application/vnd.docker.distribution.manifest.v1+json。 |
|
|
OS 指定操作系统,例如 |
|
| variant 是一个可选字段,它是一个 CPU 变体,如 v6 来指定 ARM CPU 的特定 CPU 变体。 |
2.1.5. .signatures
- 描述
- 签名包含镜像的所有签名。
- 类型
-
array
2.1.6. .signatures[]
- 描述
ImageSignature 包含镜像的签名。只要签名被信任,它就可以验证镜像身份和其他声明。根据此信息,可以将可运行的镜像限制为匹配的集群范围策略。执行镜像验证的客户端应解析必填字段。其他则由服务器从签名的内容解析。它们只是一个信息性目的。
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
type
-
content
-
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| 条件代表签名当前状态的最新可用影响。 |
|
| SignatureCondition 描述了特定探测时特定 kind 的镜像签名条件。 |
|
| 必需:不透明的二进制字符串,它是镜像的签名。 |
| 如果指定,这是签名创建的时间。 | |
|
| 代表镜像身份的人类可读字符串。它可以是产品名称和版本,也可以是镜像拉取 spec (如 "registry.access.redhat.com/rhel7/rhel:7.2")。 |
|
| SignatureIssuer 包含有关签名证书或密钥的签发者的信息。 |
|
| 签名使用者包含有关创建签名的个人或实体的信息。 |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| metadata 是标准对象的元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 包含来自签名的声明。 |
|
| 必需:描述存储的 blob 类型。 |
2.1.7. .signatures[].conditions
- 描述
- 条件代表签名当前状态的最新可用影响。
- 类型
-
array
2.1.8. .signatures[].conditions[]
- 描述
- SignatureCondition 描述了特定探测时特定 kind 的镜像签名条件。
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| 检查条件最后一次的时间。 | |
| 条件从一个状态传输到另一个状态最后一次的时间。 | |
|
| 人类可读的消息,指示最后一次转换的详细信息。 |
|
| (brief)条件最后一次转换的原因。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 签名条件的类型,完成或失败。 |
2.1.9. .signatures[].issuedBy
- 描述
- SignatureIssuer 包含有关签名证书或密钥的签发者的信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 通用名称(如 openshift-signing-service)。 |
|
| 机构名称。 |
2.1.10. .signatures[].issuedTo
- 描述
- 签名使用者包含有关创建签名的个人或实体的信息。
- 类型
-
object
- 必填
-
publicKeyID
-
属性 | 类型 | 描述 |
---|---|---|
|
| 通用名称(如 openshift-signing-service)。 |
|
| 机构名称。 |
|
| 如果存在,它是属于用于验证镜像签名的主题的公共密钥的人类可读密钥 ID。它应该至少包含 64 位公钥的指纹(例如 0x685ebe62bf278440)。 |