第 12 章 使用 Podman 将容器传送到 OpenShift
您可以使用 YAML ("YAML Ain't Markup Language")格式生成容器和 pod 的可移植性描述。YAML 是一种用于描述配置数据的文本格式。
YAML 文件为:
- 可读。
- 易于生成。
- 可在环境间移植(例如,RHEL 和 OpenShift 之间)。
- 可移植编程语言。
- 方便使用(不需要在命令行中添加所有参数)。
使用 YAML 文件的原因:
- 您可以使用最小输入来重新运行本地编配的容器和 pod,这对于迭代开发非常有用。
-
您可以在另一台机器上运行相同的容器和 pod。例如,要在 OpenShift 环境中运行应用程序并确保应用程序正常工作。您可以使用
podman generate kube
命令来生成 Kubernetes YAML 文件。然后,在将生成的 YAML 文件传送到 Kubernetes 或 OpenShift 环境之前,您可以使用podman play
命令来测试本地系统上 pod 和容器的创建情况。使用podman play
命令,您还可以重新创建最初在 OpenShift 或 Kubernetes 环境中创建的 pod 和容器。
注意
podman kube play
命令支持 Kubernetes YAML 功能的子集。如需更多信息,请参阅 支持的 YAML 字段的支持矩阵。
12.1. 使用 Podman 生成 Kubernetes YAML 文件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以创建一个带有一个容器的 pod,并使用 podman generate kube
命令生成 Kubernetes YAML 文件。
先决条件
-
container-tools
元数据包已安装。 - pod 已创建。详情请参阅 创建 pod 一节。
流程
列出与其关联的所有 pod 和容器:
podman ps -a --pod
$ podman ps -a --pod CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES POD 5df5c48fea87 registry.access.redhat.com/ubi10/ubi:latest /bin/bash Less than a second ago Up Less than a second ago myubi 223df6b390b4 3afdcd93de3e k8s.gcr.io/pause:3.1 Less than a second ago Up Less than a second ago 223df6b390b4-infra 223df6b390b4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 pod 名称或 ID 来生成 Kubernetes YAML 文件:
podman generate kube mypod > mypod.yaml
$ podman generate kube mypod > mypod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,
podman generate
命令不反映任何可能附加到容器的逻辑卷管理器(LVM)逻辑卷或物理卷。显示
mypod.yaml
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow