Traefik [=10th=] - Kubernetes - 连接被拒绝

Treafik UI - Kubernetes - Connection Refused

我已经在 Kubernetes 上安装了 Traefik,并按照官方教程进行操作。 我有一个由 4 台机器组成的 Kubernetes 集群。

当我运行 kubectl --namespace=kube-system get pods 我看到traefik-ingress-controller-678226159-eqseo,所以一切都很好。

然后我执行了:

kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml

然后 运行:

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

结果是: http://192.168.178.31 traefik-ui.minikube/etc/hosts

我进一步编辑了 kubectl -n kube-system edit service traefik-web-ui 服务并更改了 类型 NodePort.

当我终于 运行 $ curl http://192.168.178.31:31107 我得到:

curl: (7) Failed to connect to 192.168.178.31 port 31107: Connection refused

有谁知道,为什么我的连接被拒绝?

编辑 1:

登录自 kubectl logs -f traefik-ingress-controller-68994b879-5z2xr -n kube-system:

time="2018-05-13T09:55:48Z" level=info msg="Traefik version v1.6.0 built on 2018-04-30_09:28:44PM"
time="2018-05-13T09:55:48Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://docs.traefik.io/basics/#collected-data\n"
time="2018-05-13T09:55:48Z" level=info msg="Preparing server http &{Address::80 TLS:<nil> Redirect:<nil> Auth:<nil> WhitelistSourceRange:[] WhiteList:<nil> Compress:false ProxyProtocol:<nil> ForwardedHeaders:0x14ed5e50} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s"
time="2018-05-13T09:55:48Z" level=info msg="Preparing server traefik &{Address::8080 TLS:<nil> Redirect:<nil> Auth:<nil> WhitelistSourceRange:[] WhiteList:<nil> Compress:false ProxyProtocol:<nil> ForwardedHeaders:0x14ed5e60} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s"
time="2018-05-13T09:55:48Z" level=info msg="Starting server on :80"
time="2018-05-13T09:55:48Z" level=info msg="Starting provider *kubernetes.Provider {\"Watch\":true,\"Filename\":\"\",\"Constraints\":[],\"Trace\":false,\"TemplateVersion\":0,\"DebugLogGeneratedTemplate\":false,\"Endpoint\":\"\",\"Token\":\"\",\"CertAuthFilePath\":\"\",\"DisablePassHostHeaders\":false,\"EnablePassTLSCert\":false,\"Namespaces\":null,\"LabelSelector\":\"\",\"IngressClass\":\"\"}"
time="2018-05-13T09:55:48Z" level=info msg="Starting server on :8080"
time="2018-05-13T09:55:48Z" level=info msg="ingress label selector is: \"\""
time="2018-05-13T09:55:48Z" level=info msg="Creating in-cluster Provider client"
time="2018-05-13T09:55:48Z" level=info msg="Server configuration reloaded on :80"
time="2018-05-13T09:55:48Z" level=info msg="Server configuration reloaded on :8080"
time="2018-05-13T09:55:53Z" level=info msg="Server configuration reloaded on :80"
time="2018-05-13T09:55:53Z" level=info msg="Server configuration reloaded on :8080"
time="2018-05-13T09:55:55Z" level=info msg="Server configuration reloaded on :80"
time="2018-05-13T09:55:55Z" level=info msg="Server configuration reloaded on :8080"

https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml 中有以下入口定义:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: kube-system
spec:
  rules:
  - host: traefik-ui.minikube
    http:
      paths:
      - path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: web

这意味着您应该通过入口服务访问 traefik-web-ui。

如果您将 traefik 部署为 Deployment (https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-deployment.yaml), you should check the NodePort returned by kubectl describe svc traefik-ingress-service -n kube-system and use it as your url (http://traefik-ui.minikube:xxx)

(您不必将 traefik-web-ui 更改为 NodePort)

如果您使用了 DeamonSet (https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-ds.yaml),只需使用 http://traefik-ui.minikube

如果您想直接访问 traefik-web-ui,最简单的方法是: minikube service traefik-web-ui --url