You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Endpoints自定义列提取IP失败问题求助

解决Kubernetes Endpoints提取名称与IP地址的问题

你的命令无法输出结果,核心原因是索引使用错误:原命令中subsets[0].addresses[0][0].ip里的addresses[0][0]是无效写法——addresses数组的元素是单个IP对象(如{"ip": "10.10.1.1"}),并非嵌套数组,不需要双重索引。

正确命令示例

1. 提取所有IP地址(逗号分隔)

该命令会遍历所有子集(subsets)和每个子集下的所有IP地址,将结果用逗号拼接:

kubectl get endpoints -o custom-columns=NAME:.metadata.name,ENDPOINTS:.subsets[*].addresses[*].ip

针对你提供的mysvc Endpoints,输出会是:

NAME    ENDPOINTS
mysvc   10.10.1.1,10.10.2.2,10.10.3.3

2. 仅提取第一个子集的第一个IP

如果只需要单个IP(比如第一个子集的第一个地址),修正索引即可:

kubectl get endpoints -o custom-columns=NAME:.metadata.name,ENDPOINTS:.subsets[0].addresses[0].ip

输出结果:

NAME    ENDPOINTS
mysvc   10.10.1.1

3. 按子集分组显示IP(用jsonpath)

如果需要区分不同子集的IP,可以用jsonpath实现更灵活的格式:

kubectl get endpoints mysvc -o jsonpath='{.metadata.name}\nSubset 1 IPs: {.subsets[0].addresses[*].ip}\nSubset 2 IPs: {.subsets[1].addresses[*].ip}'

输出结果:

mysvc
Subset 1 IPs: 10.10.1.1 10.10.2.2
Subset 2 IPs: 10.10.3.3

关键语法说明

  • .subsets[*]:遍历subsets数组中的所有元素(所有子集)
  • .addresses[*].ip:遍历当前子集下addresses数组的所有对象,提取ip字段

内容的提问来源于stack exchange,提问作者Андрей Белый

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:02:31