第13章 Open Container Initiative のサポートと Red Hat Quay
Red Hat Quay などのコンテナーレジストリーは、当初は Docker イメージ形式でコンテナーイメージをサポートするように設計されています。Docker 以外で追加のランタイムの使用をプロモートするために、コンテナーランタイムとイメージ形式に関連する標準化を提供するために Open Container Initiative (OCI) が作成されました。ほとんどのコンテナーレジストリーは、Docker イメージマニフェスト V2、Schema 2 形式をベースとして OCI 標準化をサポートします。
コンテナーイメージのほかにも、個別のアプリケーションだけでなく、Kubernetes プラットフォームを全体としてサポートする各種のアーティファクトが新たに出現しました。これらは、アプリケーションのデプロイメントを支援するセキュリティーおよびガバナンスの Open Policy Agent (OPA) ポリシーから Helm チャートおよび Operator に及びます。
Red Hat Quay は、コンテナーイメージを格納するだけでなく、コンテナーの管理を支援するツールのエコシステム全体をサポートするプライベートコンテナーレジストリーです。バージョン 3.6 より前の Red Hat Quay は、Kubernetes の de facto パッケージマネージャーとみなされている Helm のみをサポートしていました。
Helm は、アプリケーションのパッケージ化とデプロイの方法を簡素化します。Helm は、アプリケーションを表す Kubernetes リソースが含まれる Chart というパッケージ形式を使用します。Chart は、リポジトリーでの一般的なディストリビューションや消費用に利用できます。Helm リポジトリーは、index.yaml メタデータファイルと、オプションでパッケージ化されたチャートのセットを提供する HTTP サーバーです。Helm バージョン 3 以降、従来のリポジトリーの代わりとして OCI レジストリーでチャートを提供するためのサポートが利用できるようになりました。
Helm サポートの強化として、Red Hat Quay はバージョン 3.6 から OCI ベースのアーティファクトのサポートを導入し、cosign、ZStandard 圧縮スキーム、およびその他の OCI メディアタイプのサポートを組み込みました。Helm およびその他の OCI アーティファクトのサポートは、FEATURE_GENERAL_OCI_SUPPORT 設定フィールドでデフォルトで有効になり、ALLOWED_OCI_ARTIFACT_TYPES および IGNORE_UNKNOWN_MEDIATYPES フィールドを使用して他のアーティファクトタイプに拡張できます。
FEATURE_GENERAL_OCI_SUPPORT、ALLOWED_OCI_ARTIFACT_TYPES および IGNORE_UNKNOWN_MEDIATYPES が追加されたため、FEATURE_HELM_OCI_SUPPORT 設定フィールドは非推奨になりました。この設定フィールドはサポートされなくなり、Red Hat Quay の将来のバージョンでは削除される予定です。
13.1. Helm および OCI の前提条件
Helm およびその他の Open Container Initiative (OCI) アーティファクトタイプを有効にする前に、次の前提条件を満たす必要があります。
13.1.1. Helm のインストール
Helm クライアントをインストールするには、次の手順を使用します。
手順
- Helm リリース ページから Helm の最新バージョンをダウンロードします。
次のコマンドを入力して Helm バイナリーを解凍します。
$ tar -zxvf helm-v3.8.2-linux-amd64.tar.gz
Helm バイナリーを目的の場所に移動します。
$ mv linux-amd64/helm /usr/local/bin/helm
Helm のインストールの詳細は、Helm のインストール ドキュメントを参照してください。
13.1.2. Helm 3.8 へのアップグレード
OCI レジストリーチャートをサポートするには、Helm が少なくとも 3.8 にアップグレードされている必要があります。すでに Helm をダウンロードしていて、Helm 3.8 にアップグレードする必要がある場合は、Helm アップグレード のドキュメントを参照してください。
13.1.3. Red Hat Quay で使用される SSL/TLS 証明書をシステムが信頼できるようにする
Helm クライアントと Red Hat Quay の間の通信は、HTTPS 経由で促進されます。Helm 3.5 では、信頼できる証明書を使用して HTTPS 経由で通信するレジストリーのみがサポートされています。さらに、オペレーティングシステムはレジストリーで公開される証明書を信頼する必要があります。Red Hat Quay で使用される証明書を信頼するようにオペレーティングシステムが設定されていることを確認する必要があります。システムがカスタム証明書を信頼できるようにするには、次の手順を実行します。
手順
次のコマンドを入力して、
rootCA.pemファイルを/etc/pki/ca-trust/source/anchors/フォルダーにコピーします。$ sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/
次のコマンドを入力して、CA トラストストアを更新します。
$ sudo update-ca-trust extract
13.1.4. Red Hat Quay での Helm の組織の作成
Helm クライアントをダウンロードした後、Helm チャートを保存するための新しい組織を Red Hat Quay に作成することを推奨します。Red Hat Quay UI を使用して新しい組織を作成するには、次の手順を実行します。
手順
- Red Hat Quay デプロイメントにログインします。
- Create New Organization をクリックします。
- 組織の名前を入力します (例: helm)。次に、Create Organization をクリックします。