[英]Ingress path redirection, helm chart
我有一个在 kubernetes 中运行的服务,并且有一个路径前缀/api
。 现在我想使用Ingress通过主机地址example.com/service1/
访问它,因为我有多个服务。 但问题是入口将来自路径service1/
所有请求重定向到带有前缀service1/
,但我希望它仅使用/
从example.com/service1/
重定向到我的服务(所以如果我请求example.com/service1/api
它将仅使用/api
重定向到服务)。 我可以实现这样的目标吗? 我正在服务的舵图中编写 Ingress 配置。 服务图表文件values.yaml
入口配置如下所示:
...
ingress:
enabled: true
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx // this comment was created when generating helm chart
hosts:
- host: example.com
paths:
- path: /service1(/|$)(.*)
pathType: ImplementationSpecific
backend:
serviceName: $name
servicePort: http
tls: []
...
templates/
文件夹中的ingress.yaml
是我为服务创建图表时由helm
生成的默认文件。 它只是使用values.yaml
值来配置入口。 我没有找到任何东西,只有这个问题基本上是说我需要在我的服务中添加前缀service1/
或者只在 Ingress 配置中使用/api
。 但是有适合我需求的解决方案吗?
这是为了更好的可见性而发布的社区 wiki 答案。 随意扩展它。
根据评论中提供的解决方案(Medium 帖子中的方法 1 示例 2),Ingress 的可能values.yaml
文件可能如下所示。
...
ingress:
enabled: true
className: ""
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: http://example.com/$2
hosts:
- host: example.com
paths:
- path: /service1(/|$)(.*)
backend:
serviceName: $name
servicePort: http
tls: []
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.