Вход в Kubernetes условной маршрутизации

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

пример

HTTP-запрос со следующим заголовком

X-MY-CUSTOM-HEADER: accepted-value

должен быть перенаправлен на сервис1

HTTP-запрос со следующим заголовком

X-MY-CUSTOM-HEADER: invalid-value

должен быть заблокирован

Если возможно, не могли бы вы рассказать подробнее или указать на какую-то документацию, поскольку я не смог найти документацию для такого варианта использования

1 ответ

Решение

Если вы используете входной контроллер nginx, вы можете сделать это с помощью аннотации фрагмента конфигурации. Затем вы можете добавить что-то вроде этого:

nginx.ingress.kubernetes.io/configuration-snippet: |
  map $http_x_custom_header $not_ok {
      default "1";
      Value1  "0";
      Value2  "0";
      Value3  "0";
  }

  if ($not_ok) {
      return 403; 
  }

Еще немного информации здесь.

Traefik 2.0, Istio и Ambassador поддерживают маршрутизацию на основе заголовков.

Дополнительная информация на https://discuss.kubernetes.io/t/header-based-ingress-routing/6322

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