Как установить параметры прокси (переменные http_proxy) для кластера kubernetes (v1.11.2)? - PullRequest
0 голосов
/ 06 ноября 2018

Я настроил кластер Kubernetes, который каким-то образом не может иметь подключение к Интернету из-за организационных политик. Сейчас есть несколько сервисов, с которыми мне нужно общаться через интернет. Чтобы решить эту проблему, я настроил прямой прокси (Squid), который находится за пределами кластера K8s. Все узлы моего кластера K8s могут обращаться к "google.com" с помощью прямого прокси. Но я не могу заставить мои модули общаться через этот прокси.

Я установил следующую переменную на всех основных и рабочих узлах:

export http_proxy="http://10.x.x.x:3128"
export https_proxy="https://10.x.x.x:3128"

Я могу свернуть google.com с главного и рабочего узлов. Но когда я присоединяюсь к своему контейнеру, я замечаю, что нет переменных http_proxy и https_proxy. и он не может выполнить успешный завиток.

Сеть моих модулей и сервисов отличается от сети моей виртуальной машины

pod-network-cidr=192.167.0.0/16 
service-cidr 192.168.0.0/16 

и моя виртуальная сеть выглядит так:

Master  -> 10.2.2.40
Worker1 -> 10.2.2.41
Worker2 -> 10.2.2.42
Worker3 -> 10.2.2.43

И мой прямой прокси работает на

Forward Proxy: 10.5.2.30

Я использую kubernetes версии v1.11.2. Любая помощь здесь, например, где я должен поместить мой параметр http_proxy для кластера kubernetes, чтобы сделать его эффективным для всех модулей и служб?

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

Итак, я понял, что для установки прокси для определенных контейнеров, установите переменную env в Dockerfile.

ENV HTTP_PROXY http://10.x.x.x:PORT
0 голосов
/ 29 мая 2019

Для службы Docker используйте файлы настроек systemd:

Создать файл:

/etc/systemd/system/docker.service.d/http-proxy.conf

С содержанием:

[Service]
Environment="HTTP_PROXY=http://10.x.x.x:3128"
Environment="HTTPS_PROXY=http://10.x.x.x:3128"

(вы также можете включить переменные NO_PROXY)

Вам потребуется перезагрузить systemctl и перезапустить службу Docker:

systemctl daemon-reload
systemctl restart docker

Чтобы контейнеры могли подключаться к прокси, используйте /etc/default/docker или /etc/sysconfig/docker, как сказал mk_sta.

0 голосов
/ 08 ноября 2018

Вы можете добавить настройку http_proxy на свой компьютер Docker для пересылки пакетов из вложенного контейнера Pod через целевой прокси-сервер.

Для операционной системы на основе Ubuntu:

Добавить export http_proxy='http://<host>:<port>' запись в файл /etc/default/docker

Для операционной системы на базе Centos:

Добавить export http_proxy='http://<host>:<port>' запись в файл /etc/sysconfig/docker

После этого перезапустите сервис Docker.

...