第 1 章 Pod 规格的变化
Kubernetes 中的 pod 是最小的计算单元,由单一主机上的一个或多个容器共享网络和存储组成。Red Hat Ansible Automation Platform 使用默认的 pod 规格,该规格可通过用户定义的 YAML 或 JSON 文档进行自定义。
1.1. 简介 复制链接链接已复制到粘贴板!
pod 的 Kubernetes 概念是共同部署在同一主机上的一个或多个容器,也是可被定义、部署和管理的最小计算单元。
Pod 等同于一个容器的虚拟机实例(物理或虚拟)。每个 pod 分配有自己的内部 IP 地址,因此拥有完整的端口空间,并且 pod 内的容器可以共享其本地存储和网络。
Pod 具有生命周期。它们经过定义,然后分配到某一节点上运行,然后运行它们,直到容器退出或它们因为其他原因被删除为止。根据策略和退出代码,Pod 可在退出后删除,或被保留下来以启用对容器日志的访问。
Red Hat Ansible Automation Platform 提供了一个简单的默认 pod 规格,但您可以提供一个自定义 YAML 或 JSON 文档来覆盖默认的 pod 规格。此自定义文档使用自定义字段,如 ImagePullSecrets
,它们可以被序列化为有效的 Pod JSON 或 YAML。
可在 Openshift Online 文档中找到完整的选项列表。
提供长时间运行的服务的 pod 示例
这个示例展示了 pod 的许多特性,其中大多数已在其他主题中阐述,因此这里仅简略提及:
标签 | 描述 |
---|---|
|
pod 可以被“标上”一个或多个标签,然后使用这些标签在一个操作中选择和管理多组 pod。标签以 key:value 格式存储在 metadata 散列中。本例中的一个标签是 |
|
Pod 在其命名空间内需要具有唯一名称。一个 pod 定义可以使用 |
|
|
| 环境变量将必要的值传递给每个容器。 |
| pod 中的每个容器使用自己的 Docker 格式的容器镜像进行安装。 |
| 容器可以绑定到 pod IP 上提供的端口。 |
| 指定 pod 时,您可以选择性地描述容器需要的每个资源量。要指定的最常见资源是 CPU 和内存 (RAM)。其他资源可用。 |
| OpenShift Online 为容器定义了一个安全上下文,用于指定是否允许其作为特权容器运行,作为所选用户运行,等等。默认上下文的限制性比较强,但管理员可以根据需要进行更改。 |
| 容器指定外部存储卷应当挂载到容器内的什么位置上。在本例中,一个卷用于存储 registry 的数据,另一个卷则提供凭证的访问途径,registry 需要这些凭证来向 OpenShift Online API 发出请求。 |
|
一个 pod 可以包含一个或多个容器,这些容器必须从某些 registry 中拉取。如果容器来自需要身份验证的 registry,您可以提供一个 |
|
pod 重启策略,可能的值有 |
|
Pod 对 OpenShift Online API 发出请求是一种比较常见的模式,它有一个 |
| pod 定义了可供其容器使用的存储卷。在本例中,它提供了一个用于存储 registry 的临时卷,以及一个包含服务帐户凭证的 secret 卷。 |
您可以使用自动化控制器在基于 Kubernetes 的集群中运行作业的 pod,并在自动化控制器 UI 中编辑 pod 规格。用于创建运行作业的 pod 的 pod 规格,采用 YAML 格式。有关编辑 pod 规格的更多信息,请参阅自定义 pod 规格。