使用 Helm 使用 Traefik 配置 Lets Encrypt

Configuring Lets Encrypt with Traefik using Helm

我正在使用 helm 将 taefik 部署到我的 kubernetes 集群。这是我目前拥有的:

helm upgrade --install load-balancer --wait --set ssl.enabled=true,ssl.enforced=true,acme.enabled=true,acme.email=an@email.com stable/traefik

我正在尝试配置 letsencrypt。根据此 documentation - 您将域添加到 .toml 文件的底部。

查看 helm chart 的代码,没有提供此类配置。

是否有其他方法可以做到这一点,或者我是否需要分叉图表来创建我自己的 .toml 文件变体?

事实证明这是here描述的先有鸡还是先有蛋的问题。

对于 helm 图表,如果 acme.enabled 设置为 true,则 Treafik 将自动为 Kubernetes 入口规则中配置的域生成和提供证书。这是 yaml 文件中 onHostRule = true line 的目的(上面引用)。

要将 Traefik 与 Let's Encrypt 一起使用,我们必须在我们的 DNS 服务器中创建一个 A 记录,该记录指向我们的负载均衡器的 IP 地址。在 Traefik 启动并且 运行 之前我们不能这样做。但是,此配置需要在 before Traefik 启动之前存在。

唯一的解决方案(在这个阶段)是在 A 记录配置传播后杀死第一个 Pod。

请注意,stable/traefik 图表现在支持 ACME DNS-01 协议。通过使用 DNS,它避免了先有鸡还是先有蛋的问题。

参见:https://github.com/kubernetes/charts/tree/master/stable/traefik#example-aws-route-53