我有一些遗留应用程序,它们部署在集群环境中。当一个应用程序节点收到呼叫时,它会从某个配置文件中获取部署了该应用程序的所有应用程序节点的静态列表。
收集到所有IP后,它将通过jmx与每个应用程序节点通信。
当前目标是迁移到k8s ,因此在这种情况下,应用程序pod的列表是动态的,可以按原样存储。需要实现类似服务发现之类的东西。
目前的想法是实现一些简单的rest服务,该服务将在单独的pod中运行,其主要目的是始终返回一些由谓词过滤的应用pod的ips(入口点)列表。
所以我有几个问题:
答案 0 :(得分:2)
使用作用域选择器定义服务,以便包括所有特殊Pod,然后可以列出所有端点IP询问apiservice。
您可以检查该命令是否正常工作。
kubectl获取端点
此后,如何在您的pod中执行此命令。那是另一个故事。 此链接说明了此事 https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#accessing-the-api-from-a-pod
答案 1 :(得分:0)
看起来您正在运行集群应用程序,因此可能需要结合使用Headless Service和StatefulSet。
有了它,您将能够使用简单的DNS(如replicas-[0-9].namespace.svc
来访问副本,而无需从端点查询中提取IP地址。