Kubernetes 入口条件路由
Kubernetes ingress conditional routing
是否可以在 Kubernetes 中配置一个入口控制器,仅当传入请求具有特定的 header 值时才将 HTTP 请求路由到服务?
示例
带有以下内容的 HTTP 请求header
X-MY-CUSTOM-HEADER: accepted-value
应该转发到 service1
带有以下内容的 HTTP 请求header
X-MY-CUSTOM-HEADER: invalid-value
应该被屏蔽
如果可能的话,您能否详细说明一下或指向一些文档,因为我找不到此类用例的文档
如果您使用的是 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。
Traefik 2.0、Istio 和 Ambassador 支持基于 Header 的路由。
更多信息来自 https://discuss.kubernetes.io/t/header-based-ingress-routing/6322
是否可以在 Kubernetes 中配置一个入口控制器,仅当传入请求具有特定的 header 值时才将 HTTP 请求路由到服务?
示例
带有以下内容的 HTTP 请求header
X-MY-CUSTOM-HEADER: accepted-value
应该转发到 service1
带有以下内容的 HTTP 请求header
X-MY-CUSTOM-HEADER: invalid-value
应该被屏蔽
如果可能的话,您能否详细说明一下或指向一些文档,因为我找不到此类用例的文档
如果您使用的是 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。
Traefik 2.0、Istio 和 Ambassador 支持基于 Header 的路由。
更多信息来自 https://discuss.kubernetes.io/t/header-based-ingress-routing/6322