Pytanie ImagePullBackOff lokalnego repozytorium z Minikube


Próbuję użyć minikube i kitematic do testowania kubernetes na moim lokalnym komputerze. Jednak nie udało się pobrać obrazu w lokalnym repozytorium (ImagePullBackOff).

Próbuję rozwiązać ten problem: Nie można pobrać obrazu doka z prywatnego repo podczas korzystania z Minikube

Ale nie mam /etc/init.d/docker, myślę, że to ze względu na kinematycznych? (Jestem na OS X)

Jakieś pomysły ?

Dziękuję Ci

EDYTOWAĆ :

zainstalowałem https://github.com/docker/docker-registry, i

docker tag local-image-build localhost:5000/local-image-build

docker push localhost:5000/local-image-build

Mój kubernetes yaml zawiera:

spec:
  containers:
  - name: backend-nginx
    image: localhost:5000/local-image-build:latest
    imagePullPolicy: Always

Ale nadal nie działa ... Dzienniki:

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

EDYCJA 2:

Nie wiem, czy jestem na dobrej drodze, ale stwierdzam:

http://kubernetes.io/docs/user-guide/images/

Ale nie wiem, co jest moim DOCKER_USER ...

kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

EDYTUJ 3

teraz mam na moim pod:

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"

Pomóż mi, zwariowałem.

EDYTUJ 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"

Dodałem :

EXTRA_ARGS='
    --label provider=virtualbox
    --insecure-registry=192.168.99.101:5000

do mojej konfiguracji dokera, ale nadal nie działa, ta sama wiadomość ....

Przy okazji, zmieniłem mój yaml:

 spec:
      containers:
      - name: backend-nginx
        image: 192.168.99.101:5000/local-image-build:latest
        imagePullPolicy: Always

I uruchamiam mój rejestr w ten sposób:

docker run -d -p 5000:5000 --restart=always --name myregistry registry:2

19
2017-08-16 15:45


pochodzenie


Jesteś na OS X? - manojlds
tak, jestem na OS X - Xero
Czy rzeczywiście uruchomiłeś rejestr? Polecenie, aby to zrobić jest docker run -d -p 5000:5000 --name registry registry:2 - Nebril
A co z używaniem rejestru dokerów w rejestrze minikube? - paul


Odpowiedzi:


Myślę, że rozwiązałem, robiąc

minikube start --vm-driver="virtualbox" --insecure-registry="$REG_IP":80

zamiast po prostu

minikube start

Źródło


8
2017-09-05 13:14



co to jest $ REG_IP? - paul
REG_IP =docker-machine ip registry - Xero


Użyj rejestru dokowanego minikube zamiast lokalnego okna dokowanego

https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/#create-a-docker-container-image

Ustaw okno dokowane, aby wskazywało minikube

eval $(minikube docker-env)

Prześlij do okna dokowanego minikube

docker build -t hello-node:v1 .

Ustaw wdrożenie, aby nie ciągnąć IfNotPresent

Domyślnie K8S jest ustawione na "Zawsze" Zmień na "IfNotPresent"

imagePullPolicy: IfNotPresent

Powiązany problem


5
2018-03-25 17:41



dzięki, szybkie i łatwe (moim zdaniem, prawidłowe rozwiązanie dla zadanego problemu). btw, pierwszy krok (eval) nie jest wymagany, jeśli minikube zaczyna się od "--vm-driver = none". - Sateesh


Dodanie --insecure-registry = "$ REG_IP": 80 wydaje się nie działać dla mnie.

Muszę użyć odpowiedzi wlredeye'a na Nie można pobrać obrazu doka z prywatnego repo podczas korzystania z Minikube aby to działało:

W przypadku rejestru http ta procedura działa dla mnie:

  1. minikube ssh
  2. edit / var / lib / boot2docker / profile i dodaj do $ EXTRA_ARGS --insecure-registry 192.168.99.1(your local machine's IP):5000
  3. zrestartuj demona docker sudo /etc/init.d/docker restart
  4. Sprawdź, czy możesz uzyskać dostęp do rejestru dokowania curl -s -S http://192.168.99.1/v2/_catalog

To jest wersja minikube: v0.14.0


1
2017-12-19 05:16



Dwa pytania na ten temat. Przez "adres IP komputera lokalnego" rozumiesz "adres IP rejestru", prawda? Również jak dokładnie czy "dodajesz" do tej zmiennej. - John Carrell


Najpierw musisz uruchomić lokalny rejestr, wydaje się, że to zrobiłeś.

docker run -d -p 5000:5000 --restart=always --name myregistry registry:2

Możesz sprawdzić swój minikube IP według ifconfig

Powinno być wyjście (po uruchomieniu minikube za pomocą wirtualnej skrzynki jako VMdriver) wygląda tak:

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)

Za pomocą

minikube start --insecure-registry=192.168.99.1:5000

Możesz sprawdzić, czy możesz przeciągnąć własne obrazy po prostu (w minikubie)

docker pull 192.168.99.1:5000/your_own_repo/your_own_images

Mam nadzieję, że to może pomóc.


0
2018-03-03 07:46





Mógłbym rozwiązać problem w bardzo dziwny sposób:

  • Usuń klaster minikube minikube delete
  • Usuń pliki konfiguracyjne minikube rm -rf ~/.minikube
  • Uruchom minikube minikube start

0
2018-05-20 21:13