Google cloud platform 如何修复gce入口的路由配置?
入口在请求时调用随机服务,还调用根(/)。我需要入口调用配置服务中指定的,并将完整路径发送到服务(我使用MVC模式,因此我需要为应用程序提供完整路径以解析正确的控制器)Google cloud platform 如何修复gce入口的路由配置?,google-cloud-platform,kubernetes-ingress,Google Cloud Platform,Kubernetes Ingress,入口在请求时调用随机服务,还调用根(/)。我需要入口调用配置服务中指定的,并将完整路径发送到服务(我使用MVC模式,因此我需要为应用程序提供完整路径以解析正确的控制器) 从你的问题中我看到: 1) 您试图将重写目标与gceingres-->一起使用,但这不起作用。是nginx入口控制器的一项功能。顺便说一句,从0.22.0版开始,您应该nginx.ingres.kubernetes.io/rewrite-target:“/”而不是ingres.kubernetes.io/rewrite-targ
从你的问题中我看到: 1) 您试图将
重写目标
与gce
ingres-->一起使用,但这不起作用。是nginx入口控制器的一项功能。顺便说一句,从0.22.0版开始,您应该nginx.ingres.kubernetes.io/rewrite-target:“/”
而不是ingres.kubernetes.io/rewrite-target:“/”
2) 注释添加基url在0.22.0中被删除。这也是nginx注释,不是gce。更多信息请访问
3) 另外,我相信,如果您想要获得正确的路径,您不需要重写目标
从我的战俘那里应该有这样的东西:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: whatever
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.global-static-ip-name: "my-static-ip-name"
spec:
tls:
- secretName: my-tls-secret
hosts:
- whatever.my-awesome-project.com
rules:
- host: whatever.my-awesome-project.com
http:
paths:
- path: /api/whatever
backend:
serviceName: whatever-service
servicePort: 80
- path: /api/not-whatever
backend:
serviceName: not-whatever-service
servicePort: 80
- path: /images/*
backend:
serviceName: not-whatever-service
servicePort: 80
很多事情取决于您使用的入口和版本。你有可能搬到nginx吗
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: whatever
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.global-static-ip-name: "my-static-ip-name"
spec:
tls:
- secretName: my-tls-secret
hosts:
- whatever.my-awesome-project.com
rules:
- host: whatever.my-awesome-project.com
http:
paths:
- path: /api/whatever
backend:
serviceName: whatever-service
servicePort: 80
- path: /api/not-whatever
backend:
serviceName: not-whatever-service
servicePort: 80
- path: /images/*
backend:
serviceName: not-whatever-service
servicePort: 80