Регистрация TCP-перехода корпоративного CONNECT-прокси в Istio
Используйте шаблон ServiceEntry внешнего прокси в режиме sidecar для слушателя прокси, оставляя выбор прокси приложением и авторизацию цели отдельно.
Для рабочей нагрузки, которая уже выбирает корпоративный CONNECT-прокси, sidecar видит подключение к этому слушателю. Зарегистрируйте маршрут первого перехода как TCP согласно документированному шаблону внешнего прокси в режиме sidecar:
apiVersion: networking.istio.io/v1
kind: ServiceEntry
metadata:
name: corporate-forward-proxy
spec:
hosts:
- proxy.corp.example
addresses:
- 203.0.113.10/32
ports:
- number: 3128
name: tcp-proxy
protocol: TCP
location: MESH_EXTERNAL
resolution: NONEЗамените IP-адрес и порт на фактическую конечную точку прокси. В этом примере TCP сопоставляется по адресу; hosts не выбирает зашифрованный сайт внутри туннеля.
Приложению по-прежнему нужен поддерживаемый им ввод прокси, например HTTPS_PROXY=http://203.0.113.10:3128 для совместимого клиента. ServiceEntry не заставляет ненастроенное приложение отправлять прокси-запросы.
Регистрируйте этот маршрут прокси, а не каждый сайт, в который он позже туннелируется. Прямой прокси открывает следующее соединение и решает, разрешены ли учётная запись и запрошенное назначение. Разрешение mesh для первого TCP-перехода не даёт ни этой авторизации прокси, ни указаний по выбору маршрута приложению.