与Kubernetes入口中的'path'和'serviceName'匹配的通配符
我有一个Kubernetes集群,其中包含一系列未定义的服务,我想做的是在一个端点上为每个服务提供服务,能够随时添加新的服务,而这些服务在端点上仍然可用 我正在寻找一种方法,在我的入口中设置与Kubernetes入口中的'path'和'serviceName'匹配的通配符,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我有一个Kubernetes集群,其中包含一系列未定义的服务,我想做的是在一个端点上为每个服务提供服务,能够随时添加新的服务,而这些服务在端点上仍然可用 我正在寻找一种方法,在我的入口中设置serviceName上的通配符,以便/xx将路由到servicexx,/yy到serviceyy,等等。 我还可以使用的另一个解决方案是匹配http://xx.myurl.com至维修xx 这对库伯内特斯来说是可行的吗 我想象类似的事情 -路径:/(*) 后端: 服务名称:$1 服务端口:80 谢谢 Co
serviceName
上的通配符,以便/xx
将路由到servicexx
,/yy
到serviceyy
,等等。
我还可以使用的另一个解决方案是匹配http://xx.myurl.com
至维修xx
这对库伯内特斯来说是可行的吗
我想象类似的事情
-路径:/(*)
后端:
服务名称:$1
服务端口:80
谢谢
Colin这不是入口系统支持的功能。其他一些工具可能,例如,您可以使用静态Nginx配置轻松完成此操作。是的,您可以使用入口完成此操作,以下是两种解决方案: 对于
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
发出请求,该请求将作为my domain.com/values
转发到xx
服务
了解更多关于它的信息,请访问
正如您在这里看到的,路径是如何工作的:
xx.my domain.com
的另一个解决方案,您可以这样做:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-service
labels:
name: ingress-service
namespace: my-namespace
spec:
rules:
- host: xx.my-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: xx
port:
number: 80
- host: yy.my-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: yy
port:
number: 80
你可以通过了解更多信息,谢谢,这也是我的想法,谢谢你确认:)谢谢你的回答。这并不是我想要的:我希望从端点猜测服务名称。换句话说,我想说“端点
(*)
将重定向到服务$1
”,所以我不想自己定义服务名称。我将有N个服务,这些服务都应该在一个端点上使用相同的名称,因此我不希望每次(1/2)我在kube之外使用一个代理来指定这对端点/服务名称,该代理使用URL(URL.com/endpoint
)并将流量重定向到服务endpoint
,在代理启动之后,如果我添加了一个新的服务foo,它可以在url.com/foo
上使用,而无需修改我的代理文件。(2/2)@ColinFAY哦,我明白了,那是我的错。我误解了这个问题:)但是是的,那就有道理了。