Managing images
使用 Alauda Container Platform,您可以根据镜像仓库的位置、这些仓库的认证要求,以及您希望构建和部署的行为,来管理镜像。
Image pull policy
Pod 中的每个容器都有一个容器镜像。在您创建镜像并将其推送到仓库后,即可在 Pod 中引用该镜像。
目录
Image pull policy overviewAllowing pods to reference images from other secured registriesCreating a pull secretUsing a pull secret in a workloadImage pull policy overview
当 Alauda Container Platform 创建容器时,会使用容器的 imagePullPolicy 来决定是否在启动容器之前拉取镜像。imagePullPolicy 有三种可能的取值:
表格 imagePullPolicy 取值:
如果未指定容器的 imagePullPolicy 参数,Alauda Container Platform 会根据镜像标签设置默认值:
- 如果标签是 latest,Alauda Container Platform 默认将 imagePullPolicy 设置为 Always。
- 否则,Alauda Container Platform 默认将 imagePullPolicy 设置为 IfNotPresent。
Using image pull secrets
如果您使用的是 Alauda Container Platform 的镜像仓库,则您的 Pod 服务账户应已拥有正确的权限,无需额外操作。
但是,对于其他场景,例如跨 Alauda Container Platform 项目引用镜像或从受保护的仓库拉取镜像,则需要额外的配置步骤。
Allowing pods to reference images from other secured registries
要从其他私有或受保护的仓库拉取受保护的容器镜像,必须使用容器客户端凭据(如 Podman)创建拉取密钥,并将其添加到您的服务账户中。
容器客户端使用配置文件存储认证信息,以登录受保护或非受保护的仓库:
这些文件会存储您之前登录受保护或非受保护仓库时的认证信息。
Creating a pull secret
您可以获取镜像拉取密钥,以便从私有容器镜像仓库或仓库中拉取镜像。您可以参考 Pull an Image from a Private Registry。
Using a pull secret in a workload
您可以通过以下方法之一使用拉取密钥,允许工作负载从私有仓库拉取镜像:
- 将密钥关联到
ServiceAccount,这会自动将密钥应用于使用该服务账户的所有 Pod。 - 在 Pod 规范中定义
imagePullSecrets,这对于 GitOps 或 ArgoCD 等环境非常有用。
您可以通过将密钥添加到服务账户来为 Pod 拉取镜像使用该密钥。注意,服务账户的名称应与 Pod 使用的服务账户名称匹配。
示例输出:
除了将密钥关联到服务账户外,您还可以直接在 Pod 或工作负载定义中引用该密钥。这对于 ArgoCD 等 GitOps 工作流非常有用。例如:
示例 Pod 规范:
示例 ArgoCD 工作流: