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