# Вышла версия Traefik proxy 3.6

**URL:** <https://forum.samohosting.ru/t/vyshla-versiya-traefik-proxy-3-6/1313>\
**Category:** Traefik\
**Created:** [17.Ноябрь.2025 10:09:49 UTC](https://forum.samohosting.ru/t/vyshla-versiya-traefik-proxy-3-6/1313 "2025-11-17T10:09:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![KRom](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/krom/32/362_2.png) [@KRom](https://forum.samohosting.ru/u/KRom)\
**Post date:** [17.Ноябрь.2025 10:09:49 UTC](https://forum.samohosting.ru/t/vyshla-versiya-traefik-proxy-3-6/1313/1 "2025-11-17T10:09:49Z")

</div>

Пишу в общей теме Reverse proxy и без тега т.е. не нашел ничего по traefik, может @admin создаст и подправит

# Релиз облачного прокси-сервера с открытым исходным кодом Traefik 3.6 «Ramequin»

Основные [изменения](https://github.com/traefik/traefik/releases/tag/v3.6.0) и дополнения в Traefik 3.6:

- появилась многоуровневая маршрутизация. В проекте реализована иерархическая структура маршрутизаторов, которая позволяет выполнять обработку запросов последовательно. Родительский маршрутизатор может аутентифицировать запрос или добавлять заголовки, в то время как дочерние маршрутизаторы используют обогащённые данные для принятия окончательного решения о маршрутизации. В результате устраняется необходимость дублировать логику аутентификации между сервисами или использовать отдельные прокси-серверы для разных этапов запроса. Также реализованы шаблоны маршрутизации, такие как направление трафика на основе ролей пользователей, уровней подписки или оценки флагов функций, в простой декларативной конфигурации;
- интеграция с Knative. Теперь Traefik может управлять трафиком сервисов Knative, используя ту же модель провайдера, что и для контейнеров или виртуальных машин. Поставщик Knative отвечает за обнаружение сервисов, масштабирование событий до нуля и маршрутизацию запросов к бессерверным рабочим нагрузкам, устраняя необходимость в дополнительных компонентах шлюза;
- поддержка Gateway API v1.4, обеспечивая более строгий контроль маршрутизации для облачных рабочих нагрузок. Функции, BackendTLSPolicy и SupportedFeatures переведены из экспериментальной в стабильные. BackendTLSPolicy обеспечивает сквозной TLS между шлюзом и бэкенд-сервисами, повышая безопасность внутреннего трафика. SupportedFeatures обеспечивает совместимость функций через поля статуса Kubernetes, предоставляя операторам более чёткое представление о том, что поддерживает реализация;
- новые проверки работоспособности TCP, которые позволяют Traefik напрямую оценивать не-HTTP-сервисы, в то время как пассивные проверки работоспособности определяют работоспособность сервисов на основе фактических схем трафика;
- обновлённые параметры балансировки нагрузки включают алгоритмы Least Time и Highest Random Weight для более детального распределения трафика. AWS ECS получает полную поддержку IPv6, а поставщик Docker теперь может обнаруживать неработающие контейнеры;
- расширенная поддержка ExternalName в Kubernetes, новые параметры резолвера ACME, настраиваемые размеры таблиц HTTP/2 HPACK, поддержку системных вызовов для плагинов, более компактные таблицы панели управления и улучшенное логирование запуска на уровне провайдера (provider-level startup logging);
- опубликована [документация](https://doc.traefik.io/traefik/master/migrate/v3/#v360) по миграции на новую версию, а также улучшены переводы.

## Хотелось бы остановиться на многоуровневой маршрутизации

> Я выяснил, что в consul оно не работает

Вот пример

```yaml
http:
  routers:
    # Root router - matches all API requests and applies auth
    api-parent:
      rule: "Host(`api.example.com`) && PathPrefix(`/`)"
      middlewares:
        - auth-with-tier
      entryPoints:
        - websecure
      tls: {}
      # No service defined - this is a parent router
    
    # Leaf router - routes enterprise customers to stable
    api-enterprise:
      rule: "HeaderRegexp(`X-Customer-Tier`, `(enterprise|business)`)"
      service: stable-backend
      parentRefs:
        - api-parent
    
    # Leaf router - routes free tier to canary
    api-free:
      rule: "Header(`X-Customer-Tier`, `free`)"
      service: new-version
      parentRefs:
        - api-parent

  middlewares:
    auth-with-tier:
      forwardAuth:
        address: "http://auth-service:8080/validate"
        authResponseHeaders:
          - X-Customer-Tier
          - X-Customer-Id
          - X-User-Email

  services:
    stable-backend:
      loadBalancer:
        servers:
          - url: "http://api-v1-stable:8080"
    new-version:
      loadBalancer:
        servers:
          - url: "http://api-v2-canary:8080"

```

Здесь мы создали корневой маршрутизатор (Root Routers) `api-parent`

- связали его с точкой подключения
- Указали домен и префикс пути
- Добавили мидлварку аутентификации

Созлали 2 дочерних маршрута (Leaf Routers): `api-enterprise` и `api-free`, каждый из них

- Имеет ссылку на родительский маршрутизатор
- Имеет дополнительные правила
- Ссылается на свой сервис

Что позволяет сократить дублирование конфигов и реализовать сложные правила маршрутизации, например, в версии 3.5 это выглядело бы так

```yaml
http:
  routers:
    api-enterprise:
      rule: "Host(`api.example.com`) && PathPrefix(`/`) && HeaderRegexp(`X-Customer-Tier`, `(enterprise|business)`)"
      middlewares:
        - auth-with-tier
      entryPoints:
        - websecure
      tls: {}
      service: stable-backend

    api-free:
      rule: "Host(`api.example.com`) && PathPrefix(`/`) && Header(`X-Customer-Tier`, `free`)"
      middlewares:
        - auth-with-tier
      entryPoints:
        - websecure
      tls: {}
      service: new-version

  middlewares:
    auth-with-tier:
      forwardAuth:
        address: "http://auth-service:8080/validate"
        authResponseHeaders:
          - X-Customer-Tier
          - X-Customer-Id
          - X-User-Email

  services:
    stable-backend:
      loadBalancer:
        servers:
          - url: "http://api-v1-stable:8080"
    new-version:
      loadBalancer:
        servers:
          - url: "http://api-v2-canary:8080"

```

## Поддержка Knative

Для начала включаем провайдера в самом traefik

```yaml
experimental:
  knative: true
providers:
  knative:
    namespaces:
      - "serverless-apps"
      - "production"

```

И описываем сервис

```yaml
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: whoami
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: traefik/whoami
          ports:
            - containerPort: 80
          env:
            - name: WHOAMI_NAME
              value: "Knative Test Service"

```

Выполняем запрос к сервису

```bash
$ curl http://whoami.default.example.com

Name: Knative Test Service

```

На текущий момент времени уже версия 3.6.1
