0

我通过1.5.4 版的helm 图表将 Traefik 设置为我的 Ingress 控制器。我启用了 LetsEncrypt 并将 SSL 设置为 Enforced,因此我所有公开的服务都根据需要强制使用 SSL。

我最近遇到了一种情况,我不需要单个入口上强制 SSL。我已经尝试了我能找到的所有注释,但我能做到的最多的是重定向循环(http -> https -> http),这让我相信 SSL 仍然被强制执行。

有没有人设法通过注释让它运行?是1.5的注释谢谢!

我当前部署的 Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  creationTimestamp: 2018-09-18T05:52:41Z
  generation: 1
  labels:
    app: prerender
    chart: prerender-0.4.0
    heritage: Tiller
    release: prerender
  name: prerender-prerender
  namespace: production-prerender-io
  resourceVersion: "41421557"
  selfLink: /apis/extensions/v1beta1/namespaces/production-prerender-io/ingresses/prerender-prerender
  uid: 0e8a1286-bb07-11e8-9938-06e82a01885c
spec:
  rules:
  - host: prerender.mydomain.com
    http:
      paths:
      - backend:
          serviceName: prerender-prerender
          servicePort: 3000
        path: /
status:
  loadBalancer: {}
4

1 回答 1

1

Kubernetes单个Ingress. 换句话说,一旦你在 Ingress 上使用 TLS,你就无法返回。像这样的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  tls:
  - secretName: mytlssecret
  backend:
    serviceName: service1
    servicePort: 80

有这样的东西会很好:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  tls:
  - secretName: mytlssecret
  backend:
    serviceName: service1
    servicePort: 80
    tlsFrontend: false

创建这个看看它是否会发生。我猜的解决方法是创建另一个 Ingress。

编辑:

Traefik helm chart 专门使用letsencrypt 配置Traefik,因此在这种情况下,Traefik 必须通过后端注释专门支持非TLS 后端。

于 2018-09-21T18:24:38.337 回答