Для Traefik Ingress Controller в k3s отключите проверку TLS - PullRequest
2 голосов
/ 18 января 2020

Я использую стандартную установку k3s (выпуск v1.17.0 + k3s.1) и проверил, что она работает правильно на моем кластере Raspberry Pi.

После установки kubernetes-dashboard, используя рекомендуемые инструкции (https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) Я подтвердил эту работу после того, как выставил ее вне кластера, используя балансировщик нагрузки на основе k3s traefik.

Однако, когда я попытался выставить его с помощью входного контроллера traefik, я был невозможно подключиться к приборной панели kubernetes, в браузере отображается ошибка HTTP 500, то есть внутренняя ошибка сервера. Ниже приведены журналы входных пакетов yaml и kubernetes-dashboard, показывающие ошибку сертификата TLS. Я полагаю, что ошибка сертификата связана с тем, что traefik не знает (и не доверяет) сертификат TLS, используемый панелью мониторинга kubernetes.

a. k8s-dashboard-Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
    - host: k8s-services
      http:
        paths:
          - path: /k8s-dashboard
            backend:
              serviceName: kubernetes-dashboard
              servicePort: 443

Примечание. домен "k8s-services" определен в моих компьютерах pi-кластера и в файле хоста просмотра компьютеров.

b. Журналы модулей панели мониторинга Kubernetes

...
2020/01/18 06:04:19 Auto-generating certificates
2020/01/18 06:04:19 Metric client health check failed: the server is currently unable to handle the request (get services dashboard-metrics-scraper). Retrying in 30 seconds.
2020/01/18 06:04:19 Successfully created certificates
2020/01/18 06:04:19 Serving securely on HTTPS port: 8443
2020/01/18 06:04:49 Successful request to sidecar
2020/01/18 06:23:28 http: TLS handshake error from 10.42.0.113:52698: remote error: tls: bad certificate
2020/01/18 06:24:33 http: TLS handshake error from 10.42.0.113:52886: remote error: tls: bad certificate
2020/01/18 06:24:41 http: TLS handshake error from 10.42.0.113:52908: remote error: tls: bad certificate
2020/01/18 06:24:47 http: TLS handshake error from 10.42.0.113:52926: remote error: tls: bad certificate
2020/01/18 06:24:53 http: TLS handshake error from 10.42.0.113:52948: remote error: tls: bad certificate
2020/01/18 06:25:37 http: TLS handshake error from 10.42.0.113:53076: remote error: tls: bad certificate
2020/01/18 06:25:41 http: TLS handshake error from 10.42.0.113:53090: remote error: tls: bad certificate
2020/01/18 06:25:44 http: TLS handshake error from 10.42.0.113:53102: remote error: tls: bad certificate
2020/01/18 06:31:22 http: TLS handshake error from 10.42.0.113:54144: remote error: tls: bad certificate
2020/01/18 06:31:29 http: TLS handshake error from 10.42.0.113:54158: remote error: tls: bad certificate
...

Моя проблема очень похожа на следующую проблему переполнения стека: Панель мониторинга Kubernetes через Ingress

Моя первая попытка решить эту проблему - добавьте "ssl.insecureSkipVerify: 'true'" в файл traefik.toml в k3s. К сожалению, я не смог найти глобальный файл traefik.toml (и, вероятно, traefik устанавливается с использованием таблицы рулевого управления).

Пожалуйста, дайте мне знать, как обновить параметр "ssl.insecureSkipVerify" в traefik или другой альтернативе. решения.

...