Как получить доступ к частному репозиторию 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, который применяется к контейнерам.