繁体   English   中英

入口路径重定向,舵图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM