---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
  - property: og:title
    content: Настройка внешнего доступа к YTsaurus
  - property: og:description
    content: Инструкции ниже описывают, как настроить внешний доступ к YTsaurus, развёрнутому в кластере Kubernetes
  - property: og:type
    content: article
  - property: og:url
    content: https://ytsaurus.tech/docs/ru/admin-guide/cluster-access-proxy
  - property: article:tag
    content: k8s
  - property: article:modified_time
    content: '2026-03-17T20:00:00+03:00'
  - property: article:author
    content: Горбачева Олеся
alternate:
  - https://ytsaurus.tech/docs/en/admin-guide/cluster-access-proxy/faq.md
  - https://ytsaurus.tech/docs/ru/admin-guide/cluster-access-proxy/faq.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt


<!-- source: ru/_includes/admin-guide/cluster-access-proxy/faq.md -->
# FAQ

{% cut "Можно ли использовать для Data-прокси роль с названием, отличным от `default` (например, `heavy`)?" %}

Да, но это требует дополнительной настройки.

По умолчанию клиентские библиотеки (SDK) отправляют все тяжёлые запросы (чтение/запись) в группу прокси с ролью `default`. Если в операторе создать группу с ролью `heavy`, но не перенастроить кластер, SDK не узнает о её существовании и продолжит искать несуществующую роль `default`.

Чтобы перенаправить стандартный трафик клиентов в новую группу, измените атрибут `@default_role_filter` в Кипарисе:

```bash
# Теперь клиенты, не указавшие роль явно, будут направляться на прокси с ролью 'heavy'
yt set //sys/http_proxies/@default_role_filter heavy
```

{% endcut %}

{% cut "Можно ли направить весь трафик (включая Data) через Ingress?" %}

Технически — можно, но для высоконагруженных инсталляций это не рекомендуется. Если настроить клиенты на работу без [Discovery](https://ytsaurus.tech/docs/ru/admin-guide/cluster-access-proxy/index.md#discovery) (только через Ingress), возникнут три проблемы:

- Двойная балансировка. Весь трафик проходит через промежуточный Ingress-контроллер, что увеличивает задержки.
- Сложность настройки. Для работы Discovery через Ingress придётся создавать отдельный Ingress-ресурс и DNS-имя для каждого пода Data-прокси.
- Проблемы с транзакциями. Необходима настройка [липких сессий](https://ytsaurus.tech/docs/ru/admin-guide/cluster-access-proxy/manage-traffic.md#sticky-sessions).

Для высоконагруженных инсталляций рекомендуется комбинированный подход:
- L7 (Ingress): Используйте только для Control-трафика (роль `control`). Это даст понятное доменное имя, SSL и удобство для пользователей.
- L4 (NodePort/LoadBalancer): Используйте для Data-трафика (роль `default`). Это позволит клиентам соединяться с подами напрямую (через Discovery и Advertised Addresses), обеспечивая максимальную пропускную способность без узкого места (bottleneck) в виде Ingress-контроллера.

{% endcut %}

{% cut "Почему команды `list` и `create` работают, а `write-table` падает с ошибкой сети?" %}

Это признак неверно настроенного (или ненастроенного) Discovery.

Лёгкие команды идут через контрольные прокси. Тяжёлые команды (`read-table`, `write-table`) пытаются соединиться с Data-прокси напрямую. Ошибка «Name resolution failure» или «Connection refused» на записи означает, что Discovery возвращает клиенту внутренние адреса подов.

Настройте подмену адресов через атрибут `//sys/http_proxies/@balancers` (см. раздел [Настройка подмены адресов](https://ytsaurus.tech/docs/ru/admin-guide/cluster-access-proxy/network-isolation.md#set-discovery-step)).

{% endcut %}

{% cut "Можно ли временно отключить Discovery для отладки?" %}

<!--Если нужно принудительно направить весь трафик через единую точку входа (например, через `port-forward` или Ingress), отключите Discovery на стороне клиента.-->

Да, механизм Discovery можно отключить на стороне клиента (опция конфига `enable_proxy_discovery=%false`). Это удобно для быстрой отладки и тестирования: трафик перестаёт разделяться и направляется в единую точку входа.

Примеры, как отключить Discovery:

{% list tabs %}

- Python SDK

  ```python
  client = yt.YtClient(proxy="localhost:8080", config={"proxy": {"enable_proxy_discovery": False}})
  ```
- CLI

  ```bash
  export YT_USE_HOSTS=0
  # Или:
  # export YT_CONFIG_PATCHES='{proxy={enable_proxy_discovery=%false}}'
  ```

{% endlist %}

{% note warning %}

Не используйте этот режим в продакшене для передачи больших данных — это создаст узкое место на входном балансировщике.

{% endnote %}

{% endcut %}

{% cut "Можно ли указать роль прокси через атрибут в Кипарисе?" %}

Да, роль конкретного инстанса можно сменить «на лету», изменив атрибут `@role` в Кипарисе. Это полезно для оперативного вывода прокси из-под нагрузки.

Пример смены роли через CLI:

```bash
# Назначаем конкретному прокси роль control
yt set //sys/http_proxies/hp-0.http-proxies.default.svc.cluster.local:80/@role control
```

{% note alert %}

При перезапуске пода роль вернётся к значению, указанному в спецификации оператора.

{% endnote %}

{% endcut %}
<!-- endsource: ru/_includes/admin-guide/cluster-access-proxy/faq.md -->