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
时,它工作正常。