Как получить доступ к частному репозиторию Docker Hub от Kubernetes on Vagrant

Я не могу извлечь из своего личного репозитория Docker Hub в мою локальную настройку Kubernetes, запущенную на Vagrant:

Контейнер "hellonode" в pod "hellonode-n1hox" ждет, чтобы начать: изображение не может быть вытащил

Не удалось загрузить изображение "имя пользователя /hellonode ": Ошибка: имя пользователя изображения /hellonode: последний не найден

Я установил Kubernetes локально через Vagrant, как описано здесь, и создал секрет под названием "dockerhub" с kubectl, создающим секретный докер-реестр докеров - -docker-server = https://registry.hub.docker.com/ --docker-username = имя пользователя --docker-password =... --docker-email =... который я поставил в качестве секретности изображения.

Я запускаю Kubernetes 1.2.0.

Ответ 1

Чтобы вытащить приватный образ DockerHub с кубинец YAML:

Запустите следующие команды:

DOCKER_REGISTRY_SERVER=https://index.docker.io/v1/
DOCKER_USER=Type your dockerhub username, same as when you `docker login`
DOCKER_EMAIL=Type your dockerhub email, same as when you `docker login`
DOCKER_PASSWORD=Type your dockerhub pw, same as when you `docker login`

kubectl create secret docker-registry myregistrykey \
  --docker-server=$DOCKER_REGISTRY_SERVER \
  --docker-username=$DOCKER_USER \
  --docker-password=$DOCKER_PASSWORD \
  --docker-email=$DOCKER_EMAIL

Если ваше имя пользователя на DockerHub DOCKER_USER, а ваше личное репо называется PRIVATE_REPO_NAME, а изображение, которое вы хотите вытащить, помечено как latest, создайте этот файл example.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: whatever
spec:
  containers:
    - name: whatever
      image: index.docker.io/DOCKER_USER/PRIVATE_REPO_NAME:latest
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]
  imagePullSecrets:
    - name: myregistrykey

Затем запустите:

kubectl create -f example.yaml

Ответ 2

Создайте секрет k8:

apiVersion: v1
kind: Secret
metadata:
  name: repositorySecretKey
data:
  .dockerconfigjson: <base64 encoded docker auth config>
type: kubernetes.io/dockerconfigjson

Затем в pod или rc config укажите секрет. Пример:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
    - name: test-pod
      image: quay.io/example/hello:1.1
  imagePullSecrets:
    - name: repositorySecretKey

Docker auth config

{
   "https://quay.io": {
    "email": ".",
    "auth": "<base64 encoded auth token>"
  }
}

Или

kubectl create secret docker-registry myregistrykey \
    --docker-server=DOCKER_REGISTRY_SERVER \
    --docker-username=DOCKER_USER \
    --docker-password=DOCKER_PASSWORD \
    --docker-email=DOCKER_EMAIL

Ответ 3

Вы можете выполнить следующие инструкции как настроить узлы для проверки подлинности в частном репозитории, чтобы настроить кубели, чтобы заставить Docker использовать ваши учетные данные, или следовать + решению Phagun Baya с помощью imagePullSecrets, который применяется к контейнерам.