Créez un secret d'informations d'identification de registre et une référence dans les spécifications d'espace et de déploiement afin de pouvoir extraire des images de conteneur sans erreur.

Docker Hub nécessite un compte pour pouvoir en extraire des images. Vous pouvez créer un secret Kubernetes avec vos informations d'identification Docker Hub et référencer ce secret dans les espaces et les spécifications de déploiement.

Cette approche peut également être utilisée pour d'autres registres privés.

Conditions préalables

Installez Docker sur une machine cliente Ubuntu. Reportez-vous à la section https://docs.docker.com/engine/install/ubuntu/.

Procédure

  1. Exécutez docker version et vérifiez que Docker est installé.
  2. Exécutez docker login -u USERNAME.
  3. Entrez votre mot de passe Docker Hub.
  4. Exécutez cat ~/.docker/config.json.
  5. Exécutez la commande suivante pour créer un secret générique nommé regcred qui inclut vos informations d'identification d'accès Docker Hub.
    kubectl create secret generic regcred \
        --from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
        --type=kubernetes.io/dockerconfigjson
    
    Vous devez voir secret/regcred created.
  6. Vérifiez le secret.
    kubectl get secrets
    
    NAME                  TYPE                                  DATA   AGE
    default-token-w7wqk   kubernetes.io/service-account-token   3      6h28m
    regcred               kubernetes.io/dockerconfigjson        1      3h22m
    
    Référencez le secret regcred dans le fichier YAML.
  7. Recherchez le secret regcred dans la section imagePullSecrets de la spécification d'espace ou de déploiement pour les images de conteneur.
    Par exemple :
    apiVersion: v1
    kind: Pod
    metadata:
      name: ping-pod
      namespace: default
    spec:
      containers:
      - image: busybox:1.34
        name: busybox
        command: ["ping", "-c"]
        args: ["1", "8.8.8.8"]
      imagePullSecrets:
      - name: regcred
      restartPolicy: Never