Как открыть панель мониторинга traefik v2 в k3d/k3s с помощью конфигурации?

#kubernetes #traefik #configmap #k3s #k3d

Вопрос:

*Перекрестное размещение в обсуждениях k3d на github, в теме на форумах фермеров и на доске обсуждений сообщества traefik

Учебные пособия с 2020 года относятся к редактированию конфигурационной карты traefik. Куда он делся?

Инструкции по установке traefik содержат несколько способов отображения панели мониторинга:

  1. Это работает, но не является постоянным: использование 1-кратной команды kubectl -n kube-system port-forward $(kubectl -n kube-system get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000
  2. Я не могу заставить это работать: создать файл yaml «Входящий маршрут» и применить его к кластеру. Это может быть связано с Клиппером LB и/или моим невежеством.

В развертывании traefik не используется конфигурационная карта

Для кластера из 2 серверов и 2 агентов… kubectl -n kube-system describe deploy traefik не показывает никакой конфигурационной карты:

   Volumes:
   data:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
   tmp:
    Type:               EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:             
    SizeLimit:          <unset>
  Priority Class Name:  system-cluster-critical
 

Нет конфигурационной карты «traefik»

И, kubectl get -n kube-system cm показывает:

 NAME                                 DATA   AGE
chart-content-traefik                0      28m
chart-content-traefik-crd            0      28m
chart-values-traefik                 1      28m
chart-values-traefik-crd             0      28m
cluster-dns                          2      28m
coredns                              2      28m
extension-apiserver-authentication   6      28m
k3s                                  0      28m
k3s-etcd-snapshots                   0      28m
kube-root-ca.crt                     1      27m
local-path-config                    4      28m
 

Стручки traefik не используют конфигурационную карту

Описание модуля тоже ничего не дает. kubectl -n kube-system describe pod traefik-.... также не приводит к созданию конфигурационной карты.

Порты Traefik используются, но не отвечают

Тем не менее, я видел аргументы для модуля traefik с используемыми портами:

       --entryPoints.traefik.address=:9000/tcp
      --entryPoints.web.address=:8000/tcp
      --entryPoints.websecure.address=:8443/tcp
 

Однако эти порты не открыты. Итак, я попробовал перенести вперед kubectl port-forward pods/traefik-97b44b794-r9srz 9000:9000 8000:8000 8443:8443 -n kube-system --address 0.0.0.0 , но когда я curl -v localhost:9000 (или 8000 , или 8443) и curl -v localhost:9000/dashboard , я получаю «404 не найден».

После подключения терминала к traefik я обнаружил, что локальные порты открыты, но, похоже, ничего не отвечает:

 / $ netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
tcp        0      0 :::8443                 :::*                    LISTEN      
tcp        0      0 :::8000                 :::*                    LISTEN      
tcp        0      0 :::9000                 :::*                    LISTEN      
/ $ wget localhost:9000
Connecting to localhost:9000 ([::1]:9000)
wget: server returned error: HTTP/1.1 404 Not Found
/ $ wget localhost:8000
Connecting to localhost:8000 ([::1]:8000)
wget: server returned error: HTTP/1.1 404 Not Found
/ $ wget localhost:8443
Connecting to localhost:8443 ([::1]:8443)
wget: server returned error: HTTP/1.1 404 Not Found
 

Версии

 k3d version v4.4.7
k3s version v1.21.2-k3s1 (default)
 

Комментарии:

1. Я думаю, что тебе нужно заняться kubectl describe на стручке

2. Спасибо @P…. Я обновил вопрос, указав там результаты. Я вижу потенциальные порты. Может быть, мне просто нужно выяснить, как их разоблачить…

3. Здравствуйте, у меня та же проблема, я думал, что она не работает, но оказалось, что мне нужно добавить /dashboard/ URL. Попробуйте проверить http://localhost:9000/dashboard/#/http/routers , отражен ли вновь примененный маршрут входа из dashboard.yml . Если это так, то вам нужно только получить доступ http://<domain>/dashboard/

Ответ №1:

Я нашел решение и, надеюсь, кто-нибудь скоро найдет лучшее

  1. вам нужно управлять кластером k3s с вашего ПК, а не через ssh в главный узел, поэтому добавьте /etc/rancher/k3s/k3s.yaml его в свой локальный ~/.kube/config (для того, чтобы на последнем шаге перенести его на ваш ПК).
  2. теперь введите имя вашего модуля следующим образом:

kubectl get pod -n kube-system

и сич для traefik-something-somethingElse меня был traefik-97b44b794-bsvjn

  1. теперь эта часть необходима с вашего локального компьютера

kubectl port-forward traefik-97b44b794-bsvjn -n kube-system 9000:9000

  1. зайдите http://localhost:9000/dashboard/ в свой любимый браузер и не забудьте вторую черту
  2. наслаждайтесь приборной панелью

пожалуйста, обратите внимание, что вы должны сначала включить панель /var/lib/rancher/k3s/server/manifests/traefik.yaml мониторинга, добавив

 dashboard:
  enabled: true
 

Комментарии:

1. не могли бы вы, пожалуйста, сделать смелый шаг 4 с акцентом на don't forget the last (/) slash то, что я потратил около получаса, так как не видел этого с самого начала. Спасибо

Ответ №2:

для текущей последней версии k3s (1.21.4):

  1. в соответствии с руководством по установке traefik (https://doc.traefik.io/traefik/getting-started/install-traefik/#exposing-the-traefik-dashboard), создайте панель мониторинга.yaml с соответствующим содержимым CRD и запустите kubectl apply -f dashboard.yaml
  2. создайте запись DNS или измените файл хоста для сопоставления имени хоста и ip, настроенного на последнем шаге