Ich versuche, Minikube und Kitematic zum Testen von Kuberneten auf meinem lokalen Computer zu verwenden. Kubernetes können jedoch kein Image in meinem lokalen Repository (ImagePullBackOff) abrufen.
Ich versuche das Problem mit diesem Problem zu lösen: Das Docker-Bild kann nicht aus dem privaten Repo gezogen werden, wenn Minikube
Aber ich habe kein /etc/init.d/docker, ich glaube es liegt an der Kinematik? (Ich bin auf OS X)
EDIT:
Ich habe https://github.com/docker/docker-registry und installiert
docker tag local-image-build localhost:5000/local-image-build
docker Push localhost:5000/local-image-build
Mein kubernetes yaml enthält:
spec:
containers:
- name: backend-nginx
image: localhost:5000/local-image-build:latest
imagePullPolicy: Always
Aber es funktioniert immer noch nicht ... Protokolle:
Error syncing pod, skipping: failed to "StartContainer"
for "backend-nginx" with ErrImagePull: "Error while pulling image:
Get http://127.0.0.1:5000/v1/repositories/local-image-build/images:
dial tcp 127.0.0.1:5000: getsockopt: connection refused
EDIT 2:
Ich weiß nicht, ob ich auf gutem Weg bin, aber ich finde das:
http://kubernetes.io/docs/user-guide/images/
Aber ich weiß nicht was mein DOCKER_USER ist ...
kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
EDIT 3
jetzt bin ich auf meine schote gekommen:
Failed to pull image "local-image-build:latest": Error: image library/local-image-build not found
Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error: image library/local-image-build not found"
Hilf mir, ich werde verrückt.
EDIT 4
Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error response from daemon: Get https://192.168.99.101:5000/v1/_ping: tls: oversized record received with length 20527"
Ich fügte hinzu :
EXTRA_ARGS='
--label provider=virtualbox
--insecure-registry=192.168.99.101:5000
zu meiner docker config, aber es funktioniert immer noch nicht die gleiche nachricht ....
Ich habe übrigens mein yaml gewechselt:
spec:
containers:
- name: backend-nginx
image: 192.168.99.101:5000/local-image-build:latest
imagePullPolicy: Always
Und ich führe meine Registry so aus:
docker run -d -p 5000:5000 --restart=always --name myregistry registry:2
Ich glaube, ich habe es gelöst
minikube start --vm-driver="virtualbox" --insecure-registry="$REG_IP":80
statt nur
minikube start
$ REG_IP ist:
REG_IP=docker-machine ip registry
Verwenden Sie die minikube docker-Registrierung anstelle Ihres lokalen Dockers
eval $(minikube docker-env)
docker build -t hello-node:v1 .
K8S ist standardmäßig auf "Immer" eingestellt. Wechseln Sie zu "IfNotPresent".
imagePullPolicy: IfNotPresent
Hinzufügen von --insecure-registry = "$ REG_IP": 80 scheint für mich nicht zu funktionieren.
Ich muss die Antwort von wlredeye bei verwenden. Das Docker-Image kann nicht aus dem privaten Repo gezogen werden, wenn Minikube Verwendet wird, damit es funktioniert:
Für eine http-Registrierung funktionieren diese Schritte für mich:
--insecure-registry 192.168.99.1(your local machine's IP):5000
hinzu.Sudo /etc/init.d/docker restart
curl -s -S http://192.168.99.1/v2/_catalog
Dies ist die Minikube-Version: v0.14.0
Zuerst müssen Sie eine lokale Registrierung starten, anscheinend haben Sie es getan.
docker run -d -p 5000:5000 --restart=always --name myregistry registry:2
Sie können Ihre Minikube-IP-Adresse überprüfen, indem Sie ifconfig
verwenden.
Es sollte ausgegeben werden (nachdem minikube mit virtualbox als VMdriver gestartet wurde):
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:192.168.99.1 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:515 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:86256 (86.2 KB)
Verwenden
minikube start --insecure-registry=192.168.99.1:5000
Sie können tatsächlich prüfen, ob Sie Ihre eigenen Bilder einfach per (innerhalb von Minikube) ziehen können.
docker pull 192.168.99.1:5000/your_own_repo/your_own_images
Hoffe das könnte helfen.
Ich könnte das Problem auf eine sehr seltsame Weise lösen:
minikube delete
rm -rf ~/.minikube
minikube start