#docker #kubernetes #docker-registry #minikube
#docker #kubernetes #docker-registry #minikube
Вопрос:
Я чувствую себя здесь довольно глупо. Я хочу, чтобы K8s извлекал образы Docker из локального реестра, чтобы обеспечить максимально быстрый цикл разработки.
Я настроил локальный реестр в соответствии с инструкциями и использую небезопасный реестр. Я загрузил в него изображения и подтвердил, что они находятся в реестре, заглянув в него, используя расширение Docker от VS Code:
Я действительно не знал, использовать ли localhost
, $MACHINE_NAME
или $LOCAL_IP_ADDRESS
, поэтому я сделал все три.
Я могу успешно извлечь изображение из этих реестров через командную строку. Однако, когда K8s (запущенный через minikube) пытается извлечь данные, происходит сбой:
Не удалось извлечь изображение «localhost: 5000 / service1»: ошибка rpc: код = неизвестен desc = Ответ с ошибкой от daemon: Gethttp://localhost:5000/v2 /: набрать tcp 127.0.0.1: 5000: подключиться: соединение отклонено
Почему это и как я могу исправить?
Комментарии:
1. вместо использования
localhost
вы должны использовать IP-адрес, который сопоставляет minikube с localhost хост-компьютера. Обычно это10.0.2.2
или10.0.2.15
зависит от вашего драйвера виртуальной машины. Вы можете определить, используя запускifconfig
внутри minikube, и проверить ip в форме10.0.2.*
Эта проблема с github может помочь: github.com/kubernetes/minikube/issues/2735
Ответ №1:
Возможно, вы захотите прочитать этот блог, в котором содержатся отличные подробности о том, как настроить реестр на minikube.
https://blog.hasura.io/sharing-a-local-registry-for-minikube-37c7240d0615/
Идея здесь заключается в том, чтобы демон docker на minikube мог извлекать данные из реестра с именем localhost: 5000. Это достигается фактическим запуском реестра на minikube, а затем настройкой прокси-сервера таким образом, чтобы порт 5000 виртуальной машины minikube соответствовал порту 5000 реестра.