先描述下场景,当一个 kubernetes 集群中有大量的应用创建了声明 tls 类型的 ingress 资源时,维护这个 tls 的 secret 工作将变得异常繁琐。特别是当证书即将过期需要替换时,运维不得不挨个检查一遍,整个过程需要非常细致且麻烦,通常它的流程经过下面阶段:
- 遍历 namespaces下的 secret
- 用 base64 将私钥 decode 出来
- 再用 openssl x509 -noout -text -in <私钥> 查看证书信息
平时证书少还能应付,当证书变得很多就比较烦人了。所幸,kubectl-view-cert 这个插件可以简化上述步骤。安装这个插件直接执行下述命令即可:
$ kubectl krew install view-cert
kubectl-view-cert 使用
kubectl-view-cert 有几个非常好用的参数介绍给大家:
-A, --all-namespaces 查询所有命名空间的tls证书
-E, --expired 只显示已经过期的tls证书
-D, --expired-days-from-now int 显示当前时间之后N天过期的证书
-S, --show-ca 显示CA证书,如果有的话
这两天,我用得最多查询是遍历集群下所有 tls 已经过期的 secret
$ kubectl view-cert -A -E
另外一个就是遍历集群下所有 tls 还剩 180 天到期的 secret
$ kubectl view-cert -A -E -D 180
总之,kubectl-view-cert 帮我节省了大量的时间,值得推荐给大家,让更多人的看到。
评论区