Проблемы с настройкой Traefik K8s - PullRequest
0 голосов
/ 12 октября 2018

Справочная информация:

Я пытаюсь поддержать кластер BareMetal K8s и хочу воспользоваться множеством функций Traefik для моего кластера Ingress.У меня есть MetalLB впереди, предоставляющий IP-адреса LoadBalancer, и это не проблема для меня в настоящее время.

Информация:

Версия кластера K8s: 1.12

Версия руля и румпеля: v2.11.0

Проблема:

Если я устанавливаю Traefik, используя рулевую диаграмму и link Он устанавливается, но когда я иду, чтобы проверить в журналах докера наличие созданного контейнера, я получаю ошибки вдоль строкиз

E1012 15:23:50.784829       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Endpoints: Unauthorized
E1012 15:23:52.279720       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Service: Unauthorized
E1012 15:23:52.784902       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1beta1.Ingress: Unauthorized

Если я вместо этого пойду другим путем и попытаюсь вручную установить traefik, используя официальную документацию, я, по крайней мере, смогу заставить его работать, но потом получаю ошибкииз

time="2018-10-12T12:22:57Z" level=error msg="Service not found for monitoring/prometheus-server"
time="2018-10-12T12:22:59Z" level=warning msg="Endpoints not found for monitoring/prometheus-server"

Так что я на 100% теряюсь в том, что мне нужно сделать, чтобы запустить его в моем dev (возможный кластер prod).Кто-нибудь может оказать некоторую помощь и / или руководство, чтобы заставить меня работать в правильном направлении?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Спасибо за ответ Рико.

Так что в качестве контрольного теста.Я вернулся и все испортил и переустановил с помощью следующих команд

helm install --values values.yaml stable/traefik

NAME:   khaki-goose
LAST DEPLOYED: Fri Oct 12 14:05:23 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Deployment
NAME                     AGE
khaki-goose-traefik  0s

==> v1beta1/Ingress
khaki-goose-traefik-dashboard  0s

==> v1/Pod(related)

NAME                                     READY  STATUS   RESTARTS  AGE
khaki-goose-traefik-dccfdf765-cmfl9  0/1    Pending  0         0s

==> v1/ConfigMap

NAME                     AGE
khaki-goose-traefik  0s

==> v1/Service
khaki-goose-traefik-dashboard  0s
khaki-goose-traefik            0s

Вслед за предложенными командами в конце вывода создания

kubectl get svc khaki-goose-traefik --namespace default -w

NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
khaki-goose-traefik   LoadBalancer   10.109.30.181   172.16.15.1   80:31644/TCP,443:31004/TCP   12s

Так что я знаю, что яя, по крайней мере, могу получить «Внешний IP-адрес» благодаря MetalLB , и как часть начальной настройки он должен был создать соответствующие правила входа для меня, но я не уверен, что он сделал это правильно, как когдаЯ описываю это и получаю следующее.

Name:             khaki-goose-traefik-dashboard
Namespace:        default
Address: 
Default backend:  default-http-backend:80 (<none>)
Rules:
Host                 Path  Backends
----                 ----  --------
traefik-ui.minikube
                      khaki-goose-traefik-dashboard:80 (<none>)
Annotations:
Events:  <none>

Важный момент, который я вижу, заключается в том, что он не получает информацию о бэкэнде так, как должно быть (по крайней мере, так, как я понимаю).

Затем я выполнил предложенную вами команду со значениями по умолчанию, указанными в официальной документации.

kubectl apply -f traefik-rbac.yaml

Когда я бежал, мне показывали следующую информацию:

kubectl describe pods 

Name:               khaki-goose-traefik-dccfdf765-k9pxh
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               jbv-dev-k8wrkr-02.removed.domain.name/172.16.1.47
Start Time:         Fri, 12 Oct 2018 14:54:30 -0400
Labels:             app=traefik
                    chart=traefik-1.43.0
                    heritage=Tiller
                    pod-template-hash=dccfdf765
                    release=khaki-goose
Annotations:        checksum/config=fba7308c36f00b969971dec5caa6ca1e456737d4564d6c623d261aee9ffb82cc
Status:             Running
IP:                 172.25.4.44
Controlled By:      ReplicaSet/khaki-goose-traefik-dccfdf765
Containers:
  khaki-goose-traefik:
    Container ID:  docker://f88d222ccf72c244bdb100b956a8b629bcb8b89c9954de1f83552bddd6c44a43
    Image:         traefik:1.6.6
    Image ID:      docker-pullable://traefik@sha256:9569c56e8b7353c9c4e5d4f00177b0b7c523db6926a42a148e04a6fa4b6f9f8d
    Ports:         80/TCP, 8880/TCP, 443/TCP, 8080/TCP
    Host Ports:    0/TCP, 0/TCP, 0/TCP, 0/TCP
    Args:
      --configfile=/config/traefik.toml
    State:          Running
      Started:      Fri, 12 Oct 2018 14:54:41 -0400
    Ready:          True
    Restart Count:  0
    Limits:
      cpu:     100m
      memory:  30Mi
    Requests:
      cpu:        100m
      memory:     20Mi
    Liveness:     tcp-socket :80 delay=10s timeout=2s period=10s #success=1 #failure=3
    Readiness:    tcp-socket :80 delay=10s timeout=2s period=10s #success=1 #failure=1
    Environment:  <none>
    Mounts:
      /config from config (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-n8865 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      khaki-goose-traefik
    Optional:  false
  default-token-n8865:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-n8865
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age   From                                            Message
  ----    ------     ----  ----                                            -------
  Normal  Scheduled  1m    default-scheduler                               Successfully assigned default/khaki-goose-traefik-dccfdf765-k9pxh to jbv-dev-k8wrkr-02.removed.domain.name
  Normal  Pulled     1m    kubelet, jbv-dev-k8wrkr-02.removed.domain.name  Container image "traefik:1.6.6" already present on machine
  Normal  Created    1m    kubelet, jbv-dev-k8wrkr-02.removed.domain.name  Created container
  Normal  Started    1m    kubelet, jbv-dev-k8wrkr-02.removed.domain.name  Started container

Я также просто вернулся и запустил команду kubectl logs khaki-goose-traefik-dccfdf765-k9pxh

E1012 20:19:14.410278       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1beta1.Ingress: Unauthorized
E1012 20:19:14.411657       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Endpoints: Unauthorized
E1012 20:19:15.388608       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Service: Unauthorized
E1012 20:19:15.391057       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1beta1.Ingress: Unauthorized
E1012 20:19:15.397616       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Endpoints: Unauthorized
E1012 20:19:15.411714       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Service: Unauthorized
E1012 20:19:15.413496       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1beta1.Ingress: Unauthorized
E1012 20:19:15.414809       1 reflector.go:205] github.com/containous/traefik/vendor/k8s.io/client-go/informers/factory.go:86: Failed to list *v1.Endpoints: Unauthorized

После применения всего этого я пытаюсь открыть веб-браузер по внешнему IP-адресу через порт 80 или 443, после чего я получаю сообщение об ошибке «Страница не найдена».Я знаю, что здесь много информации, чтобы сослаться на способ установки руля, но я хочу предоставить как можно больше информации для этого.

Мне придется оглянуться назад и разобрать соответствующие команды, которые я выполнил для второй настройки из моей истории команд, и попытаться ответить здесь, когда я все правильно вытащу.

0 голосов
/ 12 октября 2018

Для первой установки (с использованием Helm) похоже, что вам не хватает Конфигурации RBAC :

kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-rbac.yaml

Для второй установки похоже, что Traefik может быть настроен для очистки метрикиз пространства имен мониторинга и конечной точки службы prometheus-server, которой нет в вашем кластере.Было бы здорово, если бы вы могли рассказать, как вы его развернули.

...