如何在OpenShift的其他命名空间中使用跨命名空间ImageStream?
解决OpenShift跨命名空间使用ImageStream的方法
1. 配置镜像拉取权限
要从openshift命名空间拉取镜像,需为kvb-netclient-test命名空间的默认服务账号授予镜像拉取角色:
oc policy add-role-to-user system:image-puller system:serviceaccount:kvb-netclient-test:default -n openshift
2. 正确引用镜像的两种方式
方式一:使用ImageStreamTag完整格式
在Pod/Deployment的image字段中,采用<源命名空间>/<ImageStream名称>:<标签>的格式,OpenShift会自动解析为内部镜像仓库地址:
kind: Pod apiVersion: v1 metadata: name: netclient-test namespace: "kvb-netclient-test" spec: containers: - name: netclient image: openshift/netclient-userspace:latest
方式二:直接使用内部镜像仓库地址
直接使用oc get is输出中IMAGE REPOSITORY的完整地址作为镜像路径:
kind: Pod apiVersion: v1 metadata: name: netclient-test namespace: "kvb-netclient-test" spec: containers: - name: netclient image: image-registry.openshift-image-registry.svc:5000/openshift/netclient-userspace:latest
验证
完成权限配置并修改镜像引用后,重新部署Pod,即可从OpenShift内部镜像仓库拉取目标镜像,而非默认去DockerHub查找。
内容的提问来源于stack exchange,提问作者Krist van Besien
相关产品推荐
相关产品推荐

