入口路径重定向,掌舵图
Ingress path redirection, helm chart
我在 kubernetes 中有一个 运行 的服务,它有一个路径前缀 /api
。现在我想使用Ingress通过主机地址example.com/service1/
访问它,因为我有多个服务。但问题是入口重定向来自路径 service1/
的所有请求,前缀为 service1/
,但我希望它仅使用 /
从 example.com/service1/
重定向到我的服务(所以如果我请求 example.com/service1/api
它将重定向到仅 /api
的服务)。我可以实现这样的目标吗?我正在服务的掌舵图中编写入口配置。
服务图表文件 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 post 中的方法 1 示例 2),Ingress 的可能 values.yaml
文件可能如下所示。
...
ingress:
enabled: true
className: ""
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: http://example.com/
hosts:
- host: example.com
paths:
- path: /service1(/|$)(.*)
backend:
serviceName: $name
servicePort: http
tls: []
...
我在 kubernetes 中有一个 运行 的服务,它有一个路径前缀 /api
。现在我想使用Ingress通过主机地址example.com/service1/
访问它,因为我有多个服务。但问题是入口重定向来自路径 service1/
的所有请求,前缀为 service1/
,但我希望它仅使用 /
从 example.com/service1/
重定向到我的服务(所以如果我请求 example.com/service1/api
它将重定向到仅 /api
的服务)。我可以实现这样的目标吗?我正在服务的掌舵图中编写入口配置。
服务图表文件 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 post 中的方法 1 示例 2),Ingress 的可能 values.yaml
文件可能如下所示。
...
ingress:
enabled: true
className: ""
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: http://example.com/
hosts:
- host: example.com
paths:
- path: /service1(/|$)(.*)
backend:
serviceName: $name
servicePort: http
tls: []
...