【发布时间】:2019-01-04 00:03:20
【问题描述】:
我在 Kubernetes 环境中使用https://github.com/jetstack/cert-manager 来自动加载https://letsencrypt.org/。它会创建 90 天后过期的证书。 30 days 到期前,cert-manager 更新证书并替换证书。证书存储在 k8s 机密中。
如何让 Envoy 代理到 automatically reload the certificates?这些问题已关闭,似乎没有答案。有一些秘密发现服务 (SDS) 的 mention 可以帮助提供解决方案,但我还没有找到一个解决方案。
对于 nginx,可以通过将 k8s 机密添加到 k8s 卷来配置 TLS,将卷挂载到文件系统以供 nginx 使用。然后可以使用文件系统观察程序调用sudo nginx -s reload 以在证书更改时重新加载配置。我看到 Envoy Proxy 支持hot restart,但是我没有看到类似 nginx 的命令让它热重启。
有一个hot-restarter.py,但它不是文件监视器,我宁愿不在 envoyproxy/envoy:latest docker 映像上安装 python。我认为可能该程序的某些功能可以内置到一个也可以进行文件监视的 rust 应用程序中,但是对于这种非常常见的情况,必须已经存在一些东西,对吧?
【问题讨论】:
-
嗨。您终于找到关于自动证书重新加载的解决方案了吗?
-
@ChaoxiangN 我没有。我曾梦想将 hot-restarter.py 翻译成 rust,但这从未发生过。
标签: ssl lets-encrypt envoyproxy cert-manager