[英]Ingress file for Angular+Springboot application
我有一個 Angular + Spring 啟動微服務應用程序,其中大約有 10 個后端微服務。 它是一個相當大的應用程序,可能有超過 100 個 REST 端點。 我們正在考慮遷移到本地 kubernetes。 我想知道如何定義入口文件,是否還需要在入口中的 spring 應用程序中定義所有應用程序 REST 端點? 我檢查了幾個示例,我可以看到它們使用入口作為 Spring API 網關。 那是正確的架構嗎? 誰能指出我一個合適的例子?
主要取決於您的要求,您嘗試使用的內容。
如果您只是打算在 sprint 引導中使用Nginx入口,您可以簡單地使用Nginx 入口 controller並設置入口。
如果您需要API 網關功能,例如重新限制、API 密鑰、基本身份驗證等,您需要使用 API 網關,如 Kong 和所有。
大約 10 個后端微服務。 它是一個相當大的應用程序,可能有超過 100 個 REST 端點。
您可以使用不同的域路由或不同的基於路徑的路由為每個微服務創建1個入口。
基於子域的路由
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
kubernetes.io/ingress.class: nginx
rules:
- host: service-1.example.com
http:
paths:
- backend:
serviceName: service-1
servicePort: 9000
path: /(.*)
- host: service-2.example.com
http:
paths:
- backend:
serviceName: service-2
servicePort: 8000
path: /(.*)
- host: service-3.example.com
http:
paths:
- backend:
serviceName: service-3
servicePort: 8000
path: /(.*)
基於路徑的單域路由api.example.com
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.example.com
http:
paths:
- path: /service-1
pathType: Prefix
backend:
service:
name: service-1
port:
number: 80
- path: /service-2
pathType: Prefix
backend:
service:
name: service-2
port:
number: 80
因此,當任何請求到達特定服務時,域一會將您的請求路由到服務。
service-2.example.com ---> service-2
service-3.example.com ---> service-3
在基於路徑的Nginx 中,將根據 URL 中的路徑前綴重定向請求
api.example.com/service-2/* ---> service-2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.