背景:
ssl 证书都是一年签发的。到了六月份了一年一度的证书替换的日子到了 …….。过来的办法始终都是先 delete secret,而后持续创立一个新的。这次就突发奇想的,还有其余办法吗 …… 百度了一下还真的搜寻到了:
https://blog.csdn.net/cyxinda/article/details/107854881
我的证书是在腾讯云下面购买的 TrustAsia 域名型 (DV) 通配符 (1 年) 的 ssl 证书。
思考到老本毕竟申请的 dv 的泛域名证书。对于 dv ov 证书的区别:
此图片来源于网络
对于 secret tls 的创立形式
对于 secret 能够参照 https://kubernetes.io/zh/docs/concepts/configuration/secret/。kubernetes 官网文档。这里就间接创立一下 tls secret 了
在腾讯云平台 ssl 治理页面 https://console.cloud.tencent.com/ssl
找到相干证书并点击下载将证书下载到本地。
将证书上传到服务器,并解压 zip 文件。解压后的文件列表如下
我是间接进入 Nginx 文件夹,文件列表如下:
当然了 其余平台申请的证书可能不是这样的(记得阿里云的不是这样的来,能够 openssl 转一下吧?)
kubectl create secret tls all-xxx-com --key=2_xxx.com.key --cert=1_xxx.com_bundle.crt -n master
traefik 中利用应用证书能够参照:traefik2 装置实现 http https,2019-12-27-traefik. 上面进入正题切换批改到期证书 …
注:以下参考了 https://blog.csdn.net/cyxinda/article/details/107854881
几种更换 kubernetes 中 tls 证书的形式:
1. 删除再重建
这应该是最常见的 … 反正我过来是常常用
kubectl delete secret all-xxx.com -n master
kubectl create secret tls all-xxx-com --key=2_xxx.com.key --cert=1_xxx.com_bundle.crt -n master
2. 通过 –dry-run 参数预览,而后 apply
kubectl create secret tls all-xxx-com --key=2_xxx.com.key --cert=1_xxx.com_bundle.crt -n master --dry-run -o yaml |kubectl apply -f -
算是温习了一下 –dry-run 的命令。也比拟优雅。通过 apply 更新 secret。
3. 我可不可以 edit 批改一下 secret 中秘钥的内容
kubectl edit secret all-xxxcom -n master
base64 1_xxx.com_bundle.crt 失去的内容将 secret tls.crt 中内容替换
base64 2_xxx.com.key 失去的内容将 secret 中的 tls.key 的内容替换
4. 更优雅的形式:
集体来说偏向于第二种形式还是 ……
总结一下:
- 删除重建是最笨的形式,当然了不会其余形式也能够用这种形式。在删除新建 secret 的空窗期,是存在危险的
- kubernetes api 能够通过 json 或者 yaml 文件对元数据进行更新或者交互
- –dry-run 的参数还是很有用的
- secret 还是基于 namespace。同一个 secret 在好多命名空间都有同样的存在,有没有较为不便的治理形式呢?