Панель инструментов Traefik / веб-интерфейс 404 при установке через шлем в кластере Digitalocean с одним узлом - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь установить Traefik в качестве моего входного контроллера и балансировщика нагрузки в кластере с одним узлом (Digital Ocean).Следуя официальному руководству по настройке Traefik Я установил Traefik с помощью helm:

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

Затем я создал сервис, открывающий веб-интерфейс kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml

Тогда я ясно вижумой модуль 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

Затем открытие http://external -ip / dashboard / приводит к тому, что страница 404 не найдена

Iпрочитайте тонну ответов и учебных пособий, но продолжайте пропускать что-то.Любая помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Я пишу этот пост, так как информация немного вписывается в комментарий.Потратив достаточно времени на понимание того, как работают k8s и рулевые диаграммы, я решил это так:

Во-первых, я пропустил часть RBAC, я не создавал ClusterRole и ClusterRoleBinding, чтобы авторизовать Traefik для использования K8S API.(поскольку я использую версию 1.12).Следовательно, либо я должен был развернуть ClusterRole и ClusterRoleBinding вручную, либо добавить следующее в мой values.yaml

rbac:
  enabled: true

Во-вторых, я пытался получить доступ к интерфейсу панели мониторинга из ip напрямую, не осознавая, что Traefik использует имя хоста для направления на панель мониторинга.как упомянуто выше @Rico (я голосую за вас, поскольку вы предоставили полезную информацию, но мне не удалось связать все кусочки головоломки в то время).Итак, либо отредактируйте файл /etc/hosts, связывающий ваше имя хоста с external-ip, а затем получите доступ к панели инструментов через браузер или проверьте, что он работает с curl:

curl http://external-ip/dashboard/ -H 'Host: traefik-ui.minikube'

Подводя итог, вы должны иметь возможностьустановить Traefik и получить доступ к пользовательскому интерфейсу его приборной панели, установив:

helm install --values values.yaml stable/traefik
# values.yaml
dashboard:
  enabled: true
  domain: traefik-ui.minikube
rbac:
  enabled: true
kubernetes:
  namespaces:
   - default
   - kube-system

, а затем отредактировав файл hosts и открыв выбранное вами имя хоста.

Теперь запутанная часть из официальной трассы Руководство по установке - это раздел с именем Submitting an Ingress to the Cluster чуть ниже Deploy Traefik using Helm Chart, в котором указывается установка службы и входного объекта для доступа к панели мониторинга.В этом нет необходимости, так как на официальном графике стабильной / трафиковой рулевого управления они есть.Это понадобится вам, если вы хотите установить traefik, развернув все необходимые объекты вручную.Однако для человека, который только начинает с k8s и helm, похоже, что этот раздел необходимо заполнить после установки helm через официальную таблицу стабильных / traefik.

0 голосов
/ 29 ноября 2018

Я полагаю, что это та же проблема, что и this .

Вам нужно либо подключиться с именем хоста traefik-ui.minikube, либо добавить запись host в определение Ingress, например:

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
...