是否可以在Kubernetes中配置一个入口控制器,以仅在传入请求的标头具有特定值时才将HTTP请求路由到服务?
示例
带有以下标头的HTTP请求
X-MY-CUSTOM-HEADER: accepted-value
应转发给service1
带有以下标头的HTTP请求
X-MY-CUSTOM-HEADER: invalid-value
应被阻止
如果可能的话,您能详细介绍一下还是指向一些文档,因为我找不到此类用例的文档?
答案 0 :(得分:2)
如果您使用的是Nginx入口控制器,则可以使用Configuration snippet注释。然后,您可以添加如下内容:
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;
}
更多信息here。
答案 1 :(得分:0)
Traefik 2.0,Istio和Ambassador支持基于Header的路由。
来自https://discuss.kubernetes.io/t/header-based-ingress-routing/6322
的更多信息