这主要取决于您的要求,您尝试使用什么。
如果您只是打算在 sprint 启动中使用 Nginx 入口,您可以简单地使用 Nginx 入口控制器 并设置 入口 .
如果您需要 API 网关 功能(例如 reate 限制、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
因此,当任何请求到达特定服务时,域 1 会将您的请求路由到服务。
service-2.example.com ---> service-2
service-3.example.com ---> service-3
虽然在基于路径的中,Nginx 会根据 URL 中的路径前缀重定向请求
api.example.com/service-2/* ---> service-2