Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 通过Digitalocean单节点群集上的helm安装时,Traefik仪表板/web UI 404_Kubernetes_Traefik_Kubernetes Helm_Traefik Ingress - Fatal编程技术网

Kubernetes 通过Digitalocean单节点群集上的helm安装时,Traefik仪表板/web UI 404

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

我试图将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

#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系统获取入口
输出空地址。也许这就是我们所缺少的。我该怎么设置呢?