小编Ale*_*lex的帖子

如果 k8s 的 jsonpath 缺少 AND 条件,如何执行 2 个过滤器

我需要找到所有副本仍在启动的 st。为此,我需要根据 2 个条件过滤 sts 项目:

  • 每个项目必须有一个.status.readyReplicas属性
  • 每个readyReplicas属性必须与中的值不同replicas

我尝试的结果出现错误:

$ kubectl get sts -o=jsonpath='{range .items[?(@.status.readyReplicas && @.status.readyReplicas!=@.status.replicas)]}{.}{.metadata.name}{"\t"}{.status.readyReplicas}{"/"}{.status.replicas}{"\n"}{end}'
error: error parsing jsonpath {range .items[?(@.status.readyReplicas && @.status.readyReplicas!=@.status.replicas)]}{.}{.metadata.name}{"\t"}{.status.readyReplicas}{"/"}{.status.replicas}{"\n"}{end}, unrecognized character in action: U+0026 '&'

$ kubectl get sts -o=jsonpath='{range .items[?(@.status.readyReplicas AND @.status.readyReplicas!=@.status.replicas)]}{.}{.metadata.name}{"\t"}{.status.readyReplicas}{"/"}{.status.replicas}{"\n"}{end}'
error: error executing jsonpath "{range .items[?(@.status.readyReplicas AND @.status.readyReplicas!=@.status.replicas)]}{.}{.metadata.name}{\"\\t\"}{.status.readyReplicas}{\"/\"}{.status.replicas}{\"\\n\"}{end}": Error executing template: unrecognized identifier AND. Printing more information for debugging the template: ...
Run Code Online (Sandbox Code Playgroud)

使用逗号在数组上的 JsonPath AND 运算符上建议的解决方案也不起作用:

$ k get sts -o=jsonpath='{range .items[?(@.status.readyReplicas), ?(@.status.readyReplicas!=@.status.replicas)]}{.}{.metadata.name}{"\t"}{.status.readyReplicas}{"/"}{.status.replicas}{"\n"}{end}'
error: error …
Run Code Online (Sandbox Code Playgroud)

jsonpath kubernetes

8
推荐指数
0
解决办法
1054
查看次数

不带任何参数执行“| xargs”有什么好处吗?

我遇到过| xargs不带任何参数执行的脚本。我开始删除此类事件,因为脚本在没有它们的情况下也可以工作,但想验证我没有遗漏某些内容。也许 xargs 默认会清理某些字符等。

... | cut -d: -f2- | xargs
Run Code Online (Sandbox Code Playgroud)

有了以上这些还有什么意义吗| xargs?提前致谢。

bash xargs

1
推荐指数
1
解决办法
118
查看次数

标签 统计

bash ×1

jsonpath ×1

kubernetes ×1

xargs ×1