You need to enable JavaScript to run this app. Kubernetes Dashboard经Nginx+Traefik访问未跳转登录页问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Dashboard经Nginx+Traefik访问未跳转登录页问题求助

问题排查与配置调整方案

核心问题原因

当前配置存在三个核心错误导致无法正常跳转登录页:

  • 端口映射不匹配:Traefik IngressRoute配置的service端口与Kubernetes Dashboard实际暴露端口不符
  • 多层SSL冲突:Nginx、Traefik、Dashboard三层都在处理HTTPS请求,证书不匹配导致请求中断
  • Dashboard默认策略限制:Dashboard默认强制HTTPS访问,未开启HTTP模式下的登录入口

具体调整步骤

1. 修改Kubernetes Dashboard启动配置

新增启动参数开启HTTP访问模式,无需Dashboard自身加载证书:

spec:
      volumes:
        # 可删除kubernetes-dashboard-certs卷配置,不需要再加载证书
        - name: tmp-volume
          emptyDir: {}
      containers:
        - name: kubernetes-dashboard
          image: 'kubernetesui/dashboard:v2.3.1'
          args:
            - '--namespace=kube-system'
            - '--metrics-provider=none'
            # 新增以下两个参数
            - '--insecure-bind-address=0.0.0.0'
            - '--enable-insecure-login'
          ports:
            # 仅保留HTTP端口即可
            - name: http
              containerPort: 5443
              protocol: TCP

修改后重新apply该Deployment配置即可生效。

2. 调整Traefik IngressRoute配置

删除Traefik侧TLS配置,直接走HTTP协议转发到Dashboard的HTTP端口:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: kubernetes-dashboard-route
  namespace: kube-system
spec:
  entryPoints:
    # 使用Traefik的HTTP入口,对应你实际链路中的8000端口
    - web
  # 删除整个tls字段,不需要Traefik处理证书
  routes:
    - kind: Rule
      match: Host(`kubernetes.poemhub.top`)
      services:
        - name: kubernetes-dashboard
          # 端口改为Dashboard Service对应5443容器端口的端口,若Service直接暴露5443则直接填5443即可,原配置的9090为错误配置
          port: 5443

3. 修改Nginx反向代理配置

仅在Nginx侧做SSL卸载,后端请求走HTTP协议到Traefik:

server {
        listen       443 ssl;
        server_name  kubernetes.poemhub.top;
        
        ssl_certificate /etc/letsencrypt/live/poemhub/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/poemhub/privkey.pem;
        # 新增X-Forwarded-Proto头,告知后端链路外层为HTTPS协议
        proxy_set_header X-Forwarded-Proto https;

        location / {
                client_max_body_size 1m;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_read_timeout 3600;
                # 改为http协议,端口改为Traefik的HTTP入口8000
                proxy_pass http://127.0.0.1:8000;
        }
}

修改后执行nginx -s reload重载配置即可。

验证

所有配置更新完成后,重新访问https://kubernetes.poemhub.top即可正常打开登录页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 17:15:03