好久没更新了,正好今天遇到了一个很有意思的问题,在这里给大家分享下,同时也做下记录。
背景
最近想做个实验,当k8s集群中secret
更新后,ingress-nginx
控制器会不会自动加载新的证书。我用通义千问搜了下,它推荐我使用环境变量的方式实现
但是我的实验结果是:通过环境变量添加配置,当secret
更新后ingress
控制器并不会重新加载证书文件,需要手动执行kubectl rollout restart
或去容器里执行nginx -s reload
实现。
结果
我又去官方文档里找了下,也并有找到相关介绍,只有使用--default-ssl-certificate=default/foo-tls
实现的介绍,我又改成了这种方式,重新更新secret后证书,验证了下确实可以自动重载证书了,有相同问题的小伙伴不妨试试。
附:
# 生成自签名证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./www.ling.com.key -out ./www.ling.com.pem -subj "/CN=www.test.com/O=www.test.com" -addext "subjectAltName = DNS:www.test.com"
# 更新secret
kubectl create secret tls foo-tls --cert=www.test.com.pem --key=www.test.com.key --dry-run=client -o yaml |kubectl apply -f -