# Использование с Ingress Вы можете использовать Global Server через прокси-сервер, поднятый [подсистемой Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) кластера Kubernetes. В основе такой подсистемы лежит Ingress-контроллер, который поставляется отдельно от Kubernetes или gs-ctk. ![Обложка](img/Ingress.svg) Схема отображает типичную схему, которая может отличаться для выбранного вами Ingress-контроллера. Пользователи при подключении к кластеру распределяются [балансировщиком нагрузки на нодах кластера](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) на один из подов с прокси-сервером контроллера (на уровне протокола TCP). Тот в свою очередь распределяет запросы на нужные сервисы на уровне протокола HTTP(S) на основе заголовка Host HTTP и пути ресурса (работа Global гарантируется лишь на отдельном домене/IP-адресе, поэтому используется только поле Host). Запросы к Global ERP дополнительно распределяются внутренним HAProxy, тесно связанным с работой серверов. Чтобы начать использовать Ingress, [выберите и установите](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/#additional-controllers) Ingress-контроллер, укажите при настройке значений группы ресурсов для книги HAProxy: ```text Использовать Ingress?[да,нет]:да ``` Затем введите настройки для ресурса Ingress: ```text Введите класс Ingress:nginx Введите хост Ingress:globalerp.example.ru Введите дополнительную аннотацию Ingress (или пропустите поле): ingress.appscode.com/default-timeout: '{"connect": "28800s"}' Введите дополнительную аннотацию Ingress (или пропустите поле): haproxy-ingress.github.io/timeout-connect: "28800s" Введите дополнительную аннотацию Ingress (или пропустите поле): ``` Название используемого класса Ingress должно быть ясно из документации и настроек Ingress-контроллера. Хост соответствует полю Host в протоколе HTTP. По нему прокси-сервер определяет, к какой службе запрашивается подключения. Если указывается пустое значение, то доступ осуществляется с любого домена. Аннотации указываются те, что нужны для полной настройки вашего Ingress-контроллера. Если вы не знаете нужны ли вам дополнительные аннотации, то пропускайте поле. Вам скорее всего не нужно его заполнять. Аналогично заполняются и Ingress-ресурсы для панелей администратора Grafana и RabbitMQ. ## Таймауты Пользователи при работе с GlobalERP могут встретить сообщение о разрыве соединения. Помимо обычных причин (физический разрыв соединения, перебои сети, переход оборудования в энергосберегающий режим), такое сообщение может возникать в результате закрытия прокси-сервером соединения из-за таймаутов. У многих Ingress-контроллеров есть аннотации, которые позволяют указать таймауты. Из коробки уже указаны аннотации для следующих контроллеров: - ingress-nginx (предлагается в документации VK Cloud) - NGINX Ingress Controller (предлагается в документации Yandex Cloud) - Voyager - haproxy-ingress Вот пример аннотаций, используемых в ingress-nginx: ```yaml nginx.ingress.kubernetes.io/proxy-connect-timeout: "28800" nginx.ingress.kubernetes.io/proxy-send-timeout: "28800" nginx.ingress.kubernetes.io/proxy-read-timeout: "28800" ``` Вы можете переопределить эти настройки указав их при конфигурации группы ресурсов. Обращаем внимание, что не все Ingress-контроллеры позволяют изменить таймауты при помощи аннотаций. В таком случае, необходимо изменить таймауты при помощи конфигурации контроллера, или отказаться от использования Ingress для GlobalERP, или начать использовать другой контроллер.