好久沒更新了,正好今天遇到了一個很有意思的問題,在這里給大家分享下,同時也做下記錄。
背景
最近想做個實驗,當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 -