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以下は、ブロックリストを含む
image.config.openshift.io/clusterCR の例です。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:5000blockedRegistriesパラメーターとallowedRegistriesパラメーターの両方を設定することはできません。いずれかを選択する必要があります。次のコマンドを実行して、ノードのリストを取得します。
$ oc get nodes出力例
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27b次のコマンドを実行し、ノード上でデバッグモードに入ります。
$ oc debug node/<node_name><node_name> は、詳細が必要なノードの名前に置き換えます。
プロンプトが表示されたら、ターミナルに
chroot /hostを入力します。sh-4.4# chroot /host
検証
次のコマンドを実行して、レジストリーがポリシーファイル内にあることを確認します。
sh-5.1# cat etc/containers/registries.conf以下の例では、
untrusted.comレジストリーからのイメージが、イメージのプルおよびプッシュでブロックされることを示しています。出力例
unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "untrusted.com" blocked = true