问题描述
我有一个 Kubernetes 集群,其中包含一系列未定义的服务,我想要做的是在端点上为每个服务提供服务,并且能够随时添加新服务,并且它们在端点上仍然可用。
我正在寻找一种方法,在我的入口中设置 serviceName
上的通配符,以便将 /xx
路由到服务 xx
,/yy
到服务 yy
等
我也可以使用的另一个解决方案是将 http://xx.myurl.com
与服务 xx
匹配。
Kubernetes 可以做到这一点吗?
我想象着类似的东西
- path: /(.*)
backend:
serviceName: $1
servicePort: 80
谢谢,
科林
解决方法
这不是 Ingress 系统支持的。其他一些工具可能,例如,您可以使用静态 Nginx 配置轻松完成此操作。
,是的,你可以通过 ingress 来实现,这里有两种解决方案:
对于['id','firstName','lastNight','email']
在入口服务中,您可以执行以下操作:
UsersSchema
因此指向 my-domain.com/xxx
的所有内容都将指向 apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-service
labels:
name: ingress-service
namespace: my-namespace
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: my-domain.com
http:
paths:
- path: /xx/(.*)
pathType: Prefix
backend:
service:
name: xx
port:
number: 80
- path: /yy/(.*)
pathType: Prefix
backend:
service:
name: yy
port:
number: 80
服务,并且将从路径中删除 my-domain.com/xx
,例如:
如果您向 xx
发出请求,该请求将作为 /xx/
转发到 my-domain.com/xx/values
服务。
请访问 https://kubernetes.io/docs/concepts/services-networking/ingress/#simple-fanout
了解更多信息您还可以在这里看到路径是如何工作的:https://kubernetes.io/docs/concepts/services-networking/ingress/#examples
my-domain.com/values
的另一种解决方案您可以这样做:
xx
您可以在https://kubernetes.io/docs/concepts/services-networking/ingress/#hostname-wildcards
了解更多信息