Вход в 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