Компания Traefik, известная своими облачными прокси-серверами с открытым исходным кодом, выпустила версию 3.6 под названием Ramequin, в которой объединены три основных дополнения, самым важным из которых является поддержка многоуровневой маршрутизации.
Он представляет собой иерархическую структуру маршрутизаторов, которая позволяет обрабатывать запросы поэтапно. Родительский маршрутизатор может проверять подлинность запроса или добавлять заголовки, а дочерние маршрутизаторы используют расширенные данные для принятия окончательного решения о маршрутизации.
В результате отпадает необходимость дублировать логику аутентификации в разных сервисах или использовать отдельные прокси-серверы для разных этапов запроса. Это также позволяет использовать шаблоны маршрутизации, например направлять трафик в зависимости от ролей пользователей, уровней подписки или оценки флагов функций, с помощью простой декларативной конфигурации.
Вторым важным дополнением стала встроенная интеграция с Knative. В этом выпуске Traefik может управлять трафиком для сервисов Knative, используя ту же модель провайдера, что и для контейнеров или виртуальных машин. Провайдер Knative отвечает за обнаружение сервисов, события масштабирования до нуля и маршрутизацию запросов к бессерверным рабочим нагрузкам, что устраняет необходимость в дополнительных компонентах шлюза.
В Traefik 3.6 также добавлена полная поддержка Gateway API v1.4, а две функции, BackendTLSPolicy и SupportedFeatures, были переведены из разряда экспериментальных в разряд стабильных. BackendTLSPolicy обеспечивает сквозную защиту TLS между шлюзом и внутренними сервисами, повышая безопасность внутреннего трафика. SupportedFeatures предоставляет информацию о совместимости функций через поля состояния Kubernetes, что позволяет операторам лучше понимать, что поддерживает реализация.
Помимо этих трёх основных дополнений, в релиз также вошли несколько менее значительных улучшений. Новые проверки работоспособности TCP позволяют Traefik напрямую оценивать работоспособность сервисов, не использующих HTTP, в то время как пассивные проверки работоспособности определяют её на основе реальных шаблонов трафика.
В то же время обновлённые параметры балансировки нагрузки включают алгоритмы Least Time и Highest Random Weight для более детального распределения трафика. AWS ECS получает полную поддержку IPv6, а провайдер Docker теперь может обнаруживать незапущенные контейнеры.
Наконец, в Traefik 3.6 добавлена расширенная поддержка ExternalName в Kubernetes, новые параметры резолвера ACME, настраиваемые размеры таблиц HTTP/2 HPACK, поддержка системных вызовов для плагинов, более компактные таблицы на панели управления и улучшенное ведение журнала запуска на уровне провайдера.
Ознакомьтесь с объявлением о выпуске: https://traefik.io/blog/traefik-proxy-3-6-ramequin или полным списком всех изменений в журнале изменений GitHub проекта.