如何设置okd以使用外部nexus docker注册表?

时间:2018-10-18 15:12:36

标签: openshift okd

我想用OKD中现有的Nexus Docker注册表替换OKD中的默认Docker注册表。如何用Nexus Docker Registry替换OKD中现有的Docker注册表?

该想法是将我的所有图片托管在该Nexus存储区中。例如,当我使用S2I时。

3 个答案:

答案 0 :(得分:0)

该主题(如@GhostCat所示)使您的选择相当开放,直到您做出其他决定为止。您可能需要调查一些资源/主题,以帮助改善所需的结果:

1)从外部注册表中推送/拉取

在本主题中,我建议您不要“替换”内部注册表,而应在内部注册表旁边运行一个nexus注册表。内部注册表仍可用于存储系统组件,s2i图像生成器等,而Nexus可以是应用程序的主要注册表。

2)将所有注册表功能/组件移至Nexus

在本主题中,您将需要阅读有关OpenShift的断开连接的安装说明,并使其适应您自己的Nexus配置。本质上,您需要在Nexus中加载所有图像并在openshift中修改所有模板/图像流以指向新存储库。

答案 1 :(得分:0)

感谢该文章,它很有帮助,但是没有办法使此自动选择为默认值吗?这样一来,我所有的构建映像总会转到我的外部Nexus Docker存储库中吗?因为如果转到内部注册表,则由于重新启动内部注册表容器崩溃而丢失了图像。

尤其是S2I图像。

答案 2 :(得分:0)

我看到了几个要讨论的想法;

1)如果只希望构建输出针对另一个外部存储库而不是默认内部存储库,则可以在任何外部ci / cd系统中将其编码为构建配置的一部分。 openshift中最常见的方法是让Jenkins通过代码存储库中的Jenkinsfile创建构建配置。 我不知道有一种简单的书面方法可以覆盖系统中所有构建输出的默认配置或设置。

2)如果您在内部注册表上丢失了映像,那么您就没有利用持久存储,应该考虑使用持久存储。参见[here](https://docs.okd.io/3.10/install_config/registry/extended_registry_configuration.html#docker-registry-configuration-reference-storage