9.2.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 一覧に追加しないでください。これらは、お使いの環境内のペイロードイメージで必要とされます。

手順

  1. image.config.openshift.io/cluster CR を編集します。

    $ 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:
      registrySources: 1
        blockedRegistries: 2
        - untrusted.com
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    1
    registrySources: コンテナーランタイムがビルドおよび Pod のイメージへのアクセス時に個々のレジストリーを処理する方法を決定する設定が含まれます。内部クラスターレジストリーの設定は含まれません。
    2
    イメージのプルおよびプッシュアクションについて使用できないレジストリーを指定します。他のすべてのレジストリーは許可されます。
    注記

    blockedRegistries レジストリーまたは allowedRegistries レジストリーのいずれかを設定できますが、両方を設定することはできません。

    Machine Config Operator (MCO) は、 image.config.openshift.io/cluster CR でレジストリーへの変更の有無を監視し、変更を検出するとノードを再起動します。ブロックされたレジストリーへの変更は、各ノードの /etc/containers/registries.conf ファイルに表示されます。

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

    $ cat /host/etc/containers/registries.conf

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

    出力例

    unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
    [[registry]]
      prefix = ""
      location = "untrusted.com"
      blocked = true