还要从ingress三部曲最后一篇说起。

[root@test ~]# kubectl describe ingress -n ingress-nginx
Name:             ingressmyapp
Namespace:        ingress-nginx
Address:          10.110.65.164
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host            Path  Backends
  ----            ----  --------
  pphqq.vicp.net
                  /v1   myappsvc:80 (10.244.1.3:80)     ##############此处有两个子路径
                  /v2   mappsvc2:80 (10.244.1.4:80)
Annotations:      nginx.ingress.kubernetes.io/rewrite-target: /   ####直接用的最基础的rewrite
Events:           <none>

但是走ingress看/v1/hostname.html时,结果并不是我想要的
在这里插入图片描述

官方文档

https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/rewrite/README.md
从文章可知,下面这种的配置,子路径后无论加上多少参数,都会被替换成根路径,造成回补结果不和预期

Annotations: nginx.ingress.kubernetes.io/rewrite-target: /

!!! note Captured groups are saved in numbered placeholders, chronologically, in the form $1, $2 … $n. These placeholders can be used as parameters in the rewrite-target annotation.
支持分组捕获(自己瞎起的名字,如果有别的叫法麻烦评论告诉我更正,感谢!)的内容会被存在 $x中,这个和ps的用法一致。

那我们换一种方式看看回补的效果, 基本可以解决一般的转址需求。
在这里插入图片描述
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐