Menu Close

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 来使用所含授权机构提供的服务进行身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.ioregistry.redhat.io

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 角色。

流程

  1. 要允许 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)镜像。

  2. 要允许访问 project-a 中的任意服务帐户,请使用组:

    $ oc policy add-role-to-group \
        system:image-puller system:serviceaccounts:project-a \
        --namespace=project-b