webentwicklung-frage-antwort-db.com.de

So greifen Sie über Kubernetes on Vagrant auf das private Docker Hub-Repository zu

Ich kann nicht von meinem privaten Docker Hub-Repository in mein lokales Kubernetes-Setup auf Vagrant ziehen:

Container "hellonode" im Pod "hellonode-n1hox" wartet auf den Start: Bild kann nicht gezogen werden

Fehler beim Abrufen des Bildes "Benutzername/Hellonode": Fehler: Bild Benutzername/Hellonode: Neueste nicht gefunden

Ich habe Kubernetes lokal über Vagrant wie here beschrieben eingerichtet und ein Geheimnis namens "dockerhub" mit kubectl erstellt. Erstelle eine geheime Docker-Registry. Dockerhub --docker-server = https: //registry.hub. docker.com/ --docker-username = username --docker-password = ... --docker-email = ... was ich als Image-Pull-Secret angegeben habe.

Ich verwende Kubernetes 1.2.0.

19
André

So laden Sie ein privates, von DockerHub gehostetes Image aus einer Kubernetes YAML:

Führen Sie diese Befehle aus:

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

Wenn Ihr Benutzername in DockerHub DOCKER_USER lautet und Ihr privates Repo PRIVATE_REPO_NAME heißt und das Bild, das Sie ziehen möchten, als latest markiert ist, erstellen Sie diese example.yaml-Datei:

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

Dann renne:

kubectl create -f example.yaml
59
Rich Kuzsma

K8 Secret erstellen:

apiVersion: v1
kind: Secret
metadata:
  name: repositorySecretKey
data:
  .dockerconfigjson: <base64 encoded docker auth config>
type: kubernetes.io/dockerconfigjson

Dann erwähnen Sie in pod oder rc config das Geheimnis. Beispiel:

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-Konfig

{
   "https://quay.io": {
    "email": ".",
    "auth": "<base64 encoded auth token>"
  }
}

Oder 

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

Befolgen Sie diese Anweisungen unter So konfigurieren Sie Knoten für die Authentifizierung bei einem privaten Repository , um die Kubelets so zu konfigurieren, dass Docker Ihre Anmeldeinformationen verwendet, oder folgen Sie der + Lösung von Phagun Baya mit imagePullSecrets für Pods.

0
EricM