Поскольку мой кластер Kubernetes находится за корпоративным прокси-сервером, мне нужно установить http / https прокси в пакетах через переменные среды и установить no_proxy, чтобы разрешить межпод и межсервисный обмен данными и связь с другими локальными частными серверами.
Конфигурация прокси http / https отлично работала при передаче в модули через переменные env; но no_proxy не работает хорошо, и это нарушает внутреннюю связь pod / service.
Я безуспешно пытался установить no_proxy и NO_PROXY на разных уровнях в Kubernetes, в основном на:
- Демон Docker: /etc/systemd/system/docker.service.d/http-proxy.conf
- Клиент Docker: /root/.docker/config.json (хотя это не представляется возможным при использовании Docker v1.13.1 в CentOS)
- Клиент Docker: через переменные среды, передаваемые модулям во время создания, в файле yaml, который используется для запуска их с помощью kubectl
- Главный и рабочий узлы Kubernetes как переменные среды
- и множество комбинаций вышеуказанных настроек
Конфигурация прокси в POD успешно выполнена с переменными env внутри POD:
export http_proxy = "http://10.16.1.1:8080"
export https_proxy = "https://10.16.1.1:8080"
Но ничего из вышеперечисленного не сработало для исключений no_proxy, и я попробовал много синтаксиса, а также добавил свои узлы, сети pod & service и .svc (как это предлагается для OpenShift) ... как указано ниже:
export no_proxy = ". Svc, .example.com"
export no_proxy = "localhost, 127.0.0.0 / 8,10.1.16.0 / 24,10.240.0.0 / 16,10.241.0.0 / 16, *. domain.com"
export no_proxy = ". svc, .default, .local, .cluster.local, localhost, 127.0.0.0 / 8,10.1.16.0 / 24,10.240.0.0 / 16,10.241.0.0 / 16, .domain.com"
экспорт NO_PROXY = $ no_proxy
Я использую Kubernetes v1.11.2 + Docker v1.13.1 на CentOS7;
Любая помощь будет оценена.