Q&Aでわかる Red Hat Universal Base Image でどこまでやっていい?

Red Hat Universal Base ImageについてのFAQをまとめた資料です

GENERAL Distribution Q&A でわかる Red Hat Universal Base Image で どこまでやっていい ? 1 2020 年 1 月 21 日 レッドハット株式会社 森若 和雄 そもそも UBI とは…… ? UNIVERSAL BASE IMAGE UBI 登場までの課題 RHEL base image 汎用目的で利用できる RHEL のコンテナイメージ。 RHEL と同じエンタープライズ契約 (EA) でカバーされ、 RHEL や OpenShift 上で利用すると基盤とともにサポー トできる。 他の人にコンテナイメージを配布したい EA 契約で第三者への配布が制限されているので直接の配 布は不可。コンテナイメージを Red Hat に一旦預ければ OK(Red Hat Container Catalog) だが独自に配布したい ケースではこのポリシーは受け入れにくい。 3 CentOS 等を base image に使えばいいのか ? 契約上の問題はないものの、当然 Red Hat はサポートで ない。 UNIVERSAL BASE IMAGE Universal Base Image によるソフトウェア流通 再配布可能なコンテナイメージ RHEL7 および 8 のサブセットで、 無償で入手・改変・再配布が可能 なコンテナイメージと rpm パッ ケージ群 Red Hat 基盤ではサポート対象 RHEL または OpenShift 上で利用 する場合は UBI もサポート対象 ソフトウェア配布に ソフトウェアをコンテナイメージ で配布する場合のベースイメージ として最適 GENERAL Distribution UBI を入手するには Red Hat Container Catalog から https://catalog.redhat.com/software/containers/explore Provider に Red Hat, Inc. Product に Red Hat Universal Base Image と指定して検索 5 GENERAL Distribution Container Catalog の 各イメージのページ ● 各ツールでの入手方法 ● podman ● docker ● openshift ● イメージの更新日などの メタデータ ● 関係するドキュメントや 環境変数 ● 既知の脆弱性などに もとづく Health index 6 UBI の基本的な Q & A 7 Q. UBI は何のためにあるの ? RHEL をベースにした ISV 製品の配布をスムーズにする ために作られました ISV 製品入り コンテナイメージを 自由に配布できる Red Hat のコンテナ 環境ならサポート可 App 非 Red Hat 環境では サポートは不可だが 利用は OK App App UBI UBI UBI RHEL or OpenShift CentOS, Fedora, etc. Q. UBI は何のためにあるの ?( 続 ) UBI は RHEL コンテナベースイメージも兼ねています RHEL のパッケージを含むと再配布は不可なので要注意 社内用 RHEL コンテナイメージを 作成するベースに App RHEL rpm UBI Red Hat のコンテナ 環境ならごく普通に 購入 & サポート可 App RHEL rpm 非 Red Hat のコンテナ 環境ではサポートは不可だが 要サブスクリプション App RHEL rpm UBI UBI RHEL or OpenShift CentOS, Fedora, etc. Q. UBI の想定利用シーンは ? ● ● RHEL 上で UBI をベースにして ISV 製品を入れ てビルド、第三者へ配布 イメージを受けとって実行する人は任意の環境 で実行できる – RHEL or OpenShift であればサポートされて嬉しい – その他の環境でも別に害はない Q. UBI はどういう契約で提供されるの ? ● End User License Agreement(EULA) です。 – – RHEL など通常の製品は EULA と Enterprise Agreement の 2 本の契約が行われます。 再配布する場合イメージ内に EULA をそのまま維持す る必要があります。 https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI Q. UBI と RHEL のパッケージは同じ ? この質問は 2 通りの解釈ができるので両方回答します…… ● ● UBI と RHEL に含まれているパッケージのセットは異なります ( ほとんど全てのサーバや kernel は UBI に含まれません ) UBI と RHELリポジトリに同じ名前の rpm パッケージが存在 する場合、署名を含め完全に同じファイルです。差はありませ ん。 Q. UBI と同じイメージを自分で リビルドできる ? ● UBI 構築時の Dockerfile は公開されていますが 社内のビルドシステムで作られたイメージから 派生しているので自分でリビルドはできません 費用、再配布、サポート可否の Q&A Q. UBI を RHEL or OpenShift 上で使っていい ? ● 当然 OK! ● UBI 部分もサポート対象になります App UBI RHEL or OpenShift Q. UBI を public cloud 各社の managed OpenShift 上にもっていっていい ? ● 当然 OK! ● UBI 部分もサポート対象になります App UBI managed OpenShift public cloud (IaaS) Q. UBI を public cloud 各社の (Red Hat 製品では ない ) managed k8s 上にもっていっていい ? ● 使うのは OK! ● サポートはできません App UBI managed k8s public cloud (IaaS) Q. UBI を CentOS 等の上で使っていい ? ● 使うのは OK! ● サポートはできません App UBI CentOS Q. UBI に CentOS 等のパッケージを入れていい ? ● ● ● 入れる行為自体は OK 。ただし RHEL or OpenShift 上 でもサポートできなくなります。 ソフトウェア配布のために必要なパッケージがあれば bugzilla へリクエストしよう。 必要なら RHEL のパッケージを入れよう。 ( その場合については次のページ ) App CentOS rpm UBI Q. UBI に RHEL のパッケージを入れていい ? ● ● OK! ただし RHEL のパッケージを 1 つでも入れる と、 RHEL の制限が適用されるので第三者に配 布できません。通常の RHEL のバイナリと同様 に扱う必要があります。 App RHEL rpm UBI Q. UBI に RHEL パッケージを入れて CentOS 等の上で使っていい ? ● ● 使うこと自体は OK サポートはできませんが RHEL のサブス クリプション費用が必要です。そのため 現実的には無意味な組み合わせです。 $$$ App RHEL rpm UBI CentOS Q. UBI に RHEL パッケージを入れて public cloud の managed k8s 上で使っていい ? ● ● 使うことは禁止されていませんが…… RHELサブスクリプションをいくつ買 えばいいのかなどは決まっていないので Red Hat の担当営業にご相談ください。 ( ほとんどの場合現実的な話には なりません。 ) $$$ $$$ $$$ App RHEL rpm UBI managed k8s public cloud (IaaS) UBI をコンテナイメージとして使う場合のまとめ RHEL or OpenShift 基盤 non Red Hat 基盤 UBI + 自作ソフトウェア サポート○ 追加費用なし○ 再配布可能○ サポート不可 × 追加費用なし○ 再配布可能○ UBI + RHEL パッケージ サポート○ 追加費用なし○ 再配布不可 × サポート不可 × 追加費用あり × 再配布不可 × UBI + CentOS パッケージ サポート不可 × 追加費用なし○ 再配布可能○ サポート不可 × 追加費用なし○ 再配布可能○ その他の Q&A Q. 「 ISV 製品の配布」の “ ISV” って 何か契約とか要るの ? ● ● 要りません。 Red Hat には ISV を含む「テクノロジーパート ナー」の制度がありますが、 UBI を使ったり UBI をベースとし たイメージを再配布するだけであれば無関係です テクノロジーパートナーになると自社製品を Red Hat のコンテ ナカタログに掲載できるなどの特典があるので、 UBI の利用に 必須ではありませんがそれはそれでご検討ください :-) 詳しくはこちら→ https://connect.redhat.com/ Q. UBI に含まれる rpm パッケージだけを 再配布していい ? ● OK! ● EULA を添付する必要がある点に注意。 Q. UBI に OpenJDK のベースイメージはないの ? ( 将来は登場するかもしれませんが ) 今のところありません ● ● DockerHub にある ubi8/openjdk は Red Hat と無関係の第 三者によるものです。 openjdk/openjdk-8-rhel8 などは OpenShift の一部です。 UBI の一部ではありません。 Q. RHEL のパッケージを混在させない方法 ● ● RHEL 上で UBI を利用すると、デフォルトではホストの subscriptionmanager での登録状況を引き継ぎます。 – ホストが登録されていれば yumRHEL パッケージを利用します。 – UBI は RHEL の base image を兼ねているため、意図された動作です。 第三者配布用のコンテナイメージ作成時には、 yum の実行時に ” --disableplugin=subscription-manager” とオプションをつけることで RHEL のパッケージが混在しないよう制限します。 – ホスト側で subscription-manager unregister とかしてもいいですが、ホスト の状態に依存しないでビルドできるので Dockerfile 等を修正する方が安全 Thank You!