Я использую haproxy в качестве шлюза бастионного сервера / кластера, так как только некоторые узлы в моей сети имеют прямой доступ к внешней сети.Мои внутренние узлы являются частью кластера kubernetes и должны иметь возможность извлекать образы из частного реестра, внешнего по отношению к моему кластеру, для которого требуются идентификаторы сертификатов.
внутренний узел кластера k8s -> haproxy на пограничном узле -> реестр docker
Я пытаюсь настроить свой back_end в моем haproxy.cfg для маршрутизации в реестр docker и обновить запросс удостоверением личности пограничного узла.(Внутренний узел не имеет сертификатов, приемлемых для реестра докеров, и мне не разрешено размещать сертификаты внешнего узла на внутреннем узле.) То, что у меня сейчас есть, выглядит следующим образом:
frontend ft_ssl
bind <boxIP>:443
mode http
default_backend bk_global_import_registry_certs
backend bk_global_import_registry_certs
mode http
balance roundrobin
server registry_alias-0 <registryIP>:443 ssl ca-file fullyqualified/ca.crt crt fullyqualified/file.pem check
server registry_alias-1 <registryIP2>:443 ssl ca-file fullyqualified/ca.crt crt fullyqualified/file.pem check
В настоящее время у меня установлена HTTPS_PROXY в /etc/systemd/system/docker.service.d/http-proxy.conf, и я получаю 400 неверных запросов.Ниже вычеркнуто сообщение журнала, с изменениями только при удалении IP-адресов или опечаток.
InternalIP: randomPort [09 / Jul / 2019: 13: 28: 08.659] ft_ssl bk_global_import_registry_certs 0/0/10/5 /15 400 350 - - ---- 1/1/0/0/0 0/0 {} "CONNECT externalFQDN: 443 HTTP / 1.1"
Для тех, кто смотрит на это через kubernetes илиТеги docker. Я также рассмотрел вопрос о настройке pull-through кеша , но понял, что это работает только с общедоступным реестром Docker - см. open Docker GitHub, выпуск 1431 для других людей, пытающихся найти способыи пройди мимо этого.