从 pod 内部获取同一节点的 NodeIP 或 HostIP

问题描述

我有一个场景,我想从托管在同一节点(daemonset pod)上的 pod 内部获取节点的 IP 地址。因为,我想进行类似检查 - 如果 pod-A 已经存在于同一节点上(使用该节点的 IP 地址进行识别)然后等待它终止,否则创建 pod -A 再次。在尝试在 K8s go-client 中实现相同的功能时,我无法找到从当前调度该 pod 的 pod 内部获取节点 IP 的方法。我遇到的最好的方法是这种方法:https://github.com/kubernetes/kubernetes/blob/v1.20.4/pkg/util/node/node.go#L149 但问题是它需要同时传递节点名称。有没有其他方法可以从 Pod 内部获取相同的信息?

解决方法

PodStatus 结构中的 Pod 字段具有 HostIP 字段,您可以使用该字段获取运行 Pod 的节点的 IP。

您可以查看示例 here,了解如何获取命名空间中的 pod 列表并对其进行迭代。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...