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.iodocker.io、および quay.io レジストリーを含む) にパブリックレジストリーをリスト表示する場合、認証情報はリスト上のすべてのレジストリーに公開され、ネットワークおよびレジストリーの攻撃にされされるリスクが生じます。イメージをプルするためのプルシークレットは 1 つしかないため、グローバルプルシークレットで定義されているように、そのシークレットは、そのリスト内のすべてのレジストリーに対して認証するために使用されます。したがって、リストにパブリックレジストリーを含めると、セキュリティーリスクが発生します。

9.4.2. イメージの短縮名を許可するレジストリーの追加

image.config.openshift.io/cluster カスタムリソース (CR) を編集して、イメージの短縮名を検索するためにレジストリーを追加できます。OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。

警告

allowedRegistries パラメーターを定義すると、明示的に一覧表示されない限り、registry.redhat.ioquay.io、およびデフォルトの OpenShift イメージレジストリーを含むすべてのレジストリーがブロックされます。ペイロードイメージが必要とするすべてのレジストリーを allowedRegistries 一覧に追加する必要があります。たとえば、registry.redhat.ioquay.io、および internalRegistryHostname レジストリーを一覧表示します。非接続クラスターの場合、ミラーレジストリーも追加する必要があります。そうしないと、Pod の障害が伴います。

手順

  • image.config.openshift.io/cluster カスタムリソースを編集します。

    $ oc edit image.config.openshift.io/cluster
    Copy to Clipboard Toggle word wrap

    以下は、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:
        - reg1.io
        - reg2.io
        - reg3.io
        allowedRegistries:
        - 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
    Copy to Clipboard Toggle word wrap
    1. 次のコマンドを実行して、ノードの一覧を取得します。

      $ oc get nodes
      Copy to Clipboard Toggle word wrap

      出力例

      NAME                STATUS   ROLES                  AGE   VERSION
      <node_name>         Ready    control-plane,master   37m   v1.27.8+4fab27b
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行し、ノード上でデバッグモードに入ります。

      $ oc debug node/<node_name>
      Copy to Clipboard Toggle word wrap
    3. プロンプトが表示されたら、ターミナルに chroot /host を入力します。

      sh-4.4# chroot /host
      Copy to Clipboard Toggle word wrap

検証

  1. 次のコマンドを実行して、レジストリーがポリシーファイルに追加されていることを確認します。

    sh-5.1# cat /etc/containers/registries.conf.d/01-image-searchRegistries.conf
    Copy to Clipboard Toggle word wrap

    出力例

    unqualified-search-registries = ['reg1.io', 'reg2.io', 'reg3.io']
    Copy to Clipboard Toggle word wrap

9.4.3. イメージレジストリーアクセス用の追加トラストストアの設定

image.config.openshift.io/cluster カスタムリソース(CR)へのイメージレジストリーアクセス時に信頼される追加の認証局(CA)を持つ設定マップへの参照を追加できます。

前提条件

  • 認証局(CA)は PEM でエンコードされている必要があります。

手順

  1. openshift-config namespace に設定マップを作成し、image.config.openshift.io CR の AdditionalTrustedCA パラメーターで設定マップ名を使用します。これにより、クラスターが外部イメージレジストリーと通信する際に信頼される必要のある CA が追加されます。

    イメージレジストリー CA の config map の例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-registry-ca
    data:
      registry.example.com: |
        -----BEGIN CERTIFICATE-----
        ...
        -----END CERTIFICATE-----
      registry-with-port.example.com..5000: |
        -----BEGIN CERTIFICATE-----
        ...
        -----END CERTIFICATE-----
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    data:registry.example.com:
    この CA が信頼されるレジストリーのホスト名の例。
    data:registry-with-port.example.com..5000:

    この CA が信頼されるポートを持つレジストリーのホスト名の例。レジストリーに registry-with-port.example.com:5000 などのポートがある場合、: .. に置き換える必要があります。

    PEM 証明書の内容は、信頼する追加のレジストリー CA の値です。

  2. 任意。次のコマンドを実行して、追加の CA を設定します。

    $ oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-config
    Copy to Clipboard Toggle word wrap
    $ oc edit image.config.openshift.io cluster
    Copy to Clipboard Toggle word wrap
    spec:
      additionalTrustedCA:
        name: registry-config
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat