是否可以使用Nginx入口控制器进行动态路由?动态是指基于url,我需要从url中剥离并获取一个值,并根据该值进行路由。让我知道怎么可能。如果nginx控制器无法实现,请让我知道其他可行的方法。感谢任何帮助。
答案 0 :(得分:1)
入口控制器基于Ingress
对象。 Kubernetes对象定义本质上是静态的(因此我们可以对其进行版本控制)。
根据我在评论中收集的信息,当用户请求domain.com/foo
时,他们将被重定向到您的应用程序实例吗?您将需要一个来源来获取更新的信息。
我可以看到两种方法:
domain.com/*
-> redirect app
->`user app。这样,您可以根据需要控制用户列表。这取决于最终用户是留在domain.com/user
还是将他们重定向到另一个唯一域。我需要更多信息来讨论。
答案 1 :(得分:0)
将标签附加到您的服务中,让Traefik完成其余工作!
https://docs.traefik.io/routing/providers/consul-catalog/
我想这可能非常接近您想要实现的目标。
祝你好运!
答案 2 :(得分:0)
基于大使标头的路由的动态路由
大使是另一个基于特使的解决方案。它有免费和商业版本。大使被描述为“微服务的Kubernetes原生API网关”,它带来了相应的好处-例如与K8s原语的紧密集成。拥有Ingress控制器期望提供的功能,它也可以与各种服务网格解决方案一起使用(Consul,Linkerd,Istio)。
标头注释 headers属性是header:value对的字典。 Edge Stack大使将仅允许与指定的标头:值对匹配的请求到达目标服务。
您还可以将标头的值设置为true,以测试标头的存在。
---
apiVersion: getambassador.io/v2
kind: Mapping
metadata:
name: user-header-based-routing
spec:
prefix: /backend/
service: userA
headers:
x-authenticated-user: userA
...