第10章 Open Container Initiative のサポート

コンテナーレジストリーは、当初 Docker イメージ形式のコンテナーイメージをサポートするように設計されていました。Docker 以外で追加のランタイムの使用をプロモートするために、コンテナーランタイムとイメージ形式に関連する標準化を提供するために Open Container Initiative (OCI) が作成されました。ほとんどのコンテナーレジストリーは、Docker イメージマニフェスト V2、Schema 2 形式をベースとして OCI 標準化をサポートします。

コンテナーイメージのほかにも、個別のアプリケーションだけでなく、Kubernetes プラットフォームを全体としてサポートする各種のアーティファクトが新たに出現しました。これらは、アプリケーションのデプロイメントを支援するセキュリティーおよびガバナンスの Open Policy Agent (OPA) ポリシーから Helm チャートおよび Operator に及びます。

Red Hat Quay は、コンテナーイメージを格納するだけでなく、コンテナーの管理を支援するツールのエコシステム全体もサポートするプライベートコンテナーレジストリーです。Red Hat Quay は、OCI 1.0 Image and Distribution specifications と可能な限り互換性を保つよう努めており、Helm チャート (OCI をサポートする Helm のバージョンを使用してプッシュされている場合に限る) などの一般的なメディアタイプや、コンテナーイメージのマニフェストまたはレイヤーコンポーネント内部のさまざまな任意のメディアタイプをサポートしています。このような新しいメディアタイプのサポートが、以前の Red Hat Quay のバージョンと異なる点です。以前のバージョンでは、受け入れるメディアタイプについてより厳しい制限がレジストリーに設けられていました。Red Hat Quay は、以前はサポート範囲外だったメディアタイプも含め、より幅広いメディアタイプに対応できるようになりました。そのため、標準のコンテナーイメージ形式だけでなく、新しいタイプや従来とは異なるタイプにも対応できるようになり、より多用途になりました。

新しいメディアタイプへのサポート拡張に加えて、Red Hat Quay は、V2_2 および V2_1 形式を含む Docker イメージとの互換性を確保しています。このような Docker V2_2 および V2_1 イメージとの互換性は、Docker ユーザーにシームレスなエクスペリエンスを提供するという Red Hat Quay の取り組みを表すものです。さらに、Red Hat Quay は、引き続き Docker V1 プルのサポートを拡張し、このような以前のバージョンの Docker イメージを現在も利用している可能性のあるユーザーに対応します。

OCI アーティファクトのサポートはデフォルトで有効になっています。以前は、OCI メディアタイプは FEATURE_GENERAL_OCI_SUPPORT 設定フィールドで有効にされていました。

注記

すべての OCI メディアタイプがデフォルトで有効になったため、FEATURE_GENERAL_OCI_SUPPORTALLOWED_OCI_ARTIFACT_TYPES、および IGNORE_UNKNOWN_MEDIATYPES を使用する必要がなくなりました。

さらに、FEATURE_HELM_OCI_SUPPORT 設定フィールドが非推奨になりました。この設定フィールドはサポートされなくなり、Red Hat Quay の将来のバージョンでは削除される予定です。

10.1. Helm および OCI の前提条件

Helm は、アプリケーションのパッケージ化とデプロイの方法を簡素化します。Helm は、アプリケーションを表す Kubernetes リソースが含まれる チャート というパッケージ形式を使用します。Red Hat Quay は、OCI でサポートされているバージョンの Helm チャートをサポートします。

次の手順に従って、Helm およびその他の OCI メディアタイプを使用するようにシステムを事前設定します。

10.1.1. Helm のインストール

Helm クライアントをインストールするには、次の手順を実行します。

手順

  1. Helm リリース ページから Helm の最新バージョンをダウンロードします。
  2. 次のコマンドを入力して Helm バイナリーを解凍します。

    $ tar -zxvf helm-v3.8.2-linux-amd64.tar.gz
  3. Helm バイナリーを目的の場所に移動します。

    $ mv linux-amd64/helm /usr/local/bin/helm

Helm のインストールの詳細は、Helm のインストール ドキュメントを参照してください。

10.1.2. Helm 3.8 へのアップグレード

OCI レジストリーチャートをサポートするには、Helm が少なくとも 3.8 にアップグレードされている必要があります。すでに Helm をダウンロードしていて、Helm 3.8 にアップグレードする必要がある場合は、Helm アップグレード のドキュメントを参照してください。

10.1.3. Red Hat Quay で使用される SSL/TLS 証明書をシステムが信頼できるようにする

Helm クライアントと Red Hat Quay の間の通信は、HTTPS 経由で促進されます。Helm 3.5 では、信頼できる証明書を使用して HTTPS 経由で通信するレジストリーのみがサポートされています。さらに、オペレーティングシステムはレジストリーで公開される証明書を信頼する必要があります。Red Hat Quay で使用される証明書を信頼するようにオペレーティングシステムが設定されていることを確認する必要があります。システムがカスタム証明書を信頼できるようにするには、次の手順を実行します。

手順

  1. 次のコマンドを入力して、rootCA.pem ファイルを /etc/pki/ca-trust/source/anchors/ フォルダーにコピーします。

    $ sudo cp rootCA.pem   /etc/pki/ca-trust/source/anchors/
  2. 次のコマンドを入力して、CA トラストストアを更新します。

    $ sudo update-ca-trust extract