kubernetessingress路由到另一个服务
当我点击xyz.abc.com/login时,它应该转到测试服务,当我点击URL xyz.abc.com/(任何内容)时,它应该转到test1服务,但目前,当我点击xyz.abc.com/login时,它并没有转到那里,而是转到test1服务random.com/login,所以转到NLB中基于路径的路由 那么如何实现这个场景呢 有人能帮忙吗kubernetessingress路由到另一个服务,kubernetes,kubernetes-ingress,nginx-config,configmap,Kubernetes,Kubernetes Ingress,Nginx Config,Configmap,当我点击xyz.abc.com/login时,它应该转到测试服务,当我点击URL xyz.abc.com/(任何内容)时,它应该转到test1服务,但目前,当我点击xyz.abc.com/login时,它并没有转到那里,而是转到test1服务random.com/login,所以转到NLB中基于路径的路由 那么如何实现这个场景呢 有人能帮忙吗 kind: Ingress apiVersion: extensions/v1beta1 metadata: name: test namespa
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: test
namespace: test
labels:
app.kubernetes.io/managed-by: Helm
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
kubernetes.io/ingress.class: internet-facing-ingress
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/server-snippet: >
rewrite /login(.*) /v2/login/ break; rewrite / / break;
rewrite /integration/customer(.*) /v1/integration/customer$1; break;
rewrite /admin/customer(.*) /v2/admin/customer$1; break;
rewrite /admin/abc1(.*) /v2/admin/abc1$1;
break;
spec:
tls:
- hosts:
- xyz.abc.com
secretName: serverv1-tls
rules:
- host: xyz.abc.com
http:
paths:
- path: /login
backend:
serviceName: test
servicePort: 80
- path: /
backend:
serviceName: test1
servicePort: 80
外部服务:
kind: Service
apiVersion: v1
metadata:
name: test1
namespace: test1
spec:
type: ExternalName
sessionAffinity: None
externalName: random.com
status:
loadBalancer: {}
在路径中,只需最后添加
/login/
/即可
rules:
- host: xyz.abc.com
http:
paths:
- path: /login/
backend:
serviceName: test
servicePort: 80
- path: /
backend:
serviceName: test1
servicePort: 80
如果可能,最简单的方法是分离入口