Добавление уникального заголовка запроса к сотням входов с помощью Traefik 2

мы (наконец-то) переходим с Traefik 1 на 2. Мы запускаем более 400 приложений на GKE. Наша единственная оставшаяся задача заключается в следующем:

В Traefik 1 мы устанавливаем аннотацию для входа каждого приложения, которая добавляет заголовок к запросу на серверную часть. Значение этого заголовка уникально для каждого входа. Вот пример со значением . Каждое приложение имеет другое значение в Ingress.:

      ---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: testapp
  namespace: test
  annotations:
    ingress.kubernetes.io/custom-request-headers: X-Backend-Hint:<appname>
spec:
...

Traefik 2 больше не поддерживает этот заголовок. Кажется, что единственный способ добавить такой заголовок запроса в каждое приложение — это создать уникальное промежуточное программное обеспечение customRequestHeaders для каждого уникального значения, а затем добавить это промежуточное программное обеспечение к соответствующему Ingress. Вот так:

      ---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: backend-hint-header
  namespace: test
spec:
  headers:
    customRequestHeaders:
      X-Backend-Hint: <appname>
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: testapp
  namespace: test
  annotations:
    traefik.ingress.kubernetes.io/router.middlewares: test-backend-hint-header@kubernetescrd
spec:
...

Автоматизировать это, конечно, возможно, но это означает развертывание более 400 практически идентичных промежуточных программ. Не вызовет ли это проблем для Traefik?

Действительно ли это лучший способ? Или мы можем каким-то образом использовать одно промежуточное программное обеспечение с переменной, передаваемой через аннотацию Ingress? Может быть, я еще что-то не подумал?

На данный момент, из-за совместимости с другими инструментами, ссылающимися на Ingress, такими как cert-manager и external-dns, мы пока не можем использовать CRD IngressRoute, а должны использовать классический Ingress.

0 ответов

Другие вопросы по тегам