Cree un secreto de credencial de registro y una referencia en las especificaciones de pods y de implementación para poder extraer imágenes de contenedor sin errores.

Docker Hub requiere una cuenta desde la que extraer imágenes. Puede crear un secreto de Kubernetes con sus credenciales de Docker Hub y hacer referencia a este secreto en los pods y las especificaciones de implementación.

Este enfoque también se puede utilizar para otros registros privados.

Requisitos previos

Instale Docker en una máquina cliente Ubuntu. Consulte https://docs.docker.com/engine/install/ubuntu/.

Procedimiento

  1. Ejecute docker version y compruebe que Docker esté instalado.
  2. Ejecute docker login -u USERNAME.
  3. Introduzca la contraseña de Docker Hub.
  4. Ejecute cat ~/.docker/config.json.
  5. Ejecute el siguiente comando para crear un secreto genérico denominado regcred que incluya las credenciales de acceso de Docker Hub.
    kubectl create secret generic regcred \
        --from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
        --type=kubernetes.io/dockerconfigjson
    
    Debería ver secret/regcred created.
  6. Compruebe el secreto.
    kubectl get secrets
    
    NAME                  TYPE                                  DATA   AGE
    default-token-w7wqk   kubernetes.io/service-account-token   3      6h28m
    regcred               kubernetes.io/dockerconfigjson        1      3h22m
    
    Haga referencia al secreto regcred en el YAML.
  7. Haga referencia al secreto regcred en la sección imagePullSecrets de la especificación de implementación o de pod para las imágenes de contenedor.
    Por ejemplo:
    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