Kubernetes 通过Digitalocean单节点群集上的helm安装时,Traefik仪表板/web UI 404
我试图将Traefik设置为单节点集群(Digital Ocean)上的入口控制器和负载平衡器。接下来,我使用helm安装了Traefik:Kubernetes 通过Digitalocean单节点群集上的helm安装时,Traefik仪表板/web UI 404,kubernetes,traefik,kubernetes-helm,traefik-ingress,Kubernetes,Traefik,Kubernetes Helm,Traefik Ingress,我试图将Traefik设置为单节点集群(Digital Ocean)上的入口控制器和负载平衡器。接下来,我使用helm安装了Traefik: helm install --values values.yaml stable/traefik # values.yaml dashboard: enabled: true domain: traefik-ui.minikube kubernetes: namespaces: - default - kube-system #outpu
helm install --values values.yaml stable/traefik
# values.yaml
dashboard:
enabled: true
domain: traefik-ui.minikube
kubernetes:
namespaces:
- default
- kube-system
#output
RESOURCES:
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
operatic-emu-traefik-f5dbf4b8f-z9bzp 0/1 ContainerCreating 0 1s
==> v1/ConfigMap
NAME AGE
operatic-emu-traefik 1s
==> v1/Service
operatic-emu-traefik-dashboard 1s
operatic-emu-traefik 1s
==> v1/Deployment
operatic-emu-traefik 1s
==> v1beta1/Ingress
operatic-emu-traefik-dashboard 1s
然后,我创建了公开Web UI的服务
kubectl应用-fhttps://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml
rbac:
enabled: true
然后我可以清楚地看到我的traefik吊舱正在运行,并分配了一个外部ip:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/dashboard ClusterIP 10.245.156.214 <none> 443/TCP 11d
service/kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 14d
service/operatic-emu-traefik LoadBalancer 10.245.137.41 <external-ip> 80:31190/TCP,443:30207/TCP 5m7s
service/operatic-emu-traefik-dashboard ClusterIP 10.245.8.156 <none> 80/TCP 5m7s
名称类型群集IP外部IP端口
服务/仪表盘群集IP 10.245.156.214 443/TCP 11d
service/kubernetes ClusterIP 10.245.0.1 443/TCP 14d
服务/运行emu traefik负载平衡器10.245.137.41 80:31190/TCP,443:30207/TCP 5m7s
维修/运行emu traefik仪表盘组合仪表IP 10.245.8.156 80/TCP 5m7s
然后打开导致找不到404页
我读了大量的答案和教程,但总是漏掉一些东西。非常感谢您的帮助 我相信这和我的问题是一样的 您必须连接
traefik ui.minikube
主机名,或者在入口定义中添加host
条目,如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: kube-system
name: traefik-ingress
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: yourown.hostname.com
http:
paths:
- path: /dashboard
backend:
serviceName: traefik-web-ui
servicePort: web
您可以通过以下方式进行检查:
$ kubectl -n kube-system get ingress
我写这篇文章是因为信息有点太多,不适合评论。在花了足够的时间了解k8s和舵图的工作原理后,以下是我解决问题的方法: 首先,我错过了RBAC部分,我没有创建ClusterRole和ClusterRoleBinding来授权Traefik使用K8S API(因为我使用的是1.12版本)。因此,我应该手动部署ClusterRole和ClusterRoleBinding,或者在我的
值中添加以下内容
rbac:
enabled: true
其次,我试图直接从ip访问仪表板ui,但没有意识到Traefik使用主机名将其直接指向上面提到的@Rico仪表板(我投票支持你,因为你提供了有用的信息,但当时我没有连接到所有的拼图)。因此,编辑您的/etc/hosts
文件,将主机名链接到外部ip
,然后通过浏览器访问仪表板,或者测试它是否正在使用curl:
curl http://external-ip/dashboard/ -H 'Host: traefik-ui.minikube'
总之,您应该能够安装Traefik并通过安装以下内容访问其仪表板ui:
helm install --values values.yaml stable/traefik
# values.yaml
dashboard:
enabled: true
domain: traefik-ui.minikube
rbac:
enabled: true
kubernetes:
namespaces:
- default
- kube-system
然后编辑主机文件并打开您选择的主机名
现在,中令人困惑的部分是名为向集群提交入口
的部分,就在使用Helm Chart部署Traefik
下面,该部分指示安装服务和入口对象,以便能够访问仪表板。这是不必要的,因为官方的stable/traefik掌舵图提供了两者。如果您想通过手动部署所有需要的对象来安装traefik,则需要使用该工具。然而,对于刚开始使用k8s和helm的人来说,似乎需要在通过官方stable/traefik图表安装helm后完成该部分。我在入口定义中有主机条目,但它不起作用kubectl-n kube系统获取入口
输出空地址。也许这就是我们所缺少的。我该怎么设置呢?