Kubernetes 如何在监视模式下对kubectl输出应用jq滤波器?

Kubernetes 如何在监视模式下对kubectl输出应用jq滤波器?,kubernetes,jq,kubectl,Kubernetes,Jq,Kubectl,我想过滤在--watch模式下运行的kubectl命令的输出,以监视对某个k8s注释的更改。我正在使用以下命令: kubectl get pod my pod--watch-o json | jq'.metadata.annotations[“my annotation”]” 问题是-在我停止命令之前,不会打印任何内容。我希望jq处理输入,并在mypod发生更改时将其打印出来 我尝试使用--unbuffered标志,但没有解决问题。因此,我测试了您的命令,它工作得非常好。但是,命令末尾缺少一个引

我想过滤在
--watch
模式下运行的
kubectl
命令的输出,以监视对某个k8s注释的更改。我正在使用以下命令:

kubectl get pod my pod--watch-o json | jq'.metadata.annotations[“my annotation”]”

问题是-在我停止命令之前,不会打印任何内容。我希望
jq
处理输入,并在
mypod
发生更改时将其打印出来


我尝试使用
--unbuffered
标志,但没有解决问题。

因此,我测试了您的命令,它工作得非常好。但是,命令末尾缺少一个引号

kubectl get pod nginx-5dfd5597bb-tp8h7 --watch -o json | jq '.metadata.name'
给我

"nginx-5dfd5597bb-tp8h7"

如果你能用这个命令工作,但不能用你自己的命令;它可能与括号和引号或缺少对象键有关。

您尝试过jq--stream吗?是的,也尝试过
jq--stream
标志。直到我杀死了命令,结果还是没有打印出来。谢谢@Webber,我添加了缺少的引号,这只是stackoverflow问题中的一个输入错误,并没有解决问题。有趣的事情-我的同事,使用macOS,也没有这个问题。你也在macOS上吗?我在
windows
,在
ubuntu
中使用
bash
,在
windows linux子系统(WSL)
中。很有趣。我正在使用
fishshell
运行
ubuntu
。当我切换到
bash
时,它工作正常。