Kubernetes Minikube не запускается за корпоративным прокси (Windows)
Я пытаюсь запустить миникуб за корпоративным прокси на Windows-машине. Я использую следующую команду запуска
minikube start --alsologtostderr --vm-driver="hyperv" --docker-env http_proxy=http://proxyabc.uk.sample.com:3128 --docker-env https_proxy=http://proxyabc.uk.sample.com:3128 --docker-env "NO_PROXY=localhost,127.0.0.1,192.168.211.157:8443"
версия миникуба = 0.28.0
версия kubectl = 1.9.2
Я также попытался установить переменную no proxy перед командой
set NO_PROXY="$NO_PROXY,192.168.211.158/8443"
Но каждый раз, когда я запускаю команду "minikube start", я получаю следующее сообщение
Ошибка запуска кластера: истекло время ожидания для отмены метки мастера: получение узла мини-куба: Получить https://192.168.211.155:8443/api/v1/nodes/minikube: запрещено
Я уже пробовал решения в
https://github.com/kubernetes/minikube/issues/2706 https://github.com/kubernetes/minikube/issues/2363
1 ответ
set NO_PROXY="$NO_PROXY,192.168.211.158/8443"
Эта косая черта - это не порт, а CIDR, который определяет, сколько IP-адресов следует исключить из прокси-сервера. Отдельно кажется, что вы каким-то образом включили двоеточие в тот, который предоставляется --docker-env
что я тоже считаю неправильным.
И, $NO_PROXY,
Синтаксис в вашем set
Команда также неверна, так как это unix-y способ ссылки на переменные окружения - вы бы хотели set NO_PROXY="%NO_PROXY%,...
просто будьте осторожны, так как если у вас уже нет переменной с именем NO_PROXY
, тот set
расширится, чтобы прочитать set NO_PROXY=",192.168.etcetc"
я не уверен, что это правильный синтаксис для этой переменной.
У меня были проблемы с моим рабочим Mac, но принципы схожи. Документация достаточно проста, чтобы заставить MiniKube указывать на корпоративный прокси-сервер, но она ожидает, что вы будете аутентифицированным пользователем. В моем случае я запускаю tinyproxy на моей локальной машине, которая прослушивает порт 8888, а затем отправляет все, что предназначено для внешнего мира, через cntlm на порт 3128. Чтобы это работало, MiniKube должен связаться с моим mac (его хостом), что достигается с адресом 10.0.2.2 примерно так:--docker-env HTTP_PROXY=http://10.0.2.2:8888 --docker-env HTTPS_PROXY=http://10.0.2.2:8888
У меня также были проблемы с "x509: сертификат, подписанный неизвестным полномочным лицом" в командах вытягивания докера в миникубе, которые я решил с помощью --insecure-registry
аргумент. Вся моя команда запуска minikube выглядит так, что [наконец-то] работает для меня:
minikube start --docker-env HTTP_PROXY=http://10.0.2.2:8888 --docker-env HTTPS_PROXY=http://10.0.2.2:8888 --docker-env NO_PROXY=10.0.2.2,192.168.99.100 --insecure-registry="k8s.gcr.io"