Traefik v2 в Kubernetes. не удалось развернуть. не вижу других сервисов

Я пытался запустить traefik v2.x в minikube, чтобы проверить его и то, как он направляет запрос на необходимую службу. Я вообще не могу получить доступ к своим услугам. было бы хорошо понять, что я делаю не так.

  • minikube работает в VirtualBox VM
  • В ящике виртуальной машины есть лабораторный IP-адрес, на который я хочу отправить URL-запрос.
  • на моем локальном хосте я установил хосты (mydomain.loenter code herecal и mydomain.com) на IP-адрес виртуальной машины minikube

введите описание изображения здесь

Как воспроизвести:

  1. создать 2 пространства имен new-ns и new-who
  2. установить пространство имен по умолчанию для Ingress: kubectl config set-context --current --namespace=new-ns

Все файлы yaml можно найти в https://github.com/vencrena-LT/traefik.

  1. развернуть CustomResourceDefinition
  2. развернуть ClusterRole, ClusterRoleBinding и ServiceAccount (в пространство имен new-ns)
  3. развернуть DaemonSet и Service (в пространство имен new-ns)

затем хотел бы развернуть 2 приложения: в обоих пространствах имен (в целях тестирования)

  1. Развертывание, обслуживание и переход в пространство имен new-ns
  2. Развертывание, обслуживание и переход к новому-новому пространству имен

Панель управления:  введите описание изображения здесь Маршруты: введите описание изображения здесь LocalPod:   введите описание изображения здесь

некоторые логи из traefik pod:

E0206 08:25:21.798628       1 reflector.go:127] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:156: Failed to watch *v1alpha1.TLSStore: failed to list 
*v1alpha1.TLSStore: tlsstores.traefik.containo.us is forbidden: User "system:serviceaccount:new-ns:traefik-ingress-controller" cannot list resource "tlsstores" in API group "traefik.containo.us" at the cluster scope

E0206 08:25:34.653633       1 reflector.go:127] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:156: Failed to watch *v1alpha1.ServersTransport: failed to list
*v1alpha1.ServersTransport: serverstransports.traefik.containo.us is forbidden: User "system:serviceaccount:new-ns:traefik-ingress-controller" cannot list resource "serverstransports" in API group "traefik.containo.us" at the cluster scope

E0206 08:26:02.857094       1 reflector.go:127] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:156: Failed to watch *v1alpha1.IngressRouteUDP: failed to list
*v1alpha1.IngressRouteUDP: ingressrouteudps.traefik.containo.us is forbidden: User "system:serviceaccount:new-ns:traefik-ingress-controller" cannot list resource "ingressrouteudps" in API group "traefik.containo.us" at the cluster scope

какие-нибудь подсказки, что я делаю не так? почему не могу получить доступ к mydomain.local и mydomain.com и увидеть службы whoami. почему на панели управления Traefik не отображаются маршруты


person vencrena    schedule 04.02.2021    source источник
comment
Можете ли вы предоставить журналы из traefik Pod? Ваши IngressRoutes кажутся правильными. Возможно, вам лучше установить Traefik с помощью Helm Chart, как описано здесь?   -  person matt_j    schedule 05.02.2021
comment
У меня нет проблем с развертыванием штурвала. это для изучения и полного понимания того, как это должно работать. хороший совет о журналах - добавление вывода к основному вопросу. похоже, что у учетной записи службы недостаточно разрешений   -  person vencrena    schedule 06.02.2021


Ответы (1)


Ваше определение ClusterRole слишком тонкое:

https://github.com/vencrena-LT/traefik/blob/main/2_roles.yml

Вы можете попробовать следовать примеру здесь:

https://github.com/sleighzy/k3s-traefik-v2-kubernetes-crd

На вопрос, почему не отображаются маршруты: Traefik заберет с маршрутов k8s, когда вы укажете

        - --providers.kubernetescrd
        - --providers.kubernetesingress

Также обратите внимание на пространство имен, в котором находится traefik, вы примените IngressRoutes к этому пространству имен.

person DarthHTTP    schedule 07.02.2021
comment
@vencrena Это ответ на ваш вопрос? - person matt_j; 09.02.2021