2016-11-24 5 views
0

У меня есть простая работа Kubernetes (на основе примера http://kubernetes.io/docs/user-guide/jobs/work-queue-2/), в которой используется изображение Docker, которое я разместил в качестве общего изображения на моей учетной записи dockerhub. Это все Локс, как это:Как определить работу Kubernetes с помощью частного реестра докеров?

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 

Теперь я хочу попробовать вместо этого использовать частный реестр докер, который требует проверки подлинности, как в:

docker login https://myregistry.com

Но я не могу найти ничего о том, как добавить имя пользователя и пароль в файл job.yaml. Как это делается?

ответ

1

Вам необходимо использовать ImagePullSecrets.

После того, как вы создадите секретный объект, вы можете обратиться к нему в вашем стручка спецификации (значение 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 

Ofcourse, вы должны создать секрет (как . согласно документации) Это то, что это будет выглядеть следующим образом:

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

значение .dockerconfigjson является base64 кодирование этого файла:. .docker/config.json

Ключевой момент: Спецификация работы содержит спецификацию контейнера. Так что любое знание, которое вы получаете о спецификациях pod, может быть применено и к работам.

+0

Также можно создать секрет как 'kubectl create secret docker-registry my-secret --docker-server = DOCKER_REGISTRY_SERVER --docker-username = DOCKER_USER --docker-password = DOCKER_PASSWORD --docker-email = DOCKER_EMAIL' Я узнал из: http://kubernetes.io/docs/user-guide/kubectl/kubectl_create_secret_docker-registry/ – jonalv