2.2.5. コンテナーイメージレジストリーの設定
OpenShift Container Platform がコンテナーイメージの取得に使用するレジストリーを定義する設定は、デフォルトで /etc/containers/registries.conf
ファイルに保持されます。このファイルでは、認証を必要としない (セキュアでない) レジストリーを設定するか、ミラーリングされたレジストリーをポイントするか、または非修飾コンテナーイメージ要求を検索するレジストリーを設定できます。
registries.conf
を直接変更せずに、設定ファイルを /etc/containers/registries.conf.d
ディレクトリーにドロップできます。これらのファイルは、システムの既存の registries.conf
設定に自動的に追加されます。
この手順は、quay.io
を非修飾検索レジストリー (OpenShift Container Platform がレジストリー名が含まれないイメージ名のプルの試行時に検索できるレジストリー) として追加する registries.d
ファイル (/etc/containers/registries/99-worker-unqualified-search-registries.conf
) を作成する方法について説明します。これには、以下のように検査できる base64 でエンコードされた内容が含まれます。
$ echo dW5xdWFsaWZpZWQtc2VhcmNoLXJlZ2lzdHJpZXMgPSBbJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tJywgJ2RvY2tlci5pbycsICdxdWF5LmlvJ10K | base64 -d unqualified-search-registries = ['registry.access.redhat.com', 'docker.io', 'quay.io']
registries.conf
および registries.d
ディレクトリーファイルの形式については、 containers-registries.conf
man ページを参照してください。
前提条件
- OpenShift Container Platform クラスター (バージョン 4.4 以降) が実行中である。
- 管理者権限を持つユーザーとしてクラスターにログインしている。
手順
YAML ファイル (
myregistry.yaml
) を作成し、そのファイルのエンコードされた base64 コンテンツを含む、/etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf
ファイルのコンテンツを保持します。以下は例になります。$ cat > /tmp/myregistry.yaml <<EOF apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 99-worker-unqualified-search-registries spec: config: ignition: version: 3.1.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,dW5xdWFsaWZpZWQtc2VhcmNoLXJlZ2lzdHJpZXMgPSBbJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tJywgJ2RvY2tlci5pbycsICdxdWF5LmlvJ10K filesystem: root mode: 0644 path: /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf EOF
マシン設定をプールに適用します。
$ oc apply -f /tmp/myregistry.yaml
新規マシン設定が適用され、ノードの状態が低下した状態にないことを確認します。これには数分の時間がかかる場合があります。各マシンで新規マシン設定が正常に適用されるため、ワーカープールには更新が進行中であることが表示されます。
$ oc get machineconfigpool
出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-35 True False False 3 3 3 0 34m worker rendered-worker-d8 False True False 3 1 1 0 34m
変更が適用されたことを確認するには、ワーカーノードにログインします。
$ oc get node | grep worker
出力例
ip-10-0-0-1.us-east-2.compute.internal Ready worker 39m v0.0.0-master+$Format:%h$
$ oc debug node/ip-10-0-0-1.us-east-2.compute.internal
出力例
Starting pod/ip-10-0-141-142us-east-2computeinternal-debug ... ...
sh-4.2# chroot /host sh-4.4# cat /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf unqualified-search-registries = ['registry.access.redhat.com', 'docker.io', 'quay.io'] sh-4.4# exit