apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: namespace1
spec:
rules:
- host: foo.example.com
http:
paths:
- path: /bar
pathType: Prefix
backend:
service:
name: service1
port:
name: port1
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: namespace2
spec:
rules:
- host: bar.example.com
http:
paths:
- path: /foo
pathType: Prefix
backend:
service:
name: service2
port:
name: port2
apiVersion: v1
kind: Service
metadata:
name: service1
namespace: namespace1
spec:
selector:
app: app1
ports:
- name: port1
port: 80
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: service2
namespace: namespace2
spec:
selector:
app: app2
ports:
- name: port2
port: 80
targetPort: 80
在不同的命名空间中定义两个不同的Ingress规则,并为每个命名空间中的服务定义一个Service。在此示例中,根据请求的host和路径,将请求路由到不同的服务。这个方案可以解决多个命名空间中存在多个Ingress规则的问题。