9.3. イメージレジストリーの設定


image.config.openshift.io/cluster カスタムリソース (CR) を編集してイメージレジストリーの設定を行うことができます。

手順

  1. 以下のコマンドを実行して image.config.openshift.io/cluster CR を編集します。

    $ 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:
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - image-registry.openshift-image-registry.svc:5000
        - reg1.io/myrepo/myapp:latest
        insecureRegistries:
        - insecure.com
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap
    注記

    allowedRegistriesblockedRegistries または insecureRegistries パラメーターを使用する場合、レジストリー内に個別のリポジトリーを指定できます。例: reg1.io/myrepo/myapp:latest

    起こりうるセキュリティーリスクを軽減するために、非セキュアな外部レジストリーの使用を避けてください。

検証

  1. 変更を確認するには、以下のコマンドを実行してノードを一覧表示します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                         STATUS                     ROLES                  AGE   VERSION
    ip-10-0-137-182.us-east-2.compute.internal   Ready,SchedulingDisabled   worker                 65m   v1.29.4
    ip-10-0-139-120.us-east-2.compute.internal   Ready,SchedulingDisabled   control-plane          74m   v1.29.4
    ip-10-0-176-102.us-east-2.compute.internal   Ready                      control-plane          75m   v1.29.4
    ip-10-0-188-96.us-east-2.compute.internal    Ready                      worker                 65m   v1.29.4
    ip-10-0-200-59.us-east-2.compute.internal    Ready                      worker                 63m   v1.29.4
    ip-10-0-223-123.us-east-2.compute.internal   Ready                      control-plane          73m   v1.29.4
    Copy to Clipboard Toggle word wrap

9.3.1. 許可リストへの特定のレジストリーの追加

image.config.openshift.io/cluster カスタムリソース(CR)を編集して、イメージのプルおよびプッシュアクションのレジストリー内に、レジストリーの許可リストまたは個別のリポジトリーを追加できます。

OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。

イメージをプルまたはプッシュする場合、コンテナーランタイムは image.config.openshift.io/cluster CR の registrySources パラメーターの下にリスト表示されるレジストリーを検索します。allowedRegistries パラメーターの下にレジストリーのリストを作成している場合、コンテナーランタイムはそれらのレジストリーのみを検索します。許可リストに含まれていないレジストリーはブロックされます。

警告

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 リソースの例になります。

    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:
      registrySources:
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - reg1.io/myrepo/myapp:latest
        - 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

      <node_name> はノード名に置き換えてください。

    3. プロンプトが表示されたら、ターミナルに chroot /host を入力します。

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

検証

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

    sh-5.1# cat /etc/containers/policy.json | jq '.'
    Copy to Clipboard Toggle word wrap

    以下のポリシーは、イメージのプルおよびプッシュで、example.comquay.io、および registry.redhat.io レジストリーからのイメージにのみアクセスできることを示しています。

    イメージ署名ポリシーファイルの例

    {
       "default":[
          {
             "type":"reject"
          }
       ],
       "transports":{
          "atomic":{
             "example.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "image-registry.openshift-image-registry.svc:5000":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "insecure.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "quay.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "reg4.io/myrepo/myapp:latest":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "registry.redhat.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ]
          },
          "docker":{
             "example.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "image-registry.openshift-image-registry.svc:5000":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "insecure.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "quay.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "reg4.io/myrepo/myapp:latest":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "registry.redhat.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ]
          },
          "docker-daemon":{
             "":[
                {
                   "type":"insecureAcceptAnything"
                }
             ]
          }
       }
    }
    Copy to Clipboard Toggle word wrap

    注記

    クラスターが registrySources.insecureRegistries パラメーターを使用する場合、非セキュアなレジストリーが許可リストに含まれることを確認します。

    以下に例を示します。

    spec:
      registrySources:
        insecureRegistries:
        - insecure.com
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - insecure.com
        - image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap

9.3.2. 特定のレジストリーのブロック

image.config.openshift.io/cluster カスタムリソース(CR)を編集してレジストリーまたはレジストリー内の個々のリポジトリーをブロックできます。

OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。

イメージをプルまたはプッシュする場合、コンテナーランタイムは image.config.openshift.io/cluster CR の registrySources パラメーターの下にリスト表示されるレジストリーを検索します。blockedRegistries パラメーターの下にレジストリーのリストを作成した場合、コンテナーランタイムはそれらのレジストリーを検索しません。他のすべてのレジストリーは許可されます。

警告

Pod の失敗を防ぐために、registry.redhat.io および quay.io レジストリーを blockedRegistries 一覧に追加しないでください。環境内のペイロードイメージには、これらのレジストリーへのアクセスが必要です。

手順

  • 以下のコマンドを実行して、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:
      registrySources:
        blockedRegistries:
        - untrusted.com
        - reg1.io/myrepo/myapp:latest
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap

    blockedRegistries および allowedRegistries パラメーターの両方を設定することはできません。どちらか一方を選択する必要があります。

    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

      <node_name> は、詳細が必要なノードの名前に置き換えます。

    3. プロンプトが表示されたら、ターミナルに chroot /host を入力します。

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

検証

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

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

    以下の例では、untrusted.com レジストリーからのイメージがイメージのプルおよびプッシュでブロックされていることを示しています。

    出力例

    unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
    [[registry]]
      prefix = ""
      location = "untrusted.com"
      blocked = true
    Copy to Clipboard Toggle word wrap

9.3.3. ペイロードレジストリーのブロック

ミラーリング設定では、ImageContentSourcePolicy (ICSP)オブジェクトを使用して、切断された環境でアップストリームペイロードレジストリーをブロックできます。以下の手順例は、quay.io/openshift-payload ペイロードレジストリーをブロックする方法を示しています。

手順

  1. ImageContentSourcePolicy (ICSP) オブジェクトを使用してミラー設定を作成し、ペイロードをインスタンスのレジストリーにミラーリングします。以下の ICSP ファイルの例は、ペイロード internal-mirror.io/openshift-payload をミラーリングします。

    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: my-icsp
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - internal-mirror.io/openshift-payload
        source: quay.io/openshift-payload
    Copy to Clipboard Toggle word wrap
  2. オブジェクトがノードにデプロイされたら、/etc/containers/registries.conf カスタムリソース(CR)をチェックして、ミラー設定が設定されていることを確認します。

    出力例

    [[registry]]
      prefix = ""
      location = "quay.io/openshift-payload"
      mirror-by-digest-only = true
    
    [[registry.mirror]]
      location = "internal-mirror.io/openshift-payload"
    Copy to Clipboard Toggle word wrap

  3. 以下のコマンドを使用して image.config.openshift.io CR を編集します。

    $ oc edit image.config.openshift.io cluster
    Copy to Clipboard Toggle word wrap
  4. ペイロードレジストリーをブロックするには、次の設定を image.config.openshift.io CR に追加します。

    spec:
      registrySources:
        blockedRegistries:
         - quay.io/openshift-payload
    Copy to Clipboard Toggle word wrap

検証

  • ノードの /etc/containers/registries.conf ファイルをチェックして、上流のペイロードレジストリーがブロックされていることを確認します。

    /etc/containers/registries.conf ファイルの例

    [[registry]]
      prefix = ""
      location = "quay.io/openshift-payload"
      blocked = true
      mirror-by-digest-only = true
    
    [[registry.mirror]]
      location = "internal-mirror.io/openshift-payload"
    Copy to Clipboard Toggle word wrap

9.3.4. 非セキュアなレジストリー

image.config.openshift.io/cluster カスタムリソース(CR)を編集して、非セキュアなレジストリー、またはレジストリー内に個別のリポジトリーを追加できます。

OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。有効な SSL 証明書を使用しないレジストリー、または HTTPS 接続を必要としないレジストリーは、非セキュアであると見なされます。

重要

起こりうるセキュリティーリスクを軽減するために、非セキュアな外部レジストリーの使用を避けてください。

+ :leveloffset: +1

警告

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

手順

  • 以下のコマンドを実行して、image.config.openshift.io/cluster カスタムリソース(CR)を編集します。

    $ 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:
      registrySources:
        insecureRegistries:
        - insecure.com
        - reg4.io/myrepo/myapp:latest
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - insecure.com
        - reg4.io/myrepo/myapp:latest
        - image-registry.openshift-image-registry.svc:5000
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap

検証

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

    $ cat /etc/containers/registries.conf
    Copy to Clipboard Toggle word wrap

    以下の例は、insecure.com レジストリーからのイメージが非セキュアであり、イメージのプルおよびプッシュで許可されることを示しています。

    出力例

    unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
    [[registry]]
      prefix = ""
      location = "insecure.com"
      insecure = true
    Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat