第13章 OCI サポートおよび 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 は、コンテナーイメージを格納するだけでなく、コンテナーの管理を支援するツールのエコシステム全体をサポートするプライベートコンテナーレジストリーです。Red Hat Quay 3.6 での OCI ベースのアーティファクトのサポートは、Helm のみから拡張され、デフォルトで cosign および ztsd 圧縮スキームが含まれるようになりました。そのため、FEATURE_HELM_OCI_SUPPORT
は非推奨になりました。
OpenShift Operator を使用して Red Hat Quay 3.6 をデプロイすると、FEATURE_GENERAL_OCI_SUPPORT
設定で Helm および OCI アーティファクトのサポートがデフォルトで有効になります。機能を明示的に有効にする必要がある場合 (機能が無効にされている場合や、デフォルトで有効にされていないバージョンからアップグレードした場合など) は、OCI および Helm サポートの明示的な有効化 セクションを参照してください。
13.1. Helm および OCI の前提条件
信頼される証明書: Helm クライアントと Quay 間の通信は HTTPS 経由で行われ、Helm 3.5 の時点では、サポートは信頼される証明書を使用して HTTPS で通信するレジストリーについてのみ利用できます。さらに、オペレーティングシステムはレジストリーで公開される証明書を信頼する必要があります。今後の Helm リリースでのサポートにより、リモートレジストリーとの非セキュアな通信が可能になります。これを念頭に置いて、オペレーティングシステムが Quay で使用される証明書を信頼するように設定されていることを確認します。以下はその例です。
$ sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/ $ sudo update-ca-trust extract
- 一般提供: Helm 3.8 の時点で、チャートの OCI レジストリーサポートが一般提供されています。
Helm クライアントをインストールする: Helm リリース ページから目的のバージョンをダウンロードします。これを展開し、helm バイナリーをその必要な宛先に移動します。
$ tar -zxvf helm-v3.8.2-linux-amd64.tar.gz $ mv linux-amd64/helm /usr/local/bin/helm
-
Quay での組織の作成: Quay レジストリー UI を使用し、Helm チャートを保存するために新しい組織を作成します。たとえば、
helm
という名前の組織を作成します。