Kubernetes 入口条件路由

5 kubernetes kubernetes-ingress

是否可以在 Kubernetes 中配置入口控制器,仅当传入请求具有特定标头值时才将 HTTP 请求路由到服务?

例子

带有以下标头的 HTTP 请求

X-MY-CUSTOM-HEADER: accepted-value
Run Code Online (Sandbox Code Playgroud)

应转发至 service1

带有以下标头的 HTTP 请求

X-MY-CUSTOM-HEADER: invalid-value
Run Code Online (Sandbox Code Playgroud)

应该被阻止

如果可能的话,您能否详细说明一下或指出一些文档,因为我无法找到此类用例的文档

Ric*_*ico 3

如果您使用 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; 
  }
Run Code Online (Sandbox Code Playgroud)

更多信息请参见此处

  • 以上对我不起作用。我按照上面的建议通过“nginx.ingress.kubernetes.io/configuration-snippet”注释注入映射指令,并且在 nginx ingress pod 上收到此错误消息:不允许“map”指令这里``` (2认同)