繁体   English   中英

Kubernetes:获取网络上其他Pod的IP地址

[英]Kubernetes: Getting the IP Addresses of Other Pods on the Network

在本地网络上获取其他Kubernetes Pod的IP地址的最佳方法是什么?

当前,我正在使用以下命令并解析输出: kubectl describe pods

不幸的是,上面的命令通常需要花费几秒钟来完成(至少需要3秒钟,通常至少需要30秒钟以上),并且如果多个请求几乎同时发生,则会收到503个样式错误。 我围绕此命令构建了一个缓存系统,用于在本地Pod上缓存IP地址,但是当大约10个Pod醒来并需要创建此缓存时,会有很大的延迟,并且经常会出现许多错误。 我觉得我做错了什么。 获取网络上其他Pod的IP地址似乎应该是一个简单的过程。 那么获得它们的最佳方法是什么?

有关更多详细信息,我在其容器引擎上使用了Google的kubernetes系统。 运行标准的Ubuntu映像。


上下文 :要添加上下文,我正在尝试在群集的Pod之间放一个共享的内存缓存。 为此,他们都需要知道彼此的IP地址。 如果有一种更简单的方法可以出于内存缓存的目的来链接容器/实例,那也将有所帮助。

你有没有尝试过

kubectl get pods -o wide

这还会返回容器的IP地址。 由于这不会返回所有describe返回的信息,因此可能更快。

对于描述的用例,您应该使用服务。 无头服务将允许您使用my-svc.my-namespace.svc.cluster.local引用它们。 假设您不需要知道单个节点,只需知道如何到达其中一个节点,因为它将在它们之间循环。

如果您确实需要将群集中的固定网络身份附加到Pod,则可以设置一个StatefulSet并使用以下内容引用它们: app-0.my-svc.my-namespace.svc.cluster.localapp-1.my-svc.my-namespace.svc.cluster.local等。

您永远不需要以其他方式联系特定的Pod ip,尤其是因为可以随时重新安排它们的IP并更改其IP。

对于您的用例而言,仅使用memcache舵图可能更容易,该舵图支持StatefulSet中的集群: https : //github.com/kubernetes/charts/tree/master/stable/memcached

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM