web_fetch ИИ-ассистента) скачивает сервис linked-url-proxy в каждом поде Ayakaleaf Pro. Он отклоняет непубличные адреса, поэтому пользователи не могут читать через него внутренние сервисы. Функция и её настройки описаны в разделе Внешний URL.
Настройка
30-config.yaml (additions)
Что блокируется в Kubernetes
Прокси отклоняет любой адрес, не являющийся публичным unicast-адресом: loopback, link-local (включая адрес метаданных облака169.254.169.254), частные диапазоны 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16, диапазон carrier-grade NAT 100.64.0.0/10, а также их аналоги в IPv6. Поэтому сети подов и сервисов в этих диапазонах — а так по умолчанию в kubeadm, flannel, Calico и большинстве управляемых кластеров — блокируются без каких-либо настроек, как и внутрикластерные имена вроде redis или git-bridge, которые в них разрешаются.
Публичные адреса разрешены. Если у ваших узлов или балансировщика нагрузки есть публичные адреса, добавьте их в OVERLEAF_LINKED_URL_BLOCKED_NETWORKS (через пробелы или запятые), чтобы пользователи не могли обращаться через них к NodePort или странице состояния.
Если задан OVERLEAF_LINKED_URL_OUTBOUND_PROXY, имена хостов разрешает прокси, поэтому проверяются только URL, содержащие IP-адрес: прокси должен сам блокировать ваши внутренние сети.
Несколько реплик
Ничего дополнительного не требуется: каждый под скачивает файлы через собственный linked-url-proxy с теми же настройками.Проверено на Kubernetes
На Kubernetes 1.37 с тремя репликами, сетью подов flannel10.244.0.0/16 и сетью сервисов kubeadm 10.96.0.0/12 прокси отклонял загрузки с ClusterIP сервиса, с внутрикластерных имён redis, garage и overleaf-1.overleaf-hl.overleaf.svc.cluster.local, а также с адреса узла, без какого-либо OVERLEAF_LINKED_URL_BLOCKED_NETWORKS. Наши сквозные тесты также проходят для отклонения loopback и адреса метаданных облака через Import API и для ИИ-ассистента, читающего только страницы, разрешённые OVERLEAF_LINKED_URL_ALLOWED_RESOURCES.
