Изображение вытягивается microk8s, застрявшее в состоянии ContainerCreating - PullRequest
3 голосов
/ 09 июня 2019

Как описано в документ (на основе на ).

Я нахожусь на Ubuntu в качестве хоста ОС.

docker --version

Версия Docker 18.09.6, сборка 481bc77

microk8s 1.14/beta

Включить локальный реестр для microk2s:

microk8s.enable registry

Проверка:

watch microk8s.kubectl get all --all-namespaces

контейнер-реестр pod / registry-577986746b-v8xqc 1/1 Запуск 0 36m

Тогда:

Редактировать:

sudo vim /etc/docker/daemon.json

Добавить это содержание:

{
  "insecure-registries" : ["127.0.0.1:32000"]
}

Перезагрузка:

sudo systemctl restart docker

Двойнойпроверка, посмотрите, применяется ли небезопасный:

docker info | grep -A 2 Insecure
Insecure Registries:
 127.0.0.1:32000
 127.0.0.0/8
WARNING: No swap limit support

Метка:

docker tag my-registry/my-services/my-service:0.0.1-SNAPSHOT 127.0.0.1:32000/my-service

Проверка:

docker images

127.0.0.1: 32000 / my-service последнее e68f8a7e4675 19 часов назад 540MB

Pushing:

docker push 127.0.01:32000/my-service

Я вижу свое изображение здесь: http://127.0.0.1:32000/v2/_catalog

В deployment-local.yml У меня есть, теперь правильное изображение:

...spec:
  containers:
    - name: my-service-backend
      image: 127.0.0.1:32000/my-service
      imagePullPolicy: Always ...

Затем применяется:

envsubst < ./.local/deployment-local.yml | microk8s.kubectl apply -f -

Я вижу: ContainerCreating

От: microk8s.kubectl describe pods my-service-deployment-f85d5dcd5-cmd5

В разделе «События»:

Events:
  Type     Reason     Age                 From                     Message
  ----     ------     ----                ----                     -------
  Normal   Scheduled  107s                default-scheduler        Successfully assigned default/my-service-deployment-f85d5dcd5-z75tr to my-desktop
  Normal   Pulling    25s (x4 over 106s)  kubelet, my-desktop  Pulling image "127.0.0.1:32000/my-service"
  Warning  Failed     25s (x4 over 106s)  kubelet, my-desktop  Failed to pull image "127.0.0.1:32000/my-service": rpc error: code = Unknown desc = failed to resolve image "127.0.0.1:32000/my-service:latest": no available registry endpoint: failed to do request: Head https://127.0.0.1:32000/v2/my-service/manifests/latest: http: server gave HTTP response to HTTPS client
  Warning  Failed     25s (x4 over 106s)  kubelet, my-desktop  Error: ErrImagePull
  Normal   BackOff    10s (x5 over 105s)  kubelet, my-desktop  Back-off pulling image "127.0.0.1:32000/my-service"
  Warning  Failed     10s (x5 over 105s)  kubelet, my-desktop  Error: ImagePullBackOff

Похоже, что моя служба застряла там.

В: В чем может быть причина?

ОБНОВЛЕНИЕ: поменял все на localhost помогло, то есть теперь я мог видеть в браузере: http://localhost:32000/v2/_catalog.

{"repositories":["my-service"]}

Но это работало только в Firefox ... странно.В Chrome ожидает ..

Все еще:

Events:
  Type     Reason          Age                    From                    Message
  ----     ------          ----                   ----                    -------
  Normal   Scheduled       161m                   default-scheduler       Successfully assigned default/my-service-deployment-6d4c5587df-72xvd to my-laptop
  Normal   Pulling         160m (x4 over 161m)    kubelet, my-laptop  Pulling image "localhost/my-service"
  Warning  Failed          160m (x4 over 161m)    kubelet, my-laptop  Failed to pull image "localhost/my-service": rpc error: code = Unknown desc = failed to resolve image "localhost/my-service:latest": no available registry endpoint: failed to do request: Head https://localhost/v2/my-service/manifests/latest: dial tcp 127.0.0.1:443: connect: connection refused
  Warning  Failed          160m (x4 over 161m)    kubelet, my-laptop  Error: ErrImagePull
  Warning  Failed          159m (x6 over 161m)    kubelet, my-laptop  Error: ImagePullBackOff
  Normal   BackOff         131m (x132 over 161m)  kubelet, my-laptop  Back-off pulling image "localhost/my-service"
  Normal   SandboxChanged  22m                    kubelet, my-laptop  Pod sandbox changed, it will be killed and re-created.
  Normal   Pulling         21m (x4 over 22m)      kubelet, my-laptop  Pulling image "localhost/my-service"
  Warning  Failed          21m (x4 over 22m)      kubelet, my-laptop  Failed to pull image "localhost/my-service": rpc error: code = Unknown desc = failed to resolve image "localhost/my-service:latest": no available registry endpoint: failed to do request: Head https://localhost/v2/my-service/manifests/latest: dial tcp 127.0.0.1:443: connect: connection refused
  Warning  Failed          21m (x4 over 22m)      kubelet, my-laptop  Error: ErrImagePull
  Warning  Failed          20m (x6 over 22m)      kubelet, my-laptop  Error: ImagePullBackOff
  Normal   BackOff         2m22s (x87 over 22m)   kubelet, my-laptop  Back-off pulling image "localhost/my-service"

Кажется, он пытается подключиться по https ..

-

Ok .. имелдобавить порт для изображения yml: часть.приму ответ ниже.Спасибо.

1 Ответ

1 голос
/ 11 июня 2019

В microk8s есть большая разница между localhost и 127.0.0.1 . Как вы упомянули, вы использовали этот стек и пользователь использовал localhost .

Основная проблема здесь - ошибка no available registry endpoint: failed to do request:. Это означает, что microk8 не может найти конечную точку.

Если вы выполните команду commend ниже, у вас будет тот же вывод

$ cat /var/snap/microk8s/current/args/containerd-template.toml | grep endpoint

endpoint = ["https://registry-1.docker.io"]
endpoint = ["http://localhost:32000"]

Как вы видите в microk8s, конечная точка localhost не 127.0.0.1

Пожалуйста, измените изображение в deploy-local.yaml

...spec:
  containers:
    - name: my-service-backend
      image: localhost/my-service
      imagePullPolicy: Always ...

Дайте мне знать, если у вас возникнут какие-либо другие проблемы.

В моем случае мне не нужно было снова метить и выдвигать изображение с помощью localhost, требовалось только изменение в YAML.

...