У меня есть локальный кластер кубернетов (minikube), который пытается загрузить изображения из моего локального репозитория Docker.

Когда я делаю «образы докеров», я получаю:

cluster.local/container-images/app-shiny-app-validation-app-converter            1.6.9
cluster.local/container-images/app-shiny-app-validation                          1.6.9

Учитывая, что я знаю, что эти изображения есть, я запускаю несколько команд управления, которые используют эти изображения, но получаю следующую ошибку:

Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   BackOff    66s (x2 over 2m12s)  kubelet            Back-off pulling image "cluster.local/container-images/app-shiny-app-validation-app-converter:1.6.9"
  Warning  Failed     66s (x2 over 2m12s)  kubelet            Error: ImagePullBackOff
  Normal   Pulling    51s (x3 over 3m24s)  kubelet            Pulling image "cluster.local/container-images/app-shiny-app-validation-app-converter:1.6.9"
  Warning  Failed     11s (x3 over 2m13s)  kubelet            Failed to pull image "cluster.local/container-images/app-shiny-app-validation-app-converter:1.6.9": rpc error: code = Unknown desc = Error response from daemon: Get https://cluster.local/v2/: dial tcp: lookup cluster.local: Temporary failure in name resolution
  Warning  Failed     11s (x3 over 2m13s)  kubelet            Error: ErrImagePull

Кто-нибудь знает, как я могу это исправить? Кажется, самая большая проблема - Get https://cluster.local/v2/: dial tcp: lookup cluster.local: Temporary failure in name resolution

1
Mike K. 13 Сен 2021 в 17:50

2 ответа

Лучший ответ

Поскольку minikube уже используется, вы можете обратиться к их документации. Если используется imagePullPolicy, рекомендуется установить его на Never. Если установлено значение Always, он будет пытаться связаться с сетью и вытащить ее из сети.

Из документов: https://minikube.sigs.k8s.io/docs/handbook/ толкает / «Совет 1. Не забудьте отключить imagePullPolicy: Always (используйте imagePullPolicy: IfNotPresent или imagePullPolicy: Never) в вашем yaml-файле. В противном случае Kubernetes не будет использовать ваш образ локальной сборки, и он будет извлекать из сети».

2
arctic 13 Сен 2021 в 22:14
  1. Добавьте cluster.local в свой файл /etc/hosts на всех ваших кубернетских узлах.
192.168.12.34 cluster.local
  1. Проверьте, можете ли вы войти в реестр с помощью docker login cluster.local
  2. Если в вашем реестре есть самозаверяющие сертификаты, скопируйте ключ cluster.local.crt на все рабочие узлы Kubernetes /etc/docker/certs.d/cluster.local/ca.crt
2
Sachith Muhandiram 13 Сен 2021 в 15:07