当前位置: 首页 > 知识库问答 >
问题:

库伯内特斯入口条件路由

宰烈
2023-03-14

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

实例

带有以下标头的HTTP请求

X-MY-CUSTOM-HEADER: accepted-value

应该转发给服务1

带有以下标头的HTTP请求

X-MY-CUSTOM-HEADER: invalid-value

应该被阻止

如果可能的话,你能详细一点或指向一些文档,因为我找不到这种用例的文档吗

共有2个答案

慕容俭
2023-03-14

Traefik 2.0、Istio和大使支持基于Header的路由。

来自https://discuss.kubernetes.io/t/header-based-ingress-routing/6322更多信息

唐照
2023-03-14

如果您使用的是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; 
  }

这里有更多信息。

 类似资料:
  • 我试图设置Kubernetes入口,将外部http流量路由到前端pod(路径/)和后端pod(路径/rest/*),但我总是得到400错误,而不是主nginx索引。html。 所以我在第https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页尝试了谷歌库伯内特斯的例子,但我总是得到400个错误。有什么想法吗?

  • 新来的。我想知道是否有人可以帮助我区分我可以用来识别入口控制器和通过YAML和服务识别入口的特征。我有一个预先存在的集群,我认为入口控制器可能是通过helm安装的,但我不确定。有没有办法了解helm在安装nginx ingress控制器时使用的yaml?

  • 我怎样才能使用入口呢?我尝试使用NodePort和--Target etPort=1001,我在servicePort中添加了80在。 kubectl公开部署测试--Target-port=1001--type=NodePort 我得到了错误 找不到后端-404 我使用的是正确的方法还是需要遵循其他方法?

  • 我的公司有一个伪造的CA证书。实例com和一张伪造地图的唱片。实例com连接到我们的负载平衡器的IP 负载平衡器正在将流量转发到我们的Kubernetes群集。 在集群中,我部署了nginx ingress helm图表,在30200处公开了https节点端口 我根据上述证书创建了一个名为test secret的k8s TLS机密。 我部署了一个带有服务“test”的应用程序,并安装了以下入口:

  • 我试图设置一个带有前端pod(cup fe)和后端pod的GKE环境,用于在登录时对用户进行身份验证(cup auth),但我无法让我的入口正常工作。 以下是运行nginx的前端吊舱(cup fe),带有角度应用程序。我还创建了一个静态IP地址,由“cup.xxx.it”和“cup-auth.xxx.it”dns解析: 然后是认证盒(cup auth): 然后,我创建了两个节点报告来公开上述POD

  • 我正试图通过nginx入口从客户端上传文件。在收到413响应后,我在入口上设置了以下注释; 客户端是一个Angular应用程序。它在请求正文中发送文件的bas64字符串。我尝试过上传一些KB的图像,所以我绝对没有达到这些限制。我是库伯内特斯的新手。我是否需要重新启动入口以使这些注释生效? 我也尝试过创建一个ConfigMap; 仍然得到502。 不知道如何通过kubectl访问nginx.conf