Warum erhalte ich in dieser Kubernetes-Implementierung einen ErrImagePull-Fehler?

9

Ich versuche, eine lokale Kubernetes-Bereitstellung mit Minikube, Docker Registry und einem Demo-Knotenprojekt zu erstellen.

Als erstes habe ich Docker v 1.12.3 installiert, dann Minikube v0.12.2.

Dann habe ich einen Docker-Registry-Container erstellt, indem ich diesen Befehl ausgeführt habe (über dieses Tutorial , nur den ersten Befehl unten ausführen <) / p> %Vor%

Als nächstes habe ich diesen minikube-Befehl ausgeführt, um einen lokalen kubernetes-Cluster zu erstellen:

%Vor%

Meine Projektstruktur sieht so aus:

%Vor%

und meine Dockerfile sieht so aus:

%Vor%

Dann habe ich mein eigenes Docker-Image erstellt und es in mein privates Repository verschoben:

%Vor%

Dann habe ich versucht, eine Deployment mit diesem Befehl auszuführen:

%Vor%

Aber dann bekomme ich das:

%Vor%

Ich denke, dass ich eine Art von Registrierungsauthentifizierung für Docker verpasse, aber während ich google, kann ich nichts finden, was ich verstehe. Könnte mir bitte jemand in die richtige Richtung zeigen?

Bearbeiten

Nachdem Sie ssh verwendet haben, um auf bash auf der kubernetes-VM zuzugreifen, und ziehen Sie das hello-node -Bild mithilfe des folgenden Befehls aus meiner privaten Registrierung:

%Vor%

Ist localhost:5000 die korrekte Adresse, die innerhalb der kubernetes-Host-VM verwendet werden soll?

    
Nathan Jones 15.11.2016, 01:04
quelle

1 Antwort

15

Es sieht so aus, als ob Sie die Registrierung auf dem Host ausführen. In der Tat müssen Sie die Registrierung in der VM ausführen. Sie können Ihren Docker-Client auf den Docker-Daemon in der Minikube-VM verweisen, indem Sie zuerst diesen Befehl ausführen %Code% in deiner Schale.

Dann können Sie den Befehl docker build auf Ihrem Host ausführen, aber er wird innerhalb der VM erstellt.

Wenn Ihr Ziel lediglich darin besteht, die lokale Version Ihrer Bilder auszuführen, sollten Sie eval $(minikube docker-env) so ausführen, dass sie auf den Docker-Dämon in Ihrer VM verweist, und eval $(minikube docker-env) in Ihrem Pod-YAML festlegen. Dann verwenden kubernetes ein lokal erstelltes Bild, falls verfügbar.

    
Matt Rickard 15.11.2016, 05:05
quelle