我有一个 golang system_info 休息服务,可以执行基本的 CRUD 操作。它的服务捕获一些基本的系统信息并更新到服务器。此 System_info Rest api 使用 Kubernetes 作为微服务托管。
但是,在从系统捕获任何详细信息之前,该服务需要 IP 地址,并且准备系统的任何人调用我的其余端点都会上传 IP 地址和主机名等基本信息。
现在,一旦使用 system_info Rest api 端点将此 IP 地址上传到 postgres 表,system_info Rest 服务应该 ping 这些 IP 地址并检查它们是否收到任何响应,并更新机器已启动和运行的状态。
如何实现这一点,服务在 Kube 中运行 - 一旦调用端点并更新 IP 地址,服务如何知道表具有 IP 地址,现在服务应该 PING 这些 IP 地址?
我的想法是两种方法之一
想知道是否有更好的方法来处理这种情况?我对如何设计这个功能感到困惑。
如有任何建议或指导,我们将不胜感激。谢谢
您可以使用在 Kubernetes 中运行的 Prometheus 运算符,结合 Probe 资源或 Blackbox-exporter 来执行基本的 http 探测。
因此,不要写入 Postgres,而是使用 Kubernetes Go 客户端创建此类资源,并将其存储在 etcd 数据库中。