9.4. イメージの短縮名を許可するレジストリーの追加について
イメージの短縮名を使用すると、pull spec パラメーターに完全修飾ドメイン名を追加せずに、イメージを検索できます。
たとえば、registry.access.redhat.com/rhe7/etcd の代わりに rhel7/etcd を使用できます。image.config.openshift.io/cluster カスタムリソース (CR) を編集して、イメージの短縮名を検索するためにレジストリーを追加できます。
完全パスを使用することが実際的ではない場合に、短縮名を使用できる場合があります。たとえば、クラスターが DNS が頻繁に変更される複数の内部レジストリーを参照する場合、毎回の変更ごとにプル仕様の完全修飾ドメイン名を更新する必要が生じます。この場合は、イメージの短縮名を使用した方が良いでしょう。
イメージをプルまたはプッシュする場合、コンテナーランタイムは image.config.openshift.io/cluster CR の registrySources パラメーターの下にリスト表示されるレジストリーを検索します。短縮名を使用してイメージをプル際に、containerRuntimeSearchRegistries パラメーターでレジストリーのリストを作成している場合、コンテナーランタイムはそれらのレジストリーを検索します。
9.4.1. イメージの短縮名を使用しない場合 リンクのコピーリンクがクリップボードにコピーされました!
公開レジストリーで認証が必要な場合、イメージがデプロイされない可能性があるため、公開レジストリーでイメージの短縮名を使用することは推奨しません。公開レジストリーで完全修飾イメージ名を使用します。
通常、Red Hat の内部レジストリーまたはプライベートレジストリーは、イメージの短縮名の使用をサポートしています。
各パブリックレジストリーが異なる認証情報を必要とし、クラスターでグローバルプルシークレットにパブリックレジストリーがリストされない場合には、containerRuntimeSearchRegistries パラメーターの下に複数のパブリックレジストリーをリストできません。
認証が必要なパブリックレジストリーの場合、レジストリーの認証情報がグローバルプルシークレットに格納されている場合にのみ、イメージの短縮名を使用できます。
containerRuntimeSearchRegistries パラメーター (registry.redhat.io、docker.io、および quay.io レジストリーを含む) にパブリックレジストリーをリスト表示する場合、認証情報はリスト上のすべてのレジストリーに公開され、ネットワークおよびレジストリーの攻撃にされされるリスクが生じます。イメージをプルするためのプルシークレットは 1 つしかないため、グローバルプルシークレットで定義されているように、そのシークレットは、そのリスト内のすべてのレジストリーに対して認証するために使用されます。したがって、リストにパブリックレジストリーを含めると、セキュリティーリスクが発生します。
9.4.2. イメージの短縮名を許可するレジストリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
image.config.openshift.io/cluster カスタムリソース (CR) を編集して、イメージの短縮名を検索するためにレジストリーを追加できます。OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。
allowedRegistries パラメーターを定義すると、明示的に一覧表示されない限り、registry.redhat.io、quay.io、およびデフォルトの OpenShift イメージレジストリーを含むすべてのレジストリーがブロックされます。ペイロードイメージが必要とするすべてのレジストリーを allowedRegistries 一覧に追加する必要があります。たとえば、registry.redhat.io、quay.io、および internalRegistryHostname レジストリーを一覧表示します。非接続クラスターの場合、ミラーレジストリーも追加する必要があります。そうしないと、Pod の障害が伴います。
手順
image.config.openshift.io/clusterカスタムリソースを編集します。oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、
image.config.openshift.io/clusterCR の例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ノードの一覧を取得します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27b
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行し、ノード上でデバッグモードに入ります。
oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトが表示されたら、ターミナルに
chroot /hostを入力します。chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、レジストリーがポリシーファイルに追加されていることを確認します。
cat /etc/containers/registries.conf.d/01-image-searchRegistries.conf
sh-5.1# cat /etc/containers/registries.conf.d/01-image-searchRegistries.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
unqualified-search-registries = ['reg1.io', 'reg2.io', 'reg3.io']
unqualified-search-registries = ['reg1.io', 'reg2.io', 'reg3.io']Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4.3. イメージレジストリーアクセス用の追加トラストストアの設定 リンクのコピーリンクがクリップボードにコピーされました!
image.config.openshift.io/cluster カスタムリソース(CR)へのイメージレジストリーアクセス時に信頼される追加の認証局(CA)を持つ設定マップへの参照を追加できます。
前提条件
- 認証局(CA)は PEM でエンコードされている必要があります。
手順
openshift-confignamespace に設定マップを作成し、image.config.openshift.ioCR のAdditionalTrustedCAパラメーターで設定マップ名を使用します。これにより、クラスターが外部イメージレジストリーと通信する際に信頼される必要のある CA が追加されます。イメージレジストリー CA の config map の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
data:registry.example.com:- この CA が信頼されるレジストリーのホスト名の例。
data:registry-with-port.example.com..5000:この CA が信頼されるポートを持つレジストリーのホスト名の例。レジストリーに
registry-with-port.example.com:5000 などのポートがある場合、は:..に置き換える必要があります。PEM 証明書の内容は、信頼する追加のレジストリー CA の値です。
任意。次のコマンドを実行して、追加の CA を設定します。
oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-config
$ oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc edit image.config.openshift.io cluster
$ oc edit image.config.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec: additionalTrustedCA: name: registry-configspec: additionalTrustedCA: name: registry-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow