Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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 使用入口路由流量_Kubernetes_Kubernetes Ingress - Fatal编程技术网

Kubernetes 使用入口路由流量

Kubernetes 使用入口路由流量,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,一年前,我有一个项目的工作实例,现在已经不工作了 它基本上与这里提到的nginx.ingres.kubernetes.io/rewrite target属性的行为变化有关- 我有3个申请表,我想根据条件选择路线 /*到前端群集ip服务 /api/battleship/*战列舰集群ip服务 /api/connect4/*连接四个群集ip服务 一年前有效的例子是 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingr

一年前,我有一个项目的工作实例,现在已经不工作了

它基本上与这里提到的
nginx.ingres.kubernetes.io/rewrite target
属性的行为变化有关-

我有3个申请表,我想根据条件选择路线

  • /*
    到前端群集ip服务
  • /api/battleship/*
    战列舰集群ip服务
  • /api/connect4/*
    连接四个群集ip服务
一年前有效的例子是

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - http:
        paths:
          - path: /
            backend:
              serviceName: frontend-cluster-ip-service
              servicePort: 3000
          - path: /api/connect4/
            backend:
              serviceName: connect-four-cluster-ip-service
              servicePort: 8080
          - path: /api/battleship/
            backend:
              serviceName: battleship-cluster-ip-service
              servicePort: 8080
但是,这已经不起作用了,只有到
/
的路由,即到前端群集ip服务的路由才起作用。路由到其他系列失败,我得到404

然后我了解了nginx.ingres.kubernetes.io/rewrite target中的变化

我当时试着跟着

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - http:
        paths:
          - path: /
            backend:
              serviceName: frontend-cluster-ip-service
              servicePort: 3000
          - path: /api/connect4(/|$)(.*)
            backend:
              serviceName: connect-four-cluster-ip-service
              servicePort: 8080
          - path: /api/battleship(/|$)(.*)
            backend:
              serviceName: battleship-cluster-ip-service
              servicePort: 8080

现在,
连接四个集群ip服务
战列舰集群ip服务
的路由正在工作,但
前端集群ip服务
不工作,并且少数js文件加载显示错误:


我也有同样的问题,只是重写有点复杂(只针对一条不同的路径)

为每条路径创建多个入口对我来说很有效,但可能不是最干净的解决方案

我的入口定义:

能否尝试从注释中完全删除重写目标?请查收: