我有一个很大的应用程序分成几个微服务:
Blog
Blog CMS
Ecommerce
Dashboard
所有内容都通过Kubernetes部署到Google Cloud Engine。
所有应该在同一个域名下提供,比如www.bigapp.com。
每个部分:博客,电子商务,仪表板等......是一个React应用程序,它存在于它自己的Docker镜像和pod中。
我用Kubernetes创建了一个Ingress并在GCE上进行了部署。
Ingress文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
annotations:
kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: ingress-front-end-ip-test
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: ecommerce
servicePort: 4001
- path: /buy
backend:
serviceName: ecommerce
servicePort: 4001
- path: /buy/*
backend:
serviceName: ecommerce
servicePort: 4001
- path: /dashboard
backend:
serviceName: dashboard
servicePort: 4002
- path: /dashboard/*
backend:
serviceName: dashboard
servicePort: 4002
- path: /news
backend:
serviceName: news
servicePort: 4003
- path: /news/*
backend:
serviceName: news
servicePort: 4003
当用户在www.bigapp.com或www.gibapp.com/buy中输入时,它将被定向到ecommerce
应用。
到目前为止一切都很好。
但如果用户试图访问www.bigapp.com/dashboard,ecommerce
应用的路由器将不允许这样做。
非常感谢任何帮助!