通过 Ingress 的 Kubernetes 仪表板

Tar*_*nko 7 kubernetes kubernetes-dashboard kubernetes-ingress

我有带有 Ingress/Traefik 控制器的 Kubernetes 集群

另外,我使用这里的标准配置安装了仪表板:https : //raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

我正在尝试通过 Ingress 访问仪表板,但出现 404 错误

404 page not found
Run Code Online (Sandbox Code Playgroud)

我的 ingress.yml 文件看起来像这样

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: "traefik"
  name: app-ingress-system
  namespace: kube-system
spec:
  tls:
  - hosts:
    - dashboard.domain.com
    secretName: kubernetes-dashboard-certs
  rules:
  - host: dashboard.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 443
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的 - 路径:(如 /dashboard、/proxy)相同的结果

mpr*_*net 4

发生这种情况是因为没有traefik 所期望的kubernetes-dashboard-certs文件。您应该在 traefik 日志中获取此信息。tls.crttls.key

下一个问题将出现在 traefik 证书和仪表板证书之间。我仍然不明白如何正确修复此问题并使用以下选项配置 traefik:

 ssl.insecureSkipVerify: "true"
Run Code Online (Sandbox Code Playgroud)

我的最后一个是 http 端点不接受登录,最后我声明将 http 重定向到 https 的入口,如下所示:

kubectl apply -f - << EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
    - host: dashboard.domain.com
      http:
        paths:
          - path: /
            backend:
              serviceName: kubernetes-dashboard
              servicePort: 443
EOF
Run Code Online (Sandbox Code Playgroud)

  • 为了在 traefik 尝试通过 SSL 访问后端 kubernetes-dashboard 时解决证书错误,我在 traefik deamonset 配置中的 **args** 添加了 `- --serversTransport.insecureSkipVerify=true` 。[参考](https://doc.traefik.io/traefik/routing/overview/#insecureskipverify) (2认同)