Is there a way to configure docker hub pro user in kubernetes? Is there a way to configure docker hub pro user in kubernetes? kubernetes kubernetes

Is there a way to configure docker hub pro user in kubernetes?


Kubernetes implements this using image pull secrets. This doc does a better job at walking through the process.

Using the Docker config.json:

kubectl create secret generic regcred \    --from-file=.dockerconfigjson=<path/to/.docker/config.json> \    --type=kubernetes.io/dockerconfigjson

Or you can pass the settings directly:

kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

Then use those secrets in your pod definitions:

apiVersion: v1kind: Podmetadata:  name: foo  namespace: awesomeappsspec:  containers:    - name: foo      image: janedoe/awesomeapp:v1  imagePullSecrets:    - name: myregistrykey

Or to use the secret at a user level (Add image pull secret to service account)

  1. kubectl get serviceaccounts default -o yaml > ./sa.yaml

  2. open the sa.yaml file, delete line with key resourceVersion, add lines with imagePullSecrets: and save.

    kind: ServiceAccountmetadata:  creationTimestamp: "2020-11-22T21:41:53Z"  name: default  namespace: default  selfLink: /api/v1/namespaces/default/serviceaccounts/default  uid: afad07eb-f58e-4012-9ccf-0ac9762981d5secrets:- name: default-token-gkmp7imagePullSecrets:- name: regcred
  3. Finally replace the serviceaccount with the new updated sa.yaml filekubectl replace serviceaccount default -f ./sa.yaml


We use docker-registry as a proxy cache in our Kubernetes clusters, Docker Hub credentials may be set in the configuration. Docker daemons on Kubernetes nodes are configured to use the proxy by setting registry-mirror in /etc/docker/daemon.json.

This way, you do not need to modify any Kubernetes manifest to include pull secrets. Our complete setup is described in a blog post.


I ran into the same problem as OP. It turns out, putting docker credential files for kubelet works for kubernetes version 1.18 or higher. I have tested here and can confirm that kubelet 1.18 picks up the config.json placed in /var/lib/kubelet correctly and authenticates the docker registry.