5.4. 使用镜像 pull secret
如果您在使用 OpenShift Container Platform 的内部 registry,且从位于同一项目中的镜像流拉取(pull),则您的 Pod 服务帐户应已具备正确权限,且无需额外操作。
然而,对于其他场景,例如在 OpenShift Container Platform 项目间或从安全 registry 引用镜像,则还需其他配置步骤。
您可以从 Red Hat OpenShift Cluster Manager 获取镜像 pull secret。此 pull secret 名为 pullSecret
。
您可以使用此 pull secret 与所含授权机构( Quay.io 和 registry.redhat.io )提供的服务进行身份验证,以便为 OpenShift Container Platform 组件提供容器镜像。
config.json
文件示例
{ "auths":{ "cloud.openshift.com":{ "auth":"b3Blb=", "email":"you@example.com" }, "quay.io":{ "auth":"b3Blb=", "email":"you@example.com" } } }
5.4.1. 允许 pod 在项目间引用镜像
使用内部容器镜像仓库(registry)时,为允许 project-a
中的 pod 引用 project-b
中的镜像,project-a
中的服务帐户必须绑定到 project-b
中的 system:image-puller
角色。
在创建 pod 服务帐户或命名空间时,请等待服务帐户置备了 docker pull secret;如果在其服务帐户被完全置备前创建 pod,则 pod 无法访问 OpenShift Container Platform 内部 registry。
流程
要允许
project-a
中的 pod 引用project-b
中的镜像,请将project-a
中的服务帐户绑定到project-b
中的system:image-puller
角色。$ oc policy add-role-to-user \ system:image-puller system:serviceaccount:project-a:default \ --namespace=project-b
添加该角色后,
project-a
中引用默认服务帐户的 pod 能够从project-b
拉取(pull)镜像。要允许访问
project-a
中的任意服务帐户,请使用组:$ oc policy add-role-to-group \ system:image-puller system:serviceaccounts:project-a \ --namespace=project-b