Kubernetes-入口-被更一般的规则捕获

Kubernetes-入口-被更一般的规则捕获,kubernetes,kubernetes-ingress,nginx-ingress,microk8s,Kubernetes,Kubernetes Ingress,Nginx Ingress,Microk8s,我正在尝试为在我的microk8s集群中运行的服务(Kibana)设置入口规则,但我遇到了一些问题 建立的第一条规则是 Name: web-ingress Namespace: default Address: 127.0.0.1 Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found

我正在尝试为在我的microk8s集群中运行的服务(Kibana)设置入口规则,但我遇到了一些问题

建立的第一条规则是

Name:             web-ingress
Namespace:        default
Address:          127.0.0.1
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
  k8s-ingress-tls terminates web10
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /   web-service:8080 (10.1.72.26:8080,10.1.72.27:8080)
Annotations:  nginx.ingress.kubernetes.io/rewrite-target: /
              nginx.ingress.kubernetes.io/ssl-redirect: false
Events:       <none>
名称:web入口
名称空间:默认值
地址:127.0.0.1
默认后端:默认http后端:80()
TLS:
k8s入口tls终止web10
规则:
主机路径后端
----        ----  --------
*
/web服务:8080(10.1.72.26:8080,10.1.72.27:8080)
注释:nginx.ingres.kubernetes.io/rewrite-target:/
nginx.ingres.kubernetes.io/ssl-redirect:false
活动:
我正在尝试将Kibana服务设置为在路径/Kibana上获得服务

Name:             kibana
Namespace:        default
Address:          127.0.0.1
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
  k8s-ingress-tls terminates web10
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /kibana(/|$)(.*)   kibana:5601 (10.1.72.39:5601)
Annotations:  nginx.ingress.kubernetes.io/ssl-redirect: false
Events:
  Type    Reason  Age   From                      Message
  ----    ------  ----  ----                      -------
  Normal  CREATE  17m   nginx-ingress-controller  Ingress default/kibana
  Normal  UPDATE  17m   nginx-ingress-controller  Ingress default/kibana
名称:基巴纳
名称空间:默认值
地址:127.0.0.1
默认后端:默认http后端:80()
TLS:
k8s入口tls终止web10
规则:
主机路径后端
----        ----  --------
*
/基巴纳(/|$)(*)基巴纳:5601(10.1.72.39:5601)
注释:nginx.ingres.kubernetes.io/ssl-redirect:false
活动:
从消息中键入原因年龄
----    ------  ----  ----                      -------
正常创建1700万nginx入口控制器入口默认/kibana
正常更新17m nginx入口控制器入口默认/kibana
我的问题是Kibana做的第一件事是返回一个302重定向到主机/login?next=%2F,该重定向由第一条入口规则解决,因为现在我丢失了/Kibana路径

我尝试添加
nginx.ingres.kubernetes.io/rewrite-target:/kibana/$2
,但重定向看起来就像
host/login?next=%2Fkibana%2F
,这根本不是我想要的


如果我删除第一条规则,我只会在Kibana重定向到主机/登录时得到404?next=%2F

将以下注释添加到
Kibana
ingress,以便nginx ingress使用正则表达式解释
/Kibana(/|$)(.*)
路径:

 nginx.ingress.kubernetes.io/use-regex: "true"
其他细节: 要让kibana知道它在
/kibana
路径上运行,请将以下env变量添加到kibana pod/部署中:

        - name: SERVER_BASEPATH
          value: /kibana

它使用正则表达式解释它,我需要重写路径吗?Kibana本身不在主机:port/Kibana上,它在主机:port上。我遇到的问题是,它被重定向到主机/login?next=%2F,并且我丢失了/kibana部分,因此它通过第一个入口规则得到解决。希望我解释得很好,我会把它添加到主帖子中。@lovrodoe,不需要重写,你只需要告诉kibana它在
/kibana
路径上运行,方法是在我的答案中添加我添加的环境变量(环境变量只针对kibana,其他应用可能需要不同的环境变量或设置).更改服务器基本路径时,Kibana出现所有问题后,必须进行重写。我使用的设置是
nginx.ingres.kubernetes.io/rewrite-target://$2 break在my.yml中,现在一切正常。谢谢你,卢克曼。