证书管理器的证书文件被安装在nginx卷上并正在使用。
e.g
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容器中更新,因此据说证书在从浏览器访问时已过期。
如果我强制重新启动这个吊舱没有问题,但是我想让它自动化。
我想知道是否有一种方法可以自动更新证书,而不强制重新启动吊舱。
发布于 2021-05-06 06:45:11
不确定证书是否适用于您的特定应用程序,它使用、Nginx、或main Nginx ingress
,后者处理集群的所有通信量。
如果是主要的Nginx,它处理集群的整个流量,那么您可以创建入口,并在那里添加证书管理器集成。
证书经理将管理证书并将其保存在秘密中,入口将使用该秘密运行时。每当证书获得更新,机密内容将更新,而入口将使用相同的秘密名称。
在上面的场景中,不需要重新启动荚。
如果您想阅读和检查整个示例,请参阅:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes
在上面的示例中,Nginx在使用秘密存储的证书时,将在没有任何卷中证书的情况下运行。
关于YAML示例,如果发行者和ingress,请检查:https://stackoverflow.com/a/67184948/5525824
https://stackoverflow.com/questions/67412958
复制相似问题