Menu Close
9.2.4. イメージの短縮名を許可するレジストリーの追加
image.config.openshift.io/cluster
カスタムリソース (CR) を編集して、イメージの短縮名を検索するためにレジストリーを追加できます。OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。
イメージの短縮名を使用して、プル仕様に完全修飾ドメイン名を追加せずに、イメージを検索できます。たとえば、registry.access.redhat.com/rhe7/etcd
の代わりに rhel7/etcd
を使用できます。
完全パスを使用することが実際的ではない場合に、短縮名を使用できる場合があります。たとえば、クラスターが DNS が頻繁に変更される複数の内部レジストリーを参照する場合、毎回の変更ごとにプル仕様の完全修飾ドメイン名を更新する必要が生じる可能性があります。この場合は、イメージの短縮名を使用した方が良いでしょう。
イメージをプルまたはプッシュする場合、コンテナーランタイムは image.config.openshift.io/cluster
CR の registrySources
パラメーターの下に一覧表示されるレジストリーを検索します。短縮名を使用してイメージをプル際に、containerRuntimeSearchRegistries
パラメーターでレジストリーの一覧を作成している場合、コンテナーランタイムはそれらのレジストリーを検索します。
パブリックレジストリーでイメージの短縮名を使用することは推奨されません。内部レジストリーまたはプライベートレジストリーでのみイメージの短縮名を使用する必要があります。
containerRuntimeSearchRegistries
パラメーターにパブリックレジストリーを一覧表示する場合、一覧のすべてのレジストリーを公開することになり、ネットワークおよびレジストリーの攻撃にされされるリスクが生じます。パブリックレジストリーでは常に完全修飾イメージ名を使用する必要があります。
Machine Config Operator (MCO) は、image.config.openshift.io/cluster
リソースでレジストリーへの変更の有無を監視します。MCO が変更を検出すると、これはノードをドレイン (解放) し、その変更を適用してノードの遮断を解除します。ノードが Ready
状態に戻った後に、containerRuntimeSearchRegistries
パラメーターが追加されると、MCO は一覧表示されるレジストリーで各ノードの /etc/containers/registries.conf.d
ディレクトリーにファイルを作成します。このファイルは、/host/etc/containers/registries.conf
ファイルの非修飾検索レジストリーのデフォルト一覧を上書きします。修飾されていない検索レジストリーのデフォルト一覧にフォールバックする方法はありません。
containerRuntimeSearchRegistries
パラメーターは、Podman および CRI-O コンテナーエンジンを使用する場合のみ機能します。一覧のレジストリーは、ビルドおよびイメージストリームではなく、Pod 仕様でのみ使用できます。
手順
image.config.openshift.io/cluster
カスタムリソースを編集します。$ oc edit image.config.openshift.io/cluster
以下は、
image.config.openshift.io/cluster
CR の例になります。apiVersion: config.openshift.io/v1 kind: Image metadata: annotations: release.openshift.io/create-only: "true" creationTimestamp: "2019-05-17T13:44:26Z" generation: 1 name: cluster resourceVersion: "8302" selfLink: /apis/config.openshift.io/v1/images/cluster uid: e34555da-78a9-11e9-b92b-06d6c7da38dc spec: allowedRegistriesForImport: - domainName: quay.io insecure: false additionalTrustedCA: name: myconfigmap registrySources: containerRuntimeSearchRegistries: 1 - reg1.io - reg2.io - reg3.io allowedRegistries: 2 - example.com - quay.io - registry.redhat.io - reg1.io - reg2.io - reg3.io - image-registry.openshift-image-registry.svc:5000 ... status: internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
注記allowedRegistries
パラメーターが定義されると、明示的に一覧表示されない限り、registry.redhat.io
レジストリーとquay.io
レジストリー、およびデフォルトの内部イメージレジストリーを含むすべてのレジストリーがブロックされます。このパラメーターを使用する場合は、Pod の失敗を防ぐために、registry.redhat.io
レジストリーとquay.io
レジストリー、およびinternalRegistryHostname
を含むすべてのレジストリーをallowedRegistries
一覧に追加します。これらは、お使いの環境内のペイロードイメージで必要とされます。非接続クラスターの場合、ミラーレジストリーも追加する必要があります。レジストリーが追加されていることを確認するには、ノードが
Ready
状態に戻ったときに、ノードで以下のコマンドを使用します。$ cat /host/etc/containers/registries.conf.d/01-image-searchRegistries.conf
出力例
unqualified-search-registries = ['reg1.io', 'reg2.io', 'reg3.io']