【发布时间】:2019-06-04 15:06:55
【问题描述】:
是否有自动分配给所有 K8S pod 或者可以为集群全局配置的 UUID 属性(或类似属性)?
我有一个应用程序在我的集群中充当数据库 (DB) 前端,其中一些(但不是所有 pod)提交了一个数字“资产”目录,它们可以让集群访问。 pod 应该在关闭之前“清理”它们在数据库中创建的条目,但在某些情况下,pod 可能会崩溃,从而阻止关闭/清理代码执行。
即使我use a pre-stop hook,Pod 已经崩溃了,我无法再访问其中的数据以了解它向 DB 应用程序报告了哪些资产。
我正在考虑让 DB 应用程序在收到传入连接后向远程 pod 查询 IP、某种唯一 ID/UUID 等;并将该数据映射到 pod 提交的数据库信息。然后,我可以让 DB 应用程序通过 K8S REST API 定期轮询集群,以查看具有相应 UUID 的 pod 是否仍然存在,如果与它们关联的 pod-UUID 不再存在,则清除各个记录。
问题:
- 有没有办法在全局级别自动将此类 UUID 分配给集群中的所有 pod(即,无需修改我所有 pod、部署等的 YAML 文件)。
- 是否有其他 K8S 提供的机制/功能可以更好地对位于单独/外部 pod 中的 pod 资源进行事后清理?
【问题讨论】:
-
所有 Pod 都有一个uid。这就是你要找的吗?
-
@AlassaneNdiaye 这似乎是对的。例如,有没有一种简单的方法可以通过
kubectl公开它?执行kubectl describe $POD_NAME时没有看到任何此类字段。 -
@menya 这是否通过
kubectl暴露(以上评论)? -
是的,它在metadata.uid下,通过
kubectl get pods/$POD_NAME -o yaml访问。
标签: memory-management kubernetes hook uuid postmortem-debugging