Был заинтересован в вашем случае, даже воспроизведен с теми же версиями docker и k8s ... Использовал официальную Настройте Docker для использования прокси-сервера * Документация 1002 * для установки прокси для docker в ~/.docker/config.json
Настройка клиента Docker На клиенте Docker создайте или отредактируйте файл ~ / .docker / config. json в домашнем каталоге пользователя, запускающего контейнеры. Добавьте JSON, например следующее, заменив тип прокси на httpsProxy или ftpProxy, если необходимо, и подставив адрес и порт прокси-сервера. Вы можете настроить несколько прокси-серверов одновременно.
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:3001",
"httpsProxy": "http://127.0.0.1:3001",
"noProxy": "*.test.example.com,.example2.com"
}
}
}
Сохраните файл. Когда вы создаете или запускаете новые контейнеры, переменные среды устанавливаются автоматически внутри контейнера.
Моя конфигурация была:
{
"proxies": {
"default": {
"httpProxy": "http://user:pass@my.proxy.domain.com",
"httpsProxy": "http://user:pass@my.proxy.domain.com"
}
}
}
Итак, в основном после настройки выше в ~/.docker/config.json
, прокси-сервер будет автоматически использоваться при запуске новых контейнеров.
В моем случае это сработало, я могу проверить это, используя cli и создав, например, контейнер busybox.
$ docker container run --rm busybox env
HTTP_PROXY=http://user:pass@my.proxy.domain.com
http_proxy=http://user:pass@my.proxy.domain.com
HTTPS_PROXY=http://user:pass@my.proxy.domain.com
https_proxy=http://user:pass@my.proxy.domain.com
HOME=/root
Пожалуйста имейте в виду, что должны быть проблемы со следующей частью:
На клиенте Docker создайте или отредактируйте файл ~ / .docker / config. json в домашнем каталоге пользователя, запускающего контейнеры .
Будьте осторожны с USER
, который вы используете, и убедитесь, что ваш HOME
env настроен на правильный.
Ссылки на github почти аналогичная проблема и способы ее решения:
1) https://github.com/kubernetes/kubernetes/issues/45487#issuecomment -312042754
Я немного углубился в это, и проблема для меня заключалась в том, что Переменная среды HOME была пуста, когда kubelet был запущен как ystemd unit. Хотя это не задокументировано таким образом, загрузка конфигурации из /root/docker/config.json или /root/.dockercfg требует, чтобы HOME = / root
Настройка User = root в [ Сервисная декларация] исправила это для меня.
2) https://github.com/kubernetes/kubernetes/issues/45487#issuecomment -378116386
3) https://github.com/kubernetes/kubernetes/issues/45487#issuecomment -464516064 (частичная информация)
(3) vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Add User=root
File looks kind of like this
[Service]
User=root
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
(4) Reload and restart kubelet
systemctl daemon-reload
systemctl restart kubelet
Именно в моем случае с нуля все заработало нормально. Так что прочтите внимательно и отметьте пункты, которые я выделил. Скорее всего, у вас очень крошечная проблема / опечатка, потому что она работает должным образом.
Надеюсь, мое расследование вам поможет