[转帖]Kubectl之JSONPath

kubectl,jsonpath · 浏览次数 : 0

小编点评

## Kubectl JSONPath 示例 使用 JSONPath 可以从 Kubernetes 集群中获取特定字段并格式化输出。以下是一些示例: **1. 只显示 pod 名和 IP:** ```jsonpath='{.items[0].metadata.name}{"\t"}.status.hostIP}' ``` **2. 显示所有 pod 的名称和 IP:** ```jsonpath='{.items | map({metadata: .metadata, status: .status})}' ``` **3. 显示指定 namespace 的所有 pod 的名称和 IP:** ```jsonpath='{.items | filter({metadata: {namespace: "test"}}) | map({metadata: .metadata, status: .status})}' ``` **4. 显示所有 pod 的名称、 IP 和状态:** ```jsonpath='{.items | map({metadata: .metadata, status: .status})}' ``` **5. 显示所有 pod 中 name 和 status 的值:** ```jsonpath='{.items | map({metadata: .metadata, status: .status}) | {name: .metadata.name, status: .status}' ``` **6. 显示所有 pod 的 name、 IP 和 last modified time:** ```jsonpath='{.items | map({metadata: .metadata, status: .status, metadata: .metadata.lastModifiedTime})}' ``` **7. 显示所有 namespace 的 pod 的 name 和 status:** ```jsonpath='{.items | filter({metadata: {namespace: "test"}} | map({metadata: .metadata, status: .status})}' ``` **8. 显示所有 pod 的 name 和状态,并使用颜色区分正常和错误的 pod:** ```jsonpath='{.items | map({metadata: .metadata, status: .status}) | if{.metadata.status == "running"} {"\u0331"} else {"\u0332"}}' ``` **注意:** * 以上示例仅供参考,您可以根据需要修改这些表达式。 * 您可以使用不同的输出格式,例如使用 `name`, `status`, `metadata` 等关键字。 * 使用 `range` 关键字可以循环遍历所有 pod,并从 `metadata` 和 `status` 中获取其他字段。

正文

Kubectl之JSONPath

 

背景

最近接到一个需求,需要通过kubectl命令展示出一些特定的字段,比如只显示pod name和host ip,接到这个需求之后开始查找kubectl命令帮助,找到了一个"-o=jsonpath="的命令可以基本满足需求。

执行参数

kubectl get pods -o json
kubectl get pods -o=jsonpath='{@}'
kubectl get pods -o=jsonpath='{.items[0]}'
kubectl get pods -o=jsonpath='{.items[0].metadata.name}'
kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'

示例参考

测试结果

[root

与[转帖]Kubectl之JSONPath相似的内容:

[转帖]Kubectl之JSONPath

Kubectl之JSONPath 背景 最近接到一个需求,需要通过kubectl命令展示出一些特定的字段,比如只显示pod name和host ip,接到这个需求之后开始查找kubectl命令帮助,找到了一个"-o=jsonpath="的命令可以基本满足需求。 执行参数 kubectl get po

[转帖]kubectl命令自动补全功能

https://blog.csdn.net/tony_vip/article/details/123889216?spm=1001.2014.3001.5502 管理Kubernetes集群的时候,为了提高使用kubectl命令工具的便捷性,介绍一下kubectl命令补全工具的安装。 1:安装bas

[转帖]APIServer dry-run and kubectl diff

https://kubernetes.io/blog/2019/01/14/apiserver-dry-run-and-kubectl-diff/ Monday, January 14, 2019 Author: Antoine Pelisse (Google Cloud, @apelisse) D

[转帖]CKA 真题

https://segmentfault.com/a/1190000021380185 1.列出pod并排序 kubectl get pod --sort-by .metadata.name 题目一般都是按名字排序 2.找出pod中的错误日志 kubectl logs heapster-798fcd

[转帖]kubelet 原理解析五: exec的背后

https://segmentfault.com/a/1190000022163850 概述 线上排查pod 问题一般有两种方式,kubectl log或者kubectl exec调试。如果你的 log 写不够优雅,或者需要排除网络问题必须进容器,就只能 exec 了。 # 在pod 123456-

[转帖]重定向Kubernetes pod中的tcpdump输出

https://www.cnblogs.com/charlieroro/p/17109943.html 最新发现一个比较有意思的库ksniff,它是一个kubectl 插件,使用tcpdump来远程捕获Kubernetes集群中的pod流量并保存到文件或输出到wireshark中,发布网络问题定位。

[转帖]IoT运维 - 如何部署一套高可用K8S集群

https://zhuanlan.zhihu.com/p/579983530 如何部署一套高可用k8s集群,下面直接演示一下 环境 ip角色主机名 192.168.3.20 kubectl、ansible deploy 192.168.3.21 etcd1 etcd1 192.168.3.22 et

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、