14.4. podman generated systemd コマンドではなく Quadlet を使用する利点
通常の systemd
ユニットファイルと同様の形式でコンテナーを実行する方法を記述する Quadlets ツールを使用できます。
Quadlet は、Podman v4.6 以降で利用可能です。
Quadlet には、podman generated systemd
コマンドを使用してユニットファイルを生成する場合に比べて、次のような多くの利点があります。
-
メンテナンスが簡単: コンテナーの記述は、関連するコンテナーの詳細を中心に行うため、
systemd
でのコンテナー実行に関する技術的詳細を意識せずに済みます。 -
自動更新: Quadlet では、更新後にユニットファイルを手動で再生成する必要はありません。Podman の新しいバージョンがリリースされた場合、起動時などに
systemclt daemon-reload
コマンドを実行すると、サービスが自動的に更新されます。 - シンプルなワークフロー: 簡素化された構文のおかげで、Quadlet ファイルをゼロから作成して、どこにでもデプロイできます。
- 標準の systemd オプションのサポート: Quadlet は、既存の systemd-unit 構文を新しいテーブル (コンテナーを設定するテーブルなど) で拡張します。
Quadlet は Kubernetes YAML 機能のサブセットをサポートします。詳細は、サポートされる YAML フィールドのサポートマトリックス を参照してください。次のツールのいずれかを使用して YAML ファイルを生成できます。
-
Podman:
podman generate kube
コマンド -
OpenShift:
oc generated
コマンドと--dry-run
オプション -
Kubernetes:
kubectl create
コマンドと--dry-run
オプション
Quadlet は次のユニットファイルタイプをサポートします。
コンテナーユニット:
podman run
コマンドを実行してコンテナーを管理するために使用します。-
ファイル拡張子:
.container
-
セクション名:
[Container]
-
必須フィールド: サービスによって実行されるコンテナーイメージを記述する
Image
-
ファイル拡張子:
Kube ユニット:
podman kube play
コマンドを実行して、Kubernetes YAML ファイルで定義したコンテナーを管理するために使用します。-
ファイル拡張子:
.kube
-
セクション名:
[Kube]
-
必須フィールド: Kubernetes YAML ファイルへのパスを定義する
Yaml
-
ファイル拡張子:
ネットワークユニット:
.container
または.kube
ファイルで参照できる Podman ネットワークを作成するために使用します。-
ファイル拡張子:
.network
-
セクション名:
[Network]
- 必須フィールド: なし
-
ファイル拡張子:
ボリュームユニット:
.container
ファイルで参照できる Podman ボリュームを作成するために使用します。-
ファイル拡張子:
.volume
-
セクション名:
[Volume]
- 必須フィールド: なし
-
ファイル拡張子: