ANIC - Angie Ingress Controller#

11.08.2023

Сегодня поговорим об Angie Ingress Controller (ANIC) - решении компании «Веб-Сервер» для упрощения работы с трафиком в Kubernetes.

Alternative text Alternative text

Kubernetes — популярная система для управления контейнерами. Одной из ее задач является перенаправление запросов к приложениям внутри этой системы. Для этого используются две вещи: Ingress и Ingress Controller. Ingress — это точка входа для запросов, которая помогает перенаправлять и балансировать нагрузку. Но чтобы она работала, нужен Ingress Controller. Рассказываем, как новый продукт компании "Веб-Сервер" Angie Ingress Controller (ANIC) помогает упростить работу с трафиком в Kubernetes.

Ingress Controller — позволяет управлять проксированием и балансировкой в соответствии с заданными настройками. При изменении настроек Ingress Controller получает сигнал и перенастраивает Ingress в соответствии с полученными данными. Таким образом, мы получаем возможность, изменяя настройки, управлять внешними запросами к приложениям, запущенным в Kubernetes кластере. Ingress может быть настроен чтобы привязать внешние URL адреса к внутренним сервисам, обеспечить балансировку трафика и обработку SSL/TLS соединений. В качестве Ingress обычно используют обратный прокси-сервер (reverse proxy).

Angie Ingress Controller (ANIC) поддерживает два типа установки: DaemonSet и Deployment.

Используйте Deployment, если необходимо установить один экземпляр Ingress Controller и динамически изменить количество экземпляров. Используйте DaemonSet при необходимости установить Ingress Controller на каждой ноде кластера.

ANIC в качестве Ingress использует веб-сервер Angie PRO. Это один из самых производительных веб-серверов в мире. Angie PRO прекрасно решает основные задачи возложенные на Ingress. Множество настроек позволяет гибко настраивать проксирование и имеет возможность динамически управлять настройками upstream групп с помощью REST интерфейса. Также Angie PRO выступает в роли L4-L7 балансировщика.

Помимо стандартных функций Angie PRO:

  • Позволяет создавать виртуальные сервера и имеет множество гибких настроек.

  • Поддерживает HTTP/2 протокол, что позволит вам принимать на слушающем сокете HTTP/2-соединения.

  • Поддерживает привязку сессий (sticky session) что обеспечивает привязку всех запросов внутри клиентской сессии к единственному серверу в группе upstream.

  • Разделение трафика (traffic splitting) позволит провести A/B тестирование и частичную выкладку (canary deploy)

  • Предоставляет расширенную статистику и мониторинг в режиме реального времени используя RESTful интерфейс. Предоставляется базовая информация о сервере в формате JSON, статистика по клиентским соединениям, зонам разделяемой памяти, DNS-запросам, HTTP-запросам, кэшу HTTP-ответов сессиям модуля stream, http_upstream и зонам других модулей.

  • Предоставляет возможность динамически управлять настройками upstream групп с помощью REST интерфейса.

Подробнее можно прочитать на нашем сайте.