[英]K8S - Ingress - Route 2 different applications
在我的minikube k8s集群中,我有2个应用程序/服务。
这是我拥有的服务的入口控制器。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-tutorial
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
backend:
serviceName: default-http-backend
servicePort: 80
rules:
- host: mysite.com
http:
paths:
- path: /sva
backend:
serviceName: app-a
servicePort: 8080
- path: /svb
backend:
serviceName: app-b
servicePort: 8150
当我键入mysite.com/sva
或mysite.com/svb
它会路由到适当的服务。 但是,没有加载任何静态文件(js, css, images etc)
,因为它们似乎从mysite.com
而不是mysite.com/sva/
请求资源。
如何让它寻找特定服务下的资源?
尝试在入口中添加以下注释
ingress.kubernetes.io/add-base-url:“true”
将解决这个问题。
您也可以查看: https : //github.com/kubernetes/ingress-nginx/issues/333
根据苛刻的Manvar回答,到目前为止,看起来像重写在静态资源上不起作用。
这是我计划遵循的变通办法,可路由sva.mysite.com
或svb.mysite.com
类的差异应用程序。 工作正常。 如果有人面临类似问题,只需添加此作为答案。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-tutorial
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
backend:
serviceName: default-http-backend
servicePort: 80
rules:
- host: sva.mysite.com
http:
paths:
- path: /
backend:
serviceName: app-a
servicePort: 8080
- host: svb.mysite.com
http:
paths:
- path: /
backend:
serviceName: app-b
servicePort: 8150
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.