You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Ingress通用规则覆盖Kibana路径导致跳转异常如何解决

Kibana Ingress路径前缀丢失问题解决方案

问题的核心原因有两个:

  • Kibana默认运行在根路径/下,生成的跳转链接、资源路径不会自动携带/kibana前缀,导致跳转后的/login请求命中通用根路径规则
  • 之前的rewrite规则配置逻辑和Kibana的路径处理逻辑不匹配

推荐方案:修改Kibana基础路径配置(稳定无隐患)

步骤1:调整Kibana运行参数

在Kibana的Deployment配置中新增以下环境变量,告知Kibana它的对外访问前缀是/kibana:

env:
- name: SERVER_BASEPATH
  value: "/kibana"
- name: SERVER_REWRITEBASEPATH
  value: "true"

配置生效后,Kibana自动生成的所有跳转链接、静态资源路径都会自动带上/kibana前缀,比如之前的/login?next=%2F会变成/kibana/login?next=%2Fkibana%2F,自然会匹配kibana专属的Ingress规则,不会被通用根路径规则捕获。

步骤2:修正Kibana的Ingress配置

将Kibana Ingress的rewrite注解调整为如下内容:

annotations:
  nginx.ingress.kubernetes.io/ssl-redirect: "false"
  nginx.ingress.kubernetes.io/rewrite-target: /$2

这个配置会把匹配到的/kibana/xxx路径中的xxx部分(也就是正则捕获的$2)转发给Kibana服务的根路径,匹配Kibana的路径处理逻辑。


临时兼容方案:无需修改Kibana配置,仅调整Ingress规则

如果你暂时无法修改Kibana的运行配置,可以通过Ingress的proxy-redirect注解自动修改Kibana返回的跳转头,补全路径前缀:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kibana
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/proxy-redirect-from: "/"
    nginx.ingress.kubernetes.io/proxy-redirect-to: "/kibana/"
spec:
  tls:
  - hosts:
    - web10
    secretName: k8s-ingress-tls
  rules:
  - http:
      paths:
      - path: /kibana(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: kibana
            port:
              number: 5601

这个配置会自动把Kibana返回的Location响应头中/开头的路径替换为/kibana/,实现跳转路径自动补全前缀,但可能存在静态资源加载异常的隐患,仅推荐临时使用。


配置生效后可以执行kubectl describe ingress kibana确认规则正常加载,之后访问/kibana路径就不会被通用根路径规则捕获。

内容的提问来源于stack exchange,提问作者lovrodoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 03:57:04