第14章 Podman を使用した OpenShift へのコンテナーの移植
OpenShift または Kubernetes にデプロイするため、ローカルコンテナーの移植可能な YAML 記述を生成します。この機能を使用すると、Podman を使用してローカル環境で開発し、グローバルにデプロイできます。
YAML ファイルを使用して以下を実行できます。
- 必要最小限の入力で、ローカル環境にオーケストレーションされた一連のコンテナーや Pod を実行できます。これは、反復型開発に役立ちます。
- 別のマシンで同じコンテナーと Pod を実行します。
podman kube play コマンドは、Kubernetes YAML 機能のサブセットをサポートします。詳細は、システム上の podman-kube-play(1) man ページを参照してください。
14.1. Podman を使用した Kubernetes YAML ファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
1 つのコンテナーで Pod を作成し、podman generate kube コマンドを使用して Kubernetes YAML ファイルを生成できます。
前提条件
-
container-toolsメタパッケージがインストールされている。 - Pod が作成されている。詳細は、Pod の作成 セクションを参照してください。
手順
関連付けられている全 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 223df6b390b4Pod 名または ID を使用して Kubernetes YAML ファイルを生成します。
$ podman generate kube mypod > mypod.yamlpodman generateコマンドは、コンテナーに接続されている論理ボリュームマネージャー (LVM) の論理ボリュームまたは物理ボリュームを反映しません。mypod.yamlファイルを表示します。$ cat mypod.yaml # Generation of Kubernetes YAML is still under development! # # Save the output of this file and use kubectl create -f to import # it into Kubernetes. # # Created with podman-1.6.4 apiVersion: v1 kind: Pod metadata: creationTimestamp: "2020-06-09T10:31:56Z" labels: app: mypod name: mypod spec: containers: - command: - /bin/bash env: - name: PATH value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - name: TERM value: xterm - name: HOSTNAME - name: container value: oci image: registry.access.redhat.com/ubi10/ubi:latest name: myubi resources: {} securityContext: allowPrivilegeEscalation: true capabilities: {} privileged: false readOnlyRootFilesystem: false tty: true workingDir: / status: {}