Je n'arrive pas à extraire de mon référentiel privé Docker Hub dans ma configuration Kubernetes locale s'exécutant sur Vagrant:
Le conteneur "hellonode" dans le pod "hellonode-n1hox" attend de démarrer: l'image ne peut pas être tiré
Échec d'extraction de l'image "nom d'utilisateur/hellonode": erreur: image nom d'utilisateur/hellonode: dernièrement introuvable.
J'ai configuré Kubernetes localement via Vagrant comme décrit ici et ai créé un secret nommé "dockerhub" avec kubectl crée le dockerhub docker-registry secret --docker-server = https: //registry.hub.docker .com/ --docker-username = nom d'utilisateur --docker-password = ... --docker-email = ... que j'ai fourni en tant que secret d'attraction de l'image.
Je cours Kubernetes 1.2.0.
Pour extraire une image hébergée DockerHub privée à partir d'un fichier YAML Kubernetes:
Exécutez ces commandes:
DOCKER_REGISTRY_SERVER=docker.io
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
Si votre nom d'utilisateur sur DockerHub est DOCKER_USER
et que votre référentiel privé s'appelle PRIVATE_REPO_NAME
et que l'image que vous souhaitez extraire est marquée en tant que latest
, créez ce fichier example.yaml
:
apiVersion: v1
kind: Pod
metadata:
name: whatever
spec:
containers:
- name: whatever
image: DOCKER_USER/PRIVATE_REPO_NAME:latest
imagePullPolicy: Always
command: [ "echo", "SUCCESS" ]
imagePullSecrets:
- name: myregistrykey
Puis lancez:
kubectl create -f example.yaml
Créez le secret de k8:
apiVersion: v1
kind: Secret
metadata:
name: repositorySecretKey
data:
.dockerconfigjson: <base64 encoded docker auth config>
type: kubernetes.io/dockerconfigjson
Puis dans la configuration pod ou rc, mentionnez le secret. Exemple :
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>"
}
}
Ou
kubectl create secret docker-registry myregistrykey \
--docker-server=DOCKER_REGISTRY_SERVER \
--docker-username=DOCKER_USER \
--docker-password=DOCKER_PASSWORD \
--docker-email=DOCKER_EMAIL
Vous pouvez suivre ces instructions sur comment configurer les noeuds pour s’authentifier sur un référentiel privé afin de configurer les préfets pour que Docker utilise vos informations d’identification, ou suivez la solution de + Phagun Baya avec imagePullSecrets qui s’applique aux pods.