kubernetes - Nginx,证书管理器,挂载的秘密文件更新问题



证书管理器的证书文件挂载在nginx卷上并正在使用。

例如

nginx deploy.yaml -

volumes:
- name: secret-volume
secret:
secretName: my.test.app.com
- name: configmap-volume
configMap:
name: nginxconfigmap
containers:
- name: nginxhttps
image: bprashanth/nginxhttps:1.0
ports:
- containerPort: 443
- containerPort: 80
volumeMounts:
- mountPath: /etc/nginx/ssl
name: secret-volume
- mountPath: /etc/nginx/conf.d
name: configmap-volume

和我的 nginx.conf 文件

ssl_certificate /etc/nginx/ssl/tls.crt;
ssl_certificate_key /etc/nginx/ssl/tls.key;

而且效果很好。 此外,证书由证书经理顺利重新颁发。

但是,由于重新颁发的证书文件未在nginx容器中更新,因此从浏览器访问时表示证书已过期。

如果我强制重新启动 pod,没有问题,但我想自动化它。

我想知道是否有办法在不强制重新启动 pod 的情况下自动续订证书。

不确定该证书是否适用于使用Nginx或主Nginx ingress处理集群全部流量的特定应用程序。

如果它是处理集群整个流量的主Nginx,您可以创建入口并在那里添加证书管理器集成。

证书管理器将管理证书并将其保存在机密中,入口将使用该机密运行时。每当证书续订时,机密内容将更新游戏,而入口将使用相同的机密名称。

在上述情况下,不需要重新启动 Pod 。

如果您想阅读并检查整个示例,请参阅:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes

在上面的示例中,Nginx将在没有任何证书的情况下运行,同时它将使用秘密存储的证书。

对于 YAML 示例,如果颁发者和入口,请检查: https://stackoverflow.com/a/67184948/5525824

最新更新