我正在替换一个 Kubernetes secret ,我想确保我正在捕获集群中所有使用它的地方。
有没有一种方法可以在不阅读所有使用 K8s 或 helm 的部署 YAML 的情况下判断?
我们在同一个集群上部署了多项服务并共享 secret 。一些使用 Helm,一些不使用。
最佳答案
您可以通过几种不同的方式使用 secret ,它并不总是绑定(bind)为卷。因此,最方便的方法是检查所有可以在其规范中使用 secret 的对象的 secret 命名空间。
对于手动检查,这里有两个命令,一个用于检查 k8s 对象中的某些 secret 名称引用,第二个帮助找到包含 secret 引用的对象。
kubectl get deployments,statefulsets,daemonsets,cronjobs,jobs,pods -n namespace-name -o yaml | grep secret_name
kubectl get deployments,statefulsets,daemonsets,cronjobs,jobs,pods -n namespace-name -o yaml | grep -i -e "^ name:" -e "^ kind" -e secret_name
注释可以通过 grep -v annotation -v last-applied
删除,或者更简单 grep -v "\"kind"
。
关于kubernetes - 检查哪个部署(如果有)正在使用 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69253006/