Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与Kubernetes入口中的'path'和'serviceName'匹配的通配符_Kubernetes_Kubernetes Ingress_Nginx Ingress - Fatal编程技术网

与Kubernetes入口中的'path'和'serviceName'匹配的通配符

与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

我有一个Kubernetes集群,其中包含一系列未定义的服务,我想做的是在一个端点上为每个服务提供服务,能够随时添加新的服务,而这些服务在端点上仍然可用

我正在寻找一种方法,在我的入口中设置
serviceName
上的通配符,以便
/xx
将路由到service
xx
/yy
到service
yy
,等等。 我还可以使用的另一个解决方案是匹配
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哦,我明白了,那是我的错。我误解了这个问题:)但是是的,那就有道理了。