获取所有跑步吊舱的列表,供自己使用 形势 我在Kubernetes内部运行Spring引导服务 多个实例正在运行(kubernetes部署配置了多个副本) 我有一个来自集群外部的传入HTTP,它会命中一个实例 我想把这个事实转达给所有其他情况 问题:
是否有一个简单的、不需要外部事物的解决方案来查找“我的服务的所有吊舱”列表?我想我记得这可以通过DNS解析实现,但我的Google Fu似乎无力找到一些东西获取所有跑步吊舱的列表,供自己使用 形势 我在Kubernetes内部运行Spring引导服务 多个实例正在运行(kubernetes部署配置了多个副本) 我有一个来自集群外部的传入HTTP,它会命中一个实例 我想把这个事实转达给所有其他情况 问题:,spring,kubernetes,Spring,Kubernetes,是否有一个简单的、不需要外部事物的解决方案来查找“我的服务的所有吊舱”列表?我想我记得这可以通过DNS解析实现,但我的Google Fu似乎无力找到一些东西 当然,我可以通过其他解决方案(如Redis、Kafka等)来实现这一点,但由于我只需要一次性功能,所以我不想引入任何移动部件,并尽可能简单。您可以通过运行 $ kubectl get endpoints <service-name> -o=jsonpath='{.subsets[*].addresses[*].ip}' | tr
当然,我可以通过其他解决方案(如Redis、Kafka等)来实现这一点,但由于我只需要一次性功能,所以我不想引入任何移动部件,并尽可能简单。您可以通过运行
$ kubectl get endpoints <service-name> -o=jsonpath='{.subsets[*].addresses[*].ip}' | tr ' ' '\n' | xargs -I % kubectl get pods --field-selector=status.podIP=%
$kubectl get endpoints-o=jsonpath='{.subsets[*].addresses[*].ip}'| tr''\n'| xargs-I%kubectl get pods--field selector=status.podIP=%
内部K8s DNS只能获取服务的IP地址。幸运的是,端点资源正好用于获取支持服务的pod
使用kubectl,您可以像这样检查端点:
kubectl get endpoints nginx -o yaml
通过此命令,您可以获得Pod名称:
kubectl get endpoints nginx -o=jsonpath='{.subsets[*].addresses[*].targetRef.name}'
要从Spring Boot应用程序执行相同的操作,您可以尝试使用官方