Traefik for Azure中的Kubernetes(前端重定向到https)

时间:2019-03-18 22:08:56

标签: azure kubernetes traefik

我正在尝试将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"

重定向的主题是没有TLS加密的容器化IdentityServer API网站。关于此事有两个问题:

  • 使用Traefik在Azure Kubernetes中重定向前端应用的最佳方法是什么
  • 在配置中,前端已编号,即“ frontend2”。我假设这是Traefik仪表板上的应用程序序号。问题是,仪表板仅显示应用程序的总数。如果有很多,怎么知道数字是多少?
  • 当我向Ingress应用注释时,例如“ traefik.ingress.kubernetes.io/redirect-permanent:true”,相应的标签不会显示在相应应用程序的Traefik仪表板上。有什么理由吗?

1 个答案:

答案 0 :(得分:1)

您将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

设置重定向后,“交通信息中心”将在此处反映出来。 您还可以使用traefik.ingress.kubernetes.io/redirect-permanent: "true设置永久重定向 enter image description here