允许单个入口运行 HTTP,而无需使用 Traefik 入口控制器强制使用 SSL



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

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

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

我当前部署的入口:

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: {}

Kubernetes 在单个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

创建这个以查看它是否可能发生。我想解决方法是创建另一个入口。

编辑:

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

最新更新