ログイン / 登録 アカウント

Red Hat Enterprise Linux (RHEL) 8.3 のリリースで、コンテナに関する多くの機能が新しく追加されました。これは RHEL 8.2 の機能 (Red Hat Enterprise Linux 8.2 で新規追加されたコンテナ機能) を発展させたものであり、RHEL 7 ユーザーにとっては最新バージョンにアップグレードする大きな理由となるはずです。

要点を簡単に説明すると次のとおりです。

  • 新しいコンテナツールのトレーニング

  • container-tools:rhel8 の fast moving ストリームへの更新

  • Docker と互換性のあるエンドポイントを持つ新しい REST Application Programming Interface (API) を備えた Podman 2.0

  • 安定性が向上し、ログイン/ログアウト機能が付いた Skopeo 1.X

  • Buildah と Skopeo のイメージが一般公開 (GA) となり、サポート対象に

  • Podman コンテナイメージがテクノロジープレビューとして利用可能に

  • 新しいアプリケーションコンテナのイメージ

  • podman manifest コマンドのサポート

コンテナツール Fast ストリーム (container-tools:rhel8) への更新

RHEL 8.3 の container-tools:rhel8 ストリームでは、Podman 2.0.5、Buildah 1.15.1、Skopeo 1.1.1 のバージョンをそれぞれ利用できます。

RHEL 8.2 以降の興味深い新機能について、こちらに簡単にまとめました。

  • ルートレスの Podman を --userns=keep-id で実行した場合、Podman を実行したユーザーに関するエントリが /etc/passwd に追加されるようになりました。

  • podman system connection コマンドが複数の接続をサポートするように改修され、再び使用できるようになりました。

  • Podman で、リモートの Podman API インスタンスへの接続を示すグローバルフラグ --connection が使えるようになりました。

  • podman search コマンドで、ワイルドカードを使用した検索ができるようになりました。

  • podman play kube コマンドで pull タイプに IfNotPresent を使用できるようになりました。

  • REST API と Podman システムサービスは実験段階を終了し、実用できるようになりました。

  • Podman コマンドで --remote フラッグを使用し、REST API 経由でリモート接続できるようになりました。

  • Podman リモートクライアントは全体的に作り直され、Varlink ではなく新しい REST API を使用するようになりました。

  • ポッドに対して podman generate systemd コマンドを使用する際に、--new フラグを使用してポッド向けの可搬サービスを作成できるようになりました。

  • Buildah:コンテナに VFS 追加イメージストアを追加できるようになりました

  • Buildah:containers.conf の統合が強化されました

Podman 2.0

これは Podman の新しいメジャーバージョンです。まず、「メジャーバージョン」とは何かを確認しましょう。Podman は、Semantic Versioning (SemVer) と呼ばれるものを使用しています。詳しい説明は semver.org サイトに譲り、ここでは簡単に概要だけ説明します。SemVer では、すべてのプログラムに「MAJOR.MINOR.PATCH」という形式でバージョン番号を付けます。たとえば、RHEL 8.3 では Podman 2.0.5 をリリースしました。それぞれの番号に関する、semver.org の説明は次のとおりです。

  1. MAJOR:互換性のない変更を API に加えた

  2. MINOR:後方互換性を保ちつつ機能を追加した

  3. PATCH:後方互換性を保ちつつバグを修正した

Podman のメジャーバージョン番号が上がったのは、varlink ベースの API を、Podman 2.0 (Docker 互換性レイヤーはバージョン 1.40) をターゲットとする新しい REST API と置き換えたためです。この新しい REST API は、プログラムを使用して Podman を操作する際の推奨手段です。varlink ベースのインタフェースはサポート終了となり、以後拡張が行われることはありません。また、Podman 3.0 では削除されることになっています。

この REST インタフェースは、Docker デーモンを使用する RHEL 7 ユーザーがより簡単に RHEL 8 および Podman にアップグレードできるようにするための、最後のパズルピースです。RHEL 8 を最初にリリースしたその日から、Podman はさまざまな重要な面で Docker デーモンとの互換性を持っていました。Podman は同じイメージ、同じランタイム (runc) を使用し、同じレジストリサーバーと通信できます。Docker のコマンドライン・インタフェース (CLI) に慣れているユーザーがなじみやすい CLI も備えています。 

  • イメージ形式:互換

  • レジストリ形式:互換

  • ランタイム形式:互換

  • CLI:互換

  • API:2.0 で互換

この新しい Podman 2.0 REST API は、互換性に関するこの最後の点に対処するためのものです。この API により、Docker API を使用するコードを RHEL 8 でも使用できるようになります。Podman チームにとっては大変な作業でしたが、この成果には極めて満足しています。

詳しく知りたい方は、次の記事やドキュメントをご覧ください。

Buildah と Skopeo のコンテナイメージ

ソフトウェアをコンテナイメージとしてパッケージ化すると、他のクリエーターは消費の方に集中して作業を始めることができます (Life in The Container - When it comes to code, be a consumer)。これは、アプリケーションの依存関係や、アプリケーションの作成に使用するツールにも当てはまります。摩擦を軽減し、可能なあらゆるユースケースで Open Container Initiative (OCI) 準拠のツールを実現するために、Red Hat は、Buildah、Skopeo、Podman などのコンテナツールのコンテナ化バージョンの開発に取り組んでいます。

RHEL 8.3 のリリースに伴い、Podman のコンテナイメージと、一般提供 (GA) 版 Buildah および Skopeo のイメージのテクノロジープレビューを提供しています。これらのイメージをご利用になり、フィードバックをお寄せください。その目標は、コンテナをすでに実行している任意の場所で、他のアプリケーションを構築するために使用できるコンテナ化アプリケーションを一式提供することです。

新しいアプリケーションコンテナのイメージ

RHEL 8.3 では多くのコンテナイメージの更新バージョンをリリースしているため、アプリケーションの構築に役立つはずです。詳細については、Red Hat エコシステム・カタログのリリースノートおよび RHEL 8 の製品ページ をご覧ください。

Red Hat Universal Base Image (UBI) 8 の製品ページ

RHEL 8 の製品ページ

  • GCC Toolset/Perftools 10

  • Grafana

  • PCP

podman manifest コマンドのサポート

x86、ARM、POWER、Z のいずれにインストールされていても、RHEL 8 で podman run -it ubi8 コマンドを実行できます。この極めてシンプルなコマンドで、物理アーキテクチャごとに異なるコンテナイメージを利用できます。各コンテナイメージのバイナリはそれぞれのアーキテクチャ向けにコンパイルされたものになります。x86 向けバイナリが ARM プロセッサーに対して実行されたり、その逆のことが起こったりすることはありません。どのアーキテクチャでも同一のコマンドを使えるようにするためには、Red Hat は複数のコンテナイメージを同じコンテナリポジトリに格納する必要があります。RHEL 8 のイメージの場合、これはサポート対象アーキテクチャ (x86、ARM、POWER、Z) ごとに 1 つ、計 4 種類のイメージがすべてのリポジトリ (たとえば registry.access.redhat.com/ubi8/ubi など) に格納されていることになります。

この新しい podman manifest サブコマンドにより、これらのマルチアーキテクチャ・リポジトリを使用するのに必要なメタデータを操作できます。このメタデータは、OCI 用語ではイメージインデックス、Docker 用語ではマニフェストリストと呼ばれていますが、基本的にはリポジトリで利用できるアーキテクチャ (x86、ARM、POWER、Z) に関する必須情報を Podman や Docker などのコンテナエンジンに提供する JSON メタデータです。

RHEL 8.3 の Podman 最新リリースでは、マルチアーキテクチャ・イメージ (複数アーキテクチャ向けイメージ) を作成してリモートサーバーに push するための基礎的ツールが提供されます。これらの機能は、高度なコンテナイメージを構築するお客様に便利に使っていただけると考えています。

ローカルマニフェスト作成の一例:

podman manifest create localhost/list

その検証:

podman manifest inspect localhost/list

出力:

{  "schemaVersion": 2,  "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",  "manifests": null }

RHEL のコンテナツールで Linux スキルをレベルアップ

業界でのコンテナの重要性が急速に高まりつつある今、Red Hat では Linux コアコース中の 2 コースを 1 日延長し、コンテナを学べるように変更しました。2020 年 10 月 1 日より、Red Hat システム管理 Ⅱ (RH134) と RHCSA 速習コース (RH199) が 4 日間から 5 日間に延長され、最終日はユーザーが Kubernetes や Red Hat OpenShift を使えるようコンテナに焦点を当てます。

RH134 と RH199 を受講する学習者は、RHEL コンテナツールを使って単一の RHEL サーバー上でサービスをコンテナとして取得、実行、管理できます。 

OpenShift は RHEL の信頼できる基盤の上に構築されており、お客様の信用と期待に応えられるレベルのセキュリティ機能、安定性、エコシステムを提供しています。Linux を企業に広めたように、Red Hat は Kubernetes にも同じように取り組んでいます。コンテナは基本的に Linux の技術であるため、Red Hat ならコンテナと Kubernetes のスキルアップに最適な道のりを提供することが可能です。

Linux コースのこの変更により、Red Hat 認定システム管理者試験 (EX200) にもコンテナに関する設問が含まれるようになりました。この新しい試験内容は、受験者が実際のコンテナアプリケーションで実践的な経験を積むことができるようにしたもので、試験時間は 30 分間延長されます。

Red Hat Enterprise Linux 7 に基づく EX200 においては、これらの変更による影響はありません。試験内容は、Red Hat Enterprise Linux 8 に基づく RH199、RH134、EX200 でのみ変更されています。Red Hat システム管理 I (RH124) にはコンテナは含まれませんが、RHEL 8.2 に対応する内容に更新されています。

トレーニングや認定で行われたこれらの更新についての詳細は、ブログ記事レベルアップのページをご覧ください。

まとめ

コンテナイメージに含まれるものであれ、コンテナホスト上で実行されているものであれ、Red Hat のコンテナはすべて RHEL から始まります。最新バージョンである RHEL 8.3 は、OpenShift やそれに連なる各種ソリューションの基盤となる各種機能を提供します。

製品ドキュメントリリースノートEcosystem Catalog にある新しい UBI イメージなど、当社が提供するすべての新機能をぜひご覧ください。


About the author

Scott McCarty is technical product manager for the container subsystem team, which enables key product capabilities in OpenShift Container Platform and Red Hat Enterprise Linux. Focus areas includes container runtimes, tools, and images. Working closely with engineering teams, at both a product and upstream project level, he combines personal experience with customer and partner feedback to enhance and tailor strategic container features and capabilities.