【问题标题】:Traefik dashboard refuses connection using minikubeTraefik 仪表板拒绝使用 minikube 连接
【发布时间】:2019-11-27 14:27:02
【问题描述】:

我尝试使用 helm 将 Traefik (v1.7) 部署到本地 minikube 集群

helm install --values values.yml stable/traefik

values.yml:

dashboard:
  enabled: true
  domain: dashboard.localhost
kubernetes:
  namespaces:
    - default
    - kube-system

我在 /etc/hosts 文件中添加了 dashboard.localhost 但我无法访问仪表板。

curl http://dashboard.localhost:31745/
404 page not found

curl http://dashboard.localhost/ 

没有回应...

在浏览器中:

minikube service list
|----------------------|-----------------------------------|--------------------------------|-----|
|      NAMESPACE       |               NAME                |          TARGET PORT           | URL |
|----------------------|-----------------------------------|--------------------------------|-----|
| default              | coiled-cardinal-traefik           | http://192.168.99.111:31731    |
|                      |                                   | http://192.168.99.111:31745    |
| default              | coiled-cardinal-traefik-dashboard | No node port                   |
| default              | kubernetes                        | No node port                   |
| default              | traefik-web-ui                    | No node port                   |
| kube-system          | kube-dns                          | No node port                   |
| kube-system          | tiller-deploy                     | No node port                   |
| kube-system          | traefik-web-ui                    | No node port                   |
| kubernetes-dashboard | dashboard-metrics-scraper         | No node port                   |
| kubernetes-dashboard | kubernetes-dashboard              | No node port                   |
|----------------------|-----------------------------------|--------------------------------|-----|


kubectl get svc coiled-cardinal-traefik --namespace default -w
NAME                      TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
coiled-cardinal-traefik   LoadBalancer   10.111.40.100   <pending>     80:31731/TCP,443:31745/TCP   36m

有科动物吗?

更新:

A 根据 Traefik 文档创建并应用了两个服务。 我的变种:

apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: default
spec:
  selector:
    app: traefik
  ports:
  - name: web
    port: 80
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: default
spec:
  rules:
  - host: dashboard.localhost
    http:
      paths:
      - path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: web

Traefic 1.7 文档变体:

apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: kube-system
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  - port: 80
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: traefik-ui.minikube
    http:
      paths:
      - backend:
          serviceName: traefik-web-ui
          servicePort: 80

我的 /etc/hosts

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1   test
192.168.99.111  dashboard.localhost
192.168.99.111 traefik-ui.minikube

打开http://traefik-ui.minikube 最终结果是 ERR_CONNECTION_TIMED_OUT...

【问题讨论】:

    标签: traefik minikube


    【解决方案1】:

    要访问仪表板,您必须创建两个服务,如 traefik docs 中所述:

    apiVersion: v1
    kind: Service
    metadata:
      name: traefik-web-ui
      namespace: kube-system
    spec:
      selector:
        k8s-app: traefik-ingress-lb
      ports:
      - port: 80
        targetPort: 8080
    ---
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: traefik-web-ui
      namespace: kube-system
      annotations:
        kubernetes.io/ingress.class: traefik
    spec:
      rules:
      - host: traefik-ui.minikube
        http:
          paths:
          - backend:
              serviceName: traefik-web-ui
              servicePort: 80
    

    然后在etc/hosts:中添加一个条目

    echo "$(minikube ip) traefik-ui.minikube" | sudo tee -a /etc/hosts
    

    【讨论】:

    • 我做到了。 apiVersion:v1 种类:服务元数据:名称:traefik-web-ui 命名空间:默认规范:选择器:app:traefik 端口:- 名称:web 端口:80 目标端口:8080 --- apiVersion:extensions/v1beta1 种类:入口元数据:名称:traefik-web-ui 命名空间:默认规范:规则:-主机:dashboard.localhost http:路径:-路径:/后端:服务名称:traefik-web-ui servicePort:web
    • values.yaml 中取消注释(如果已注释)并将serviceType: 更改为LoadBalancer
    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2022-01-11
    • 2021-08-12
    • 2021-11-27
    • 1970-01-01
    相关资源
    最近更新 更多