web-dev-qa-db-fra.com

Comment accéder au référentiel privé de Docker Hub depuis Kubernetes on Vagrant

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.

19
André

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
59
Rich Kuzsma

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
6
Phagun Baya

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.

0
EricM