Traefik для Kubernetes в Azure (перенаправление на https для внешнего интерфейса) - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь перенаправить вход для службы, развернутой в Azure Kubernetes, на https.Все, что я пытаюсь, не работает.Я попытался настроить Ingress и сам Traefik (через ConfigMap) безрезультатно.

Конфигурация для Traefik выглядит следующим образом:

---
# Traefik_config.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: traefik-conf
  namespace: kube-system
# traefik.toml
data:
  traefik.toml: |
    defaultEntryPoints = ["http","https"]

    [entryPoints]
      [entryPoints.http]
        address = ":80"
        [entryPoints.http.redirect]
          entryPoint = "https"
      [entryPoints.https]
        address = ":443"
        [entryPoints.https.tls]

    [frontends]
      [frontends.frontend2]
        backend = "backend1"
        passHostHeader = true
        # overrides default entry points
        entrypoints = ["http", "https"]

    [backends]
      [backends.backend1]
        [backends.backend1.servers.server1]
           url = "http://auth.mywebsite.com"

Тема для перенаправления - это контейнерный веб-сайт API IdentityServer безTLS-шифрование.Есть несколько вопросов по этому вопросу:

  • Какой лучший способ перенаправить приложение веб-интерфейса в Azure Kubernetes с помощью Traefik
  • В конфигурации интерфейс пронумерован, т. Е. "Frontend2».Я предполагаю, что это порядковый номер приложения на панели инструментов Traefik.Проблема в том, что на панели инструментов отображается только общая сумма приложений.Если их много, как определить, что это за число?
  • Когда я применяю аннотации к входу, например «traefik.ingress.kubernetes.io/redirect-permanent: true», соответствующие метки неотображается в панели инструментов Traefik для соответствующего приложения.Есть ли причина для этого?

1 Ответ

2 голосов
/ 26 марта 2019

Ваша конфигурация для перенаправления http на https выглядит хорошо.Если вы следовали официальному Документу Traefik для развертывания в kubernetes, у службы входного контроллера Traefik не будет 443. Убедитесь, что у вас открыт порт 443 в Службе с типом службы LoadBalancer.Когда мы открываем порт в службе, то Azure открывает тот же порт в балансировщике нагрузки Azure.Сервис yaml находится здесь.

kind: Service
apiVersion: v1
metadata:
  name: traefik-ingress-service
  namespace: kube-system
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
    - protocol: TCP
      port: 80
      name: web
    - protocol: TCP
      port: 8080
      name: admin
  type: LoadBalancer

Если вы хотите перенаправить все http на https в вашем кластере, вы можете перейти на перенаправление в файле конфигурации.Если вы хотите перенаправить только некоторые из служб, добавьте аннотации в Ingress для достижения перенаправления для определенных служб.

traefik.ingress.kubernetes.io/frontend-entry-points: http,https
traefik.ingress.kubernetes.io/redirect-entry-point: https

После настройки перенаправления Traffic Dashboard отображает это здесь.Вы также можете настроить постоянное перенаправление, используя traefik.ingress.kubernetes.io/redirect-permanent: "true enter image description here

...