如何通过JSON Path查询将Kubectl节点内存输出从Ki转MB?
实现Kubernetes节点内存从Ki转换为MB的展示方案
首先明确:JSON Path本身不支持数值计算和单位转换,它只是用于提取JSON结构数据的查询语言,无法完成算术运算或单位转换操作。要实现Ki转MB的需求,必须结合Shell工具(比如awk)来处理数据。
下面是两种可行的命令方案:
方案1:用jsonpath提取后通过awk转换
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.capacity.memory}{"\n"}{end}' | awk '{print $1 "\t" int($2/1024) "MB"}'
- 第一步:
jsonpath遍历所有节点,提取节点名称和带Ki单位的内存值,用制表符分隔每行数据 - 第二步:
awk自动剥离内存值后的Ki单位,将数值除以1024取整,拼接MB单位后输出
方案2:基于custom-columns输出再处理表头和数据
kubectl get no -o=custom-columns=NAME:.metadata.name,MEMORY:.status.capacity.memory | awk 'NR==1 {print $0} NR>1 {print $1 "\t" int($2/1024) "MB"}'
- 先用
custom-columns输出原始的两列数据(包含表头) awk保留第一行表头,对后续数据行的内存值做单位转换后输出
内容的提问来源于stack exchange,提问作者Pallab
相关产品推荐
相关产品推荐

