Куда делась карта конфигурации k3d traefik?
* Перекрестно размещено в обсуждениях k3d на github и в ветке форумов Rancher
Учебники от 2020 года относятся к редактированию карты конфигурации traefik. Куда это делось?
При развертывании traefik не используется конфигурационная карта
Для кластера с двумя серверами и двумя агентами ...
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 pods не использует конфигурационную карту
Описание стручка тоже ничего не дает.
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 Not Found».
Получив терминал для 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)
3 ответа
Я нашел решение и, надеюсь, скоро кто-то найдет лучшее
- вам нужно управлять своим кластером 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
Ответ Якуба довольно хорош. Но одна вещь, которая вызывает сожаление, заключается в том, что если k3s перезагружается, конфигурации сбрасываются. Согласно документам k3s, если вы создаете пользовательский файл с именем
/var/lib/rancher/k3s/server/manifests/traefik-config.yaml
, traefik k3s автоматически обновится с этой новой конфигурацией и будет использовать ее значения. Вот что у меня есть:
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
dashboard:
enabled: true
ports:
traefik:
expose: true # this is not recommended in production deployments, but I want to be able to see my dashboard locally
logs:
access:
enabled: true
С этой настройкой вы можете пропустить
port-forward
и просто перейти к
http://localhost:9000/dashboard/
напрямую!
для актуальной последней версии k3s (1.21.4):
в соответствии с руководством по установке traefik (https://doc.traefik.io/traefik/getting-started/install-traefik/#exposing-the-traefik-dashboard), создайте dashboard.yaml с надлежащим содержимым CRD и запустите
kubectl apply -f /vagrant/HelmWorkShop/traefik-dashboard/dashboard.yaml
создать DNS-запись или изменить файл хоста с именем хоста - сопоставление IP для вас настроено на последнем шаге