2.5. 为镜像 registry 配置集群
在将镜像创建并镜像(mirror)到镜像 registry 后,您必须修改集群,以便 pod 可以从镜像 registry 中拉取镜像。
您必须:
- 将镜像 registry 凭证添加到全局 pull secret 中。
- 在集群中添加镜像 registry 服务器证书。
创建
ImageContentSourcePolicy
自定义资源(ICSP),它将镜像 registry 与源 registry 关联。将镜像 registry 凭证添加到集群全局 pull-secret 中:
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location>
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 提供新 pull secret 文件的路径。
例如:
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=.mirrorsecretconfigjson
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=.mirrorsecretconfigjson
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 CA 签名的镜像 registry 服务器证书添加到集群中的节点:
创建包含镜像 registry 的服务器证书的配置映射
oc create configmap <config_map_name> --from-file=<mirror_address_host>..<port>=$path/ca.crt -n openshift-config
$ oc create configmap <config_map_name> --from-file=<mirror_address_host>..<port>=$path/ca.crt -n openshift-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
S oc create configmap registry-config --from-file=mirror.registry.com..443=/root/certs/ca-chain.cert.pem -n openshift-config
S oc create configmap registry-config --from-file=mirror.registry.com..443=/root/certs/ca-chain.cert.pem -n openshift-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置映射更新
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":"<config_map_name>"}}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-config"}}}' --type=merge
$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-config"}}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个 ICSP,将在线 registry 中的容器拉取请求重定向到镜像 registry:
创建
ImageContentSourcePolicy
自定义资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 ICSP 对象:
oc create -f registryrepomirror.yaml
$ oc create -f registryrepomirror.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
imagecontentsourcepolicy.operator.openshift.io/mirror-ocp created
imagecontentsourcepolicy.operator.openshift.io/mirror-ocp created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 会将对此 CR 的更改应用到集群中的所有节点。
验证已添加了镜像 registry 的凭证、CA 和 ICSP:
登录到节点:
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/host
设置为 debug shell 中的根目录:chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查凭证的
config.json
文件:cat /var/lib/kubelet/config.json
sh-4.4# cat /var/lib/kubelet/config.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"auths":{"brew.registry.redhat.io":{"xx=="},"brewregistry.stage.redhat.io":{"auth":"xxx=="},"mirror.registry.com:443":{"auth":"xx="}}}
{"auths":{"brew.registry.redhat.io":{"xx=="},"brewregistry.stage.redhat.io":{"auth":"xxx=="},"mirror.registry.com:443":{"auth":"xx="}}}
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 确保存在镜像 registry 和凭证。
进入
certs.d
目录cd /etc/docker/certs.d/
sh-4.4# cd /etc/docker/certs.d/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出
certs.d
目录中的证书:ls
sh-4.4# ls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
image-registry.openshift-image-registry.svc.cluster.local:5000 image-registry.openshift-image-registry.svc:5000 mirror.registry.com:443
image-registry.openshift-image-registry.svc.cluster.local:5000 image-registry.openshift-image-registry.svc:5000 mirror.registry.com:443
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 确保镜像 registry 位于列表中。
检查 ICSP 是否将镜像 registry 添加到
registry.conf
文件中:cat /etc/containers/registries.conf
sh-4.4# cat /etc/containers/registries.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry.mirror
参数表示在原始 registry 前搜索镜像 registry。退出节点。
exit
sh-4.4# exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow