在 Kubernetes 入口中匹配 `path` 和 `serviceName` 的通配符

问题描述

我有一个 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

了解更多信息