RHEL 8.4 Beta と Podman v3

Red Hatでソリューションアーキテクトをしている田中司恩です。RHEL 8.4 Betaが公開され、ようやくRHEL上でPodman v3が使用可能になりました。今回はRHEL 8.4 BetaとPodman v3の新機能についてご紹介します。

RHEL 8.4 Beta

Red Hat Enterprise Linux(RHEL)の最新版 RHEL 8.4のベータ版が公開され利用可能になりました(↓ブログ記事)。

www.redhat.com

RHEL 8.4 Betaを使用するには有効なサブスクリプションを保有している他にも方法があります。 Red Hat Developer Program への参加もその一つで、RHEL Betaが使用可能です。まだアカウントをお持ちでない場合はこの機会に登録してみてください。Red Hat Developer Programについては下記記事に解説があります。

rheb.hatenablog.com

RHEL 8.4 Betaの入手

下記のページの「GET STARTED」を押すとRed Hat IDでのログイン画面に遷移します。

access.redhat.com

ログインが完了すると下記のような表示が出て、Red Hat IDに紐づくメールアドレスにメールが届けば準備完了です。

RHEL Betaのリクエスト完了
RHEL Betaのリクエスト完了

あとはRed Hat Customer Portalのダウンロードページより、Red Hat Enterprise Linux for x86_64 Beta を選択してイメージを入手してください。

Red Hat Customer PortalよりRHEL Betaを入手
Red Hat Customer PortalよりRHEL Betaを入手

RHEL 8.4 Beta ドキュメント

8.4 Beta としてすでにドキュメントも公開されています(英語版のみ)。

Product Documentation for Red Hat Enterprise Linux 8 | Red Hat Customer Portal

追加機能や変更点はリリースノートにまとまっていますので、詳細はそちらをご確認ください。

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/8.4_release_notes/index

container-tools:3.0 モジュールストリームの追加

いろいろ新機能の追加はあるのですが、個人的なイチオシはこれ、container-tools:3.0の追加です!これによりRHEL上でPodman v3をパッケージで導入して使用可能になったことは大きいです。さらにリリースノートの一番最後にあるあたり、ラスボス感があってとても良いです。

リリースノート:container-tools:3.0 についての記載
リリースノート:container-tools:3.0 についての記載

RHEL 8.4 Betaに追加された container-tools:3.0 のSummary

# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.4 Beta (Ootpa)
# dnf module info container-tools:3.0 |grep Summary
Summary          : Stable versions of podman 3.0, buildah 1.19, skopeo 1.2, runc, conmon, etc as well as dependencies such as container-selinux built and tested together, and supported as documented on the Application Stream lifecycle page.

container-toolsのモジュールリスト

# dnf module list container-tools
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
Name            Stream       Profiles Summary
container-tools rhel8 [d][e] common [ Most recent (rolling) versions of podman, buildah, skopeo, runc, conmon, runc, conmon, CRIU, Udica, etc as well as dependencies such as container-selinux built and te
                             d]       sted together, and updated as frequently as every 12 weeks.
container-tools 1.0          common [ Stable versions of podman 1.0, buildah 1.5, skopeo 0.1, runc, conmon, CRIU, Udica, etc as well as dependencies such as container-selinux built and tested together, an
                             d]       d supported for 24 months.
container-tools 2.0          common [ Stable versions of podman 1.6, buildah 1.11, skopeo 0.1, runc, conmon, etc as well as dependencies such as container-selinux built and tested together, and supported
                             d]       as documented on the Application Stream lifecycle page.
container-tools 3.0          common [ Stable versions of podman 3.0, buildah 1.19, skopeo 1.2, runc, conmon, etc as well as dependencies such as container-selinux built and tested together, and supported
                             d]       as documented on the Application Stream lifecycle page.

なお、container-tools:1.0は非推奨となりますのでご注意ください( リリースノートの7.15に記載があります)。

Podman v3

PodmanのOSSコミュニティでは先行して開発が進んでいて、CentOS StreamやFedoraではすでにPodman v3が使用可能でした。

github.com

なお、最新版はv3.1.0となっておりGitHubで公開されています(2021/4/2、時点)。

Release v3.1.0 · containers/podman · GitHub

RHEL 8.4 Beta、CentOS Stream 8、Fedora 33、それぞれの現時点でパッケージで導入できるPodmanのバージョンは下記の通りです。(2021/4/2、時点)

RHEL 8.4

# podman version
Version:      3.0.2-dev
API Version:  3.0.0
Go Version:   go1.15.7
Built:        Wed Mar  3 00:10:06 2021
OS/Arch:      linux/amd64

CentOS Stream 8

# podman version
Version:      3.1.0-dev
API Version:  3.1.0-dev
Go Version:   go1.16.1
Built:        Sat Mar 27 03:32:03 2021
OS/Arch:      linux/amd64

Fedora 33

# podman version
Version:      3.0.1
API Version:  3.0.0
Go Version:   go1.15.8
Built:        Sat Feb 20 01:56:17 2021
OS/Arch:      linux/amd64

なお、Fedoraについてはupdates-testingリポジトリを有効にすることによりv3.1.0の導入が可能です。

# dnf update --refresh --enablerepo=updates-testing podman
# podman version
Version:      3.1.0
API Version:  3.1.0
Go Version:   go1.15.8
Built:        Tue Mar 30 22:30:36 2021
OS/Arch:      linux/amd64

開発版のバージョンのPodmanの導入方法ついてはPodmanの公式サイトで紹介されています。下記ページを参考にしてください。ソースからビルドする方法についても紹介されています。

Redirect to Podman Docs

docker-composeのサポート

Podman v3は多くの機能が追加され現在も開発が継続中ですが、個人的なイチオシ機能はdoker-composeのサポートです。 これによりdockerをインストールすることなく、Podmanとdocker-composeを組み合わせることが可能となりました。

www.redhat.com

「Podmanでdocker-composeが使えない」ということでPodmanの使用を見送っていた方にはぜひ試して頂きたい新機能です。なお、podman-composeというPodmanを使用してdocker-compose.ymlを実行するスクリプトがありますが、podman-composeは3rdのプロジェクトであり、Podman v3におけるdocker-composeのサポートとは別物です。Podman v3におけるdocker-composのサポートはDocker互換のインターフェースとしてREST APIがサポートされたことにより実現しています。

この機能についてはまた別記事で詳細な解説をしたいと思います。 (参考:AWXをPodman + docker-composeで起動するテストは成功しています。 こちらを参照→AWX on Podman

cockpit-podman

RHELのWeb管理コンソールcockpitを使ってPodmanをGUIで操作、管理することができます。RHEL 8.4の新機能というわけではないですが、Podman v3でも利用可能です。 cockpitのアドオン機能のcockpit-podmanを有効にすることで使用可能となります(RHEL 8.1以降)。

cockpit-podmanの画面
cockpit-podmanの画面

GUI上ではコンテナーの起動停止だけでなく、コンテナーイメージの取得、削除もできます。

cockpit-podman上でコンテナーイメージの取得
cockpit-podman上でコンテナーイメージの取得

cockpit-podmanは以前からあった機能ですが、個人的にもあまり使ってなかったのでCLIと併用して使っていきたいと思います。

まとめ

RHEL 8.4 Betaが公開されましたので合わせて使用可能になったPodman v3についてご紹介しました。RHEL 8.4から正式にPodman v3が搭載されますのでこの機会にいち早くRHEL 8.4とPodman v3に触れてみてはいかがでしょうか。

さらに、記事内で紹介したdocker-composeのサポートは実は奥が深い可能性を秘めています。PodmanはPodman Podとして実行するためのKubernetes YAMLファイルに書き出しに対応しているので、docker-composeのコンテナをPodman Pod、Kubernetes/OpenShiftへと移行するパスが出来上がります。 このように単なるコンテナー実行ツールではないPodmanは要注目です。docker-composeサポートの詳細についてはまた別記事にて紹介いたしますのでお楽しみに。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。