我已经阅读并研究了有关 k8s 部署的信息,但看起来我将要描述的问题没有解决方案。
目前,我有一个设置,其中 Deployment 将从我们的私有 Docker 注册表中拉取图像,我们称之为注册表 A。
我们想制作另一个私有 Docker 注册中心,将这个注册中心部署到不同的环境,希望更好的网络能够产生更好的拉取时间。让我们称之为注册表 B.
现在,为了使系统具有弹性,我们想让 Deployment 首先从 Registry B 拉取镜像(因为它应该更快)。如果由于某些原因,它不能从该注册表中提取,那么它应该从注册表 A 中提取。
我正在使用带有 K8S 客户端的 Golang 来应用部署,这里是应用部署的示例代码。
c := corev1.Container()
c.WithName(deploymentName)
c.WithImage(image)
c.WithImagePullPolicy("IfNotPresent")
如您所见,为 Deployment 指定图像的唯一方法是使用
WithImage
.
如果你们中有人遇到过这个问题,请告诉我如何解决这个问题。
更新: