Куда делась карта конфигурации 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 ответа

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

  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

Ответ Якуба довольно хорош. Но одна вещь, которая вызывает сожаление, заключается в том, что если 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):

  1. в соответствии с руководством по установке 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

  2. создать DNS-запись или изменить файл хоста с именем хоста - сопоставление IP для вас настроено на последнем шаге

Другие вопросы по тегам