在dns资源有限,但是仍然要区分后端服务时,就需要使用 subdirectory 而不是 subdomain
常规来说,如果是 nginx ingress 或者 traefik 1,需要添加 annotation
参考以下官方文档,这里是 traefik2 的情况
https://doc.traefik.io/traefik/migration/v1-to-v2/#strip-and-rewrite-path-prefixes
这里使用的 namespace 是 my
先创建一个 nginx服务
再创建一个 clusterip 的 Service
使用下面的yaml
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: myir
namespace: my
spec:
entryPoints:
- web
routes:
- match: Host(`mynginx.lizhe.com`) && PathPrefix(`/mytest`)
kind: Rule
services:
- name: mysvc
port: 80
middlewares:
- name: my-stripprefix
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: my-stripprefix
namespace: my
spec:
stripPrefix:
prefixes:
- /mytest