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
我已经在 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