如何在OpenShift/OKD 4.x群集中允许不安全的注册表
对于OpenShift/OKD群集4.x上的任何部署,要成功,都必须有容器镜像的源。 OpenShift允许我们将私人注册表用作图像源。诸如Docker Hub,Quay,gcr,等之类的公共注册表以及集成的OpenShift注册表始终运行良好。但是,当我们要使用没有有效SSL证书或者HTTP的私有注册表时,就会出现问题。
有两种方法可以在OpenShift/OKD群集上使用私有不安全注册表;如果使用自签名SSL证书,请导入证书OpenShift CA信任;将注册表添加到不安全注册表列表中,机器配置操作员(MCO)将推送更新到所有节点在群集中,然后重新启动它们。
OpenShift/Kubernetes的私有镜像注册表:
使用Helm Chart在Kubernetes/OpenShift上安装Harbor Image Registry
在CentOS/Debian/Ubuntu上安装Harbor Container Image Registry
使用操作员在OpenShift上安装Project Quay Registry
如何在CentOS/RHEL/Ubuntu上设置Red Hat Quay注册表
添加其他信任库以访问镜像注册表
假设注册表URL是ocr.example.com,位于默认的HTTPS端口(443)上,证书文件是ocr.example.com.crt。
这是我们将如何配置在镜像导入,Pod镜像提取和构建期间应信任的其他CA。请注意,CA必须为PEM编码格式。
--- syntax -- $oc create configmap registry-config \ --from-file=<external_registry_address>=ca.crt \ -n openshift-config --- Example -- $oc create configmap registry-config \ --from-file=ocr.example.com=ocr.example.com.crt \ -n openshift-config
然后编辑镜像注册表群集配置,并指定AdditionalTrustedCA。
$oc edit image.config.openshift.io cluster spec: additionalTrustedCA: name: registry-config
将不安全的图像注册表列入白名单
我们还可以通过编辑image.config.openshift.io/cluster自定义资源(CR)来添加不安全的注册表。这对于仅支持HTTP连接或者具有无效证书的注册表很常见。
编辑image.config.openshift.io/cluster自定义资源:
$oc edit image.config.openshift.io/cluster
在allowedRegistries部分下指定允许图像拉入和推送操作的注册表。
.... spec: additionalTrustedCA: name: registry-config registrySources: insecureRegistries: - ocr.example.com
如果有多个行,则可以为不安全的注册表添加更多行。要阻止注册表,请添加如下内容。
.... spec: additionalTrustedCA: name: registry-config registrySources: insecureRegistries: - ocr.example.com blockedRegistries: - untrusted.com
机器配置操作员(MCO)在image.config.openshift.io/cluster中监视注册表的任何更改,并在检测到更改时重新启动节点。
新的注册表配置将写入每个节点上的/etc/containers/registries.conf文件中。