Creare un segreto e un riferimento alle credenziali del registro nelle specifiche del pod e della distribuzione in modo da poter estrarre le immagini del container senza errori.

Docker Hub richiede un account da cui eseguire il pull di immagini. È possibile creare un segreto Kubernetes con le credenziali Docker Hub e fare riferimento a questo segreto nelle specifiche del pod e della distribuzione.

Questo approccio può essere utilizzato anche per altri registri privati.

Prerequisiti

Installare Docker su una macchina client Ubuntu. Vedere https://docs.docker.com/engine/install/ubuntu/.

Procedura

  1. Eseguire docker version e verificare che Docker sia installato.
  2. Eseguire docker login -u USERNAME.
  3. Immettere la password di Docker Hub.
  4. Eseguire cat ~/.docker/config.json.
  5. Eseguire il comando seguente per creare un segreto generico denominato regcred che includa le credenziali di accesso di Docker Hub.
    kubectl create secret generic regcred \
        --from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
        --type=kubernetes.io/dockerconfigjson
    
    Dovrebbero comparire secret/regcred created.
  6. Verificare il segreto.
    kubectl get secrets
    
    NAME                  TYPE                                  DATA   AGE
    default-token-w7wqk   kubernetes.io/service-account-token   3      6h28m
    regcred               kubernetes.io/dockerconfigjson        1      3h22m
    
    Fare riferimento al segreto regcred nel file YAML.
  7. Fare riferimento al segreto regcred nella sezione imagePullSecrets della specifica del pod o della distribuzione per le immagini del container.
    Ad esempio:
    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