为什么无法将映像从 VPC 网络外部推送到内部注册表?
基础架构提供者和适用版本:
- VPC
- Red Hat OpenShift 4.4 或更高版本
当您尝试将容器映像推送到内部 Red Hat OpenShift 容器映像注册表时,推送将失败,并显示类似如下的消息。
dial tcp 161.26.0.28:443: connect: network is unreachable
在 VPC 基础架构提供程序上运行的 Red Hat OpenShift on IBM Cloud 集群使用 IBM Cloud Object Storage 来存储集群内部容器注册表中的数据。 缺省情况下,只能从 VPC 实例内部访问 Object Storage 端点。 因此,当外部进程 (例如本地机器或 CI/CD 管道) 尝试从 VPC 外部将容器映像推送到内部注册表时,映像推送将失败。
将内部映像注册表操作程序的定制资源修改为通过内部注册表 pod 到直接 Object Storage 端点的代理容器映像流量。
运行以下命令以修补 configs.imageregistry.operator.openshift.io/cluster
资源,从而将 disableRedirect
属性设置为 true
。
oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"disableRedirect":true}}' --type=merge