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

ECK部署的Kibana端口转发正常但Traefik Ingress无法访问求助

问题根因

你当前遇到的问题核心来自两点:

  • ECK默认给Kibana服务启用了自签TLS,对外暴露的是HTTPS协议的5601端口,你当前的Ingress配置未告知Traefik后端服务使用HTTPS协议,Traefik默认用HTTP请求HTTPS端口,导致无响应
  • 自签证书不受客户端信任,所以连通后会触发证书告警
  • 你的Kibana配置存在层级错误:http字段的正确位置是spec.http,你错放在了podTemplate.spec下,导致TLS相关配置不生效
解决方案

方案一:保留Kibana自签TLS,调整Ingress配置适配

首先修正Ingress配置,补充Traefik专属注解,指定后端协议并跳过自签证书校验,同时建议将已废弃的networking.k8s.io/v1beta1替换为通用的networking.k8s.io/v1版本:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: k-ingress
  annotations:
    kubernetes.io/ingress.class: traefik
    # Traefik v1 版本用以下两个注解
    traefik.ingress.kubernetes.io/service.serversscheme: https
    traefik.ingress.kubernetes.io/service.insecureskipverify: "true"
    # 若使用Traefik v2+ 版本,替换上面两个注解为以下内容
    # traefik.http.services.kibana.loadbalancer.server.scheme: https
    # traefik.http.services.kibana.loadbalancer.server.insecureskipverify: "true"
spec:
  # 若需要在Ingress层终结TLS,补充以下tls配置,替换为你自己的可信证书Secret
  # tls:
  # - hosts:
  #   - kibana.host.com
  #   secretName: your-trusted-cert-secret
  rules:
    - host: kibana.host.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kibana-kb-http
                port:
                  number: 5601

配置更新后稍等几十秒即可访问,若未配置Ingress层可信证书,首次访问会保留证书告警,属于正常情况。

方案二:关闭Kibana自签TLS,走Ingress统一终结TLS

如果不需要Kibana内部TLS加密,可以直接关闭自签证书,简化链路配置:

  1. 修正Kibana资源配置,关闭自签TLS:
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: kibana
  labels:
    various...
spec:
  version: 7
  count: 1
  elasticsearchRef:
    name: "elasticsearch"
  # http配置在spec层级,不是podTemplate.spec下
  http:
    tls:
      selfSignedCertificate:
        disabled: true
  podTemplate:
    spec:
      containers:
        - name: kibana
          resources:
            limits:
              memory: 2Gi
              cpu: 2
  1. 修改Ingress配置,无需额外后端协议注解,直接配置Ingress层TLS即可:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: k-ingress
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  tls:
  - hosts:
    - kibana.host.com
    secretName: your-trusted-cert-secret # 替换为你的可信证书Secret
  rules:
    - host: kibana.host.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kibana-kb-http
                port:
                  number: 5601

该方案下用户访问时使用Ingress层的可信证书,不会触发证书告警。

排查验证步骤

配置更新后可以按以下顺序验证:

  • 执行kubectl get svc kibana-kb-http确认服务端口配置正确
  • 进入集群内任意Pod执行curl <服务地址:端口>确认Kibana本身可正常访问
  • 查看Traefik控制器日志确认无路由、后端健康检查相关报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:27:03