docker - 如何使用私有(private) Docker 注册表定义 Kubernetes 作业?

标签 docker kubernetes docker-registry

我有一个简单的 Kubernetes 作业(基于 http://kubernetes.io/docs/user-guide/jobs/work-queue-2/ 示例),它使用了一个 Docker 镜像,该镜像已作为公共(public)镜像放置在我的 dockerhub 帐户中。一切都是这样的:

job.yaml:

apiVersion: batch/v1
kind: Job
metadata:
  name: job-wq-2
spec:
  parallelism: 2
  template:
    metadata:
      name: job-wq-2
    spec:
      containers:
      - name: c
        image: jonalv/job-wq-2
      restartPolicy: OnFailure

现在我想尝试使用需要身份验证的私有(private) Docker 注册表,如下所示:

docker 登录 https://myregistry.com

但是我找不到任何关于如何将用户名和密码添加到我的 job.yaml 文件的信息。是怎么做到的?

最佳答案

您需要使用 ImagePullSecrets .

一旦你创建了一个 secret 对象,你就可以在你的 pod 规范中引用它(spec 值是 containers 的父级:

apiVersion: batch/v1
kind: Job
metadata:
  name: job-wq-2
spec:
  parallelism: 2
  template:
    metadata:
      name: job-wq-2
    spec:
      imagePullSecrets:
      - name: myregistrykey
      containers:
      - name: c
        image: jonalv/job-wq-2
      restartPolicy: OnFailure

当然,您必须创建 secret (根据文档)。这就是它的样子:

apiVersion: v1
kind: Secret
metadata:
  name: myregistrykey
  namespace: mynamespace
data:
  .dockerconfigjson: UmVhbGx5IHJlYWxseSByZWVlZWVlZWVlZWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGx5eXl5eXl5eXl5eXl5eXl5eXl5eSBsbGxsbGxsbGxsbGxsbG9vb29vb29vb29vb29vb29vb29vb29vb29vb25ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cgYXV0aCBrZXlzCg==
type: kubernetes.io/dockerconfigjson

.dockerconfigjson的值是这个文件的base64编码:.docker/config.json

关键点:一个工作规范包含一个 pod 规范。因此,您获得的关于 pod 规范的任何知识也可以应用到工作中。

关于docker - 如何使用私有(private) Docker 注册表定义 Kubernetes 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782458/

相关文章:

mongodb - GitLab CI:Docker容器无法连接到MongoDB服务

docker - 在Kubernetes中部署Harbor

docker - 删除 Dockerfile 构建期间的 $GNUPGHOME 错误

azure - 什么是 Docker 注册表服务连接?

Kubernetes:使用 HTTPS 通信内部服务

docker - Helm init连接超时 Blob

Docker 本地注册表 : push fails

docker - docker 镜像的大小和虚拟大小有什么区别?

bash - 在 Docker Compose 中执行/bin/bash

amazon-web-services - 如何使我的AWS EKS Kubernetes集群公开可见?