我使用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文件的底部。
查看掌舵chart的代码,没有提供此类配置。
是否有其他方法可以执行此操作,还是需要分叉图表以创建自己的.toml文件变体?
答案 0 :(得分:3)
原来这是鸡和蛋的问题,描述为here。
对于掌舵图,如果acme.enabled
设置为true
,则Treafik将自动为Kubernetes入口规则中配置的域生成并提供证书。这是yaml文件中onHostRule = true
line的目的(上面引用)。
要将Traefik与Let's Encrypt一起使用,我们必须在DNS服务器中创建一条A记录,指向负载均衡器的IP地址。在Traefik启动并运行之前我们无法做到这一点。但是,此配置需要存在之前 Traefik启动。
唯一的解决方案(在此阶段)是在A记录配置传播后终止第一个Pod。
答案 1 :(得分:1)
请注意,stable / traefik图表现在支持ACME DNS-01协议。通过使用DNS,它避免了鸡和蛋的问题。
请参阅:https://github.com/kubernetes/charts/tree/master/stable/traefik#example-aws-route-53