考虑到后端服务“前面”的 Nginx 反向代理处理 TLS LetsEncrypt 证书,这种设置在 Kubernetes 上的良好部署架构是什么?
我的第一个想法是做一个容器,将 Nginx 和我的服务器放在一个容器中作为有状态集。所有这些有状态集都可以访问安装在 /etc/nginx/certificates
上的卷。所有这些容器都在运行一个 cron,并被允许更新这些证书。
但是,我认为这不是最好的方法。这种类型的架构是为了拆分,而不是在任何地方运行完全独立的服务。
也许我应该运行一个独立的代理服务来处理证书并重定向到后端服务器部署(ingress
+ job
用于证书更新)?
如果您使用的是托管服务(例如 GCP HTTPS 负载均衡器),您如何颁发公开信任的证书并续订它?
你想要kube-lego .
kube-lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
它适用于 GKE+LoadBalancer 以及 nginx-ingress。用法很简单;自动证书请求(包括更新);使用 LetsEncrypt。
README 说 - 可能是开玩笑 - 您需要一个非生产用例。我一直在使用它进行生产,我发现它足够可靠。
(完全披露:我与作者有松散的联系,但没有为产品做广告而付费)
我是一名优秀的程序员,十分优秀!