第12章 Podman を使用した OpenShift へのコンテナーの移植
YAML ("YAML Ain’t Markup Language") 形式を使用して、コンテナーおよび Pod の移植可能な記述を生成できます。YAML は、設定データの記述に使用されるテキスト形式です。
YAML ファイルは以下のとおりです。
- 読み取り可能
- 生成が簡単
- 環境間の移植性 (RHEL と OpenShift の間など)
- プログラミング言語間で移植が可能
- 使いやすい (全パラメーターをコマンドラインに追加する必要はない)。
YAML ファイルを使用する理由:
- 必要最小限の入力でオーケストレーションされたコンテナーおよび Pod のローカルオーケストレーションセットを再実行でき、反復型開発に役立ちます。
-
同じコンテナーおよび Pod を別のマシンで実行できます。たとえば、OpenShift 環境でアプリケーションを実行し、アプリケーションが正常に機能していることを確認します。
podman generate kube
コマンドを使用して、Kubernetes YAML ファイルを生成できます。次に、podman play
コマンドを使用して、生成された YAML ファイルを Kubernetes または OpenShift 環境に転送する前に、ローカルシステムで Pod およびコンテナーの作成をテストできます。podman play
コマンドを使用して、OpenShift または Kubernetes 環境で最初に作成された Pod およびコンテナーを再作成することもできます。
podman kube play
コマンドは、Kubernetes YAML 機能のサブセットをサポートします。詳細は、サポートされる YAML フィールドのサポートマトリックス を参照してください。
12.1. Podman を使用した Kubernetes YAML ファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
1 つのコンテナーで 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