13.5. ミラーレジストリー用のクラスターの設定
イメージを作成し、ミラーレジストリーにミラーリングした後に、Pod がミラーレジストリーからイメージをプルできるようにクラスターを変更する必要があります。
以下を行う必要があります。
- ミラーレジストリー認証情報をグローバルプルシークレットに追加します。
- ミラーレジストリーサーバー証明書をクラスターに追加します。
ミラーレジストリーをソースレジストリーに関連付ける
ImageContentSourcePolicy
カスタムリソース (ICSP) を作成します。ミラーレジストリー認証情報をクラスターのグローバル pull-secret に追加します。
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location> 1
- 1
- 新規プルシークレットファイルへのパスを指定します。
以下に例を示します。
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=.mirrorsecretconfigjson
CA 署名のミラーレジストリーサーバー証明書をクラスター内のノードに追加します。
ミラーレジストリーのサーバー証明書が含まれる設定マップを作成します。
$ oc create configmap <config_map_name> --from-file=<mirror_address_host>..<port>=$path/ca.crt -n openshift-config
以下に例を示します。
S oc create configmap registry-config --from-file=mirror.registry.com..443=/root/certs/ca-chain.cert.pem -n openshift-config
設定マップを使用して
image.config.openshift.io/cluster
カスタムリソース (CR) を更新します。OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"<config_map_name>"}}}' --type=merge
以下に例を示します。
$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-config"}}}' --type=merge
ICSP を作成し、オンラインレジストリーからミラーレジストリーにコンテナープルリクエストをリダイレクトします。
ImageContentSourcePolicy
カスタムリソースを作成します。apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: name: mirror-ocp spec: repositoryDigestMirrors: - mirrors: - mirror.registry.com:443/ocp/release 1 source: quay.io/openshift-release-dev/ocp-release 2 - mirrors: - mirror.registry.com:443/ocp/release source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
ICSP オブジェクトを作成します。
$ oc create -f registryrepomirror.yaml
出力例
imagecontentsourcepolicy.operator.openshift.io/mirror-ocp created
OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。
ミラーレジストリーの認証情報、CA、および ICSP が追加されていることを確認します。
ノードにログインします。
$ oc debug node/<node_name>
/host
をデバッグシェル内のルートディレクトリーとして設定します。sh-4.4# chroot /host
config.json
ファイルで認証情報の有無を確認します。sh-4.4# cat /var/lib/kubelet/config.json
出力例
{"auths":{"brew.registry.redhat.io":{"xx=="},"brewregistry.stage.redhat.io":{"auth":"xxx=="},"mirror.registry.com:443":{"auth":"xx="}}} 1
- 1
- ミラーレジストリーおよび認証情報が存在することを確認します。
certs.d
ディレクトリーに移動します。sh-4.4# cd /etc/docker/certs.d/
certs.d
ディレクトリーの証明書を一覧表示します。sh-4.4# ls
出力例
image-registry.openshift-image-registry.svc.cluster.local:5000 image-registry.openshift-image-registry.svc:5000 mirror.registry.com:443 1
- 1
- ミラーレジストリーがリストにあることを確認します。
ICSP がミラーレジストリーを
registries.conf
ファイルに追加していることを確認します。sh-4.4# cat /etc/containers/registries.conf
出力例
unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "quay.io/openshift-release-dev/ocp-release" mirror-by-digest-only = true [[registry.mirror]] location = "mirror.registry.com:443/ocp/release" [[registry]] prefix = "" location = "quay.io/openshift-release-dev/ocp-v4.0-art-dev" mirror-by-digest-only = true [[registry.mirror]] location = "mirror.registry.com:443/ocp/release"
registry.mirror
パラメーターは、ミラーレジストリーが元のレジストリーの前に検索されることを示します。ノードを終了します。
sh-4.4# exit