2.5. 扩展 Registry 配置
2.5.1. 维护 Registry IP 地址
OpenShift Container Platform 使用其服务 IP 地址来引用集成的 registry,因此如果您决定删除并重新创建 docker-registry 服务,您可以通过安排在新服务中重复使用旧 IP 地址来确保完全透明转换。如果无法避免新的 IP 地址,您可以通过只重启 master 来最小化集群中断。
- 重新使用地址
- 要重新使用 IP 地址,您必须在删除旧 docker-registry 服务前保存其 IP 地址,并安排将新分配的 IP 地址替换为新 docker-registry 服务中保存的 IP 地址。
记录该服务的
clusterIP
:$ oc get svc/docker-registry -o yaml | grep clusterIP:
删除服务:
$ oc delete svc/docker-registry dc/docker-registry
在 registry.yaml 中创建 registry 定义,将
<options>
替换为非生产环境使用部分中说明的第 3 步中使用的 :$ oc adm registry <options> -o yaml > registry.yaml
-
编辑 registry.yaml,找到
Service
,并将其clusterIP
更改为第 1 步中记录的地址。 使用修改后的 registry.yaml 创建 registry:
$ oc create -f registry.yaml
- 重启 Master
- 如果您无法重新使用 IP 地址,则任何使用包含旧 IP 地址的 pull specification 的操作都将失败。要最小化集群中断,您必须重启 master:
# master-restart api # master-restart controllers
这样可确保从缓存中清除包括旧 IP 地址的旧 registry URL。
注意
我们建议不要重启整个集群,因为这会对 pod 造成不必要的停机时间,实际上不会清除缓存。