#kubernetes #traefik #configmap #k3s #k3d
Вопрос:
*Перекрестное размещение в обсуждениях k3d на github, в теме на форумах фермеров и на доске обсуждений сообщества traefik
Учебные пособия с 2020 года относятся к редактированию конфигурационной карты traefik. Куда он делся?
Инструкции по установке traefik содержат несколько способов отображения панели мониторинга:
- Это работает, но не является постоянным: использование 1-кратной команды
kubectl -n kube-system port-forward $(kubectl -n kube-system get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000
- Я не могу заставить это работать: создать файл 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:
Я нашел решение и, надеюсь, кто-нибудь скоро найдет лучшее
- вам нужно управлять кластером k3s с вашего ПК, а не через ssh в главный узел, поэтому добавьте
/etc/rancher/k3s/k3s.yaml
его в свой локальный~/.kube/config
(для того, чтобы на последнем шаге перенести его на ваш ПК). - теперь введите имя вашего модуля следующим образом:
kubectl get pod -n kube-system
и сич для traefik-something-somethingElse
меня был traefik-97b44b794-bsvjn
- теперь эта часть необходима с вашего локального компьютера
kubectl port-forward traefik-97b44b794-bsvjn -n kube-system 9000:9000
- зайдите
http://localhost:9000/dashboard/
в свой любимый браузер и не забудьте вторую черту - наслаждайтесь приборной панелью
пожалуйста, обратите внимание, что вы должны сначала включить панель /var/lib/rancher/k3s/server/manifests/traefik.yaml
мониторинга, добавив
dashboard:
enabled: true
Комментарии:
1. не могли бы вы, пожалуйста, сделать смелый шаг 4 с акцентом на
don't forget the last (/) slash
то, что я потратил около получаса, так как не видел этого с самого начала. Спасибо
Ответ №2:
для текущей последней версии k3s (1.21.4):
- в соответствии с руководством по установке traefik (https://doc.traefik.io/traefik/getting-started/install-traefik/#exposing-the-traefik-dashboard), создайте панель мониторинга.yaml с соответствующим содержимым CRD и запустите
kubectl apply -f dashboard.yaml
- создайте запись DNS или измените файл хоста для сопоставления имени хоста и ip, настроенного на последнем шаге