1.3. 启用 Pod 引用其他安全 registry 中的镜像
如果容器组使用需要凭证的安全 registry 中的容器,您可以将 Container Registry 凭证与分配给作业模板的 Execution Environment 关联。自动化控制器使用它来在容器组作业运行的 OpenShift Container Platform 命名空间中创建 ImagePullSecret
,并在作业完成后进行清理。
另外,如果容器组命名空间中已存在
,您可以在 ImagePullSecret
ContainerGroup
的自定义 pod 规格中指定 ImagePullSecret。
请注意,容器组中运行的作业所使用的镜像始终被与作业关联的执行环境覆盖。
使用预先创建的 ImagePullSecrets (高级)
如果要使用此工作流并预先创建 ImagePullSecret
,您可以提供必要的信息,以便从之前访问安全容器 registry 的系统上的本地 .dockercfg
文件创建它。
步骤
用于较新的 Docker 客户端的 .dockercfg
文件或 $HOME/.docker/config.json
是一个 Docker 凭证文件,如果您之前已登录到安全或不安全的 registry,则该文件会保存您的信息。
对于安全的 registry 已有一个
.dockercfg
文件,您可以运行以下命令来从该文件中创建 secret:oc create secret generic <pull_secret_name> \ --from-file=.dockercfg=<path/to/.dockercfg> \ --type=kubernetes.io/dockercfg
$ oc create secret generic <pull_secret_name> \ --from-file=.dockercfg=<path/to/.dockercfg> \ --type=kubernetes.io/dockercfg
Copy to Clipboard Copied! 或者,如果您有一个
$HOME/.docker/config.json
文件:oc create secret generic <pull_secret_name> \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
$ oc create secret generic <pull_secret_name> \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
Copy to Clipboard Copied! 如果您还没有安全 registry 的 Docker 凭证文件,您可以通过运行以下命令来创建 secret:
oc create secret docker-registry <pull_secret_name> \ --docker-server=<registry_server> \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>
$ oc create secret docker-registry <pull_secret_name> \ --docker-server=<registry_server> \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>
Copy to Clipboard Copied! 要使用 secret 为 Pod 拉取镜像,您必须将 secret 添加到您的服务帐户中。本例中服务帐户的名称应与 Pod 使用的服务帐户的名称匹配。默认为 default 服务帐户。
oc secrets link default <pull_secret_name> --for=pull
$ oc secrets link default <pull_secret_name> --for=pull
Copy to Clipboard Copied! 可选:要使用 secret 来推送和拉取 (pull) 构建镜像,该 secret 必须可在 pod 内挂载。您可通过运行以下命令实现这一目的:
oc secrets link builder <pull_secret_name>
$ oc secrets link builder <pull_secret_name>
Copy to Clipboard Copied! - 可选: 对于构建,还必须将 secret 引用为构建配置中的 pull secret。
成功创建容器组后,新创建的容器组的 Details 选项卡会保留。这样,您可以查看并编辑容器组信息。这与您点 Instance Group 链接中的 图标 ✎ 时打开的菜单相同。您还可以编辑实例,并查看与此实例组关联的作业。