【问题标题】:How to filter the running nodes如何过滤正在运行的节点
【发布时间】:2020-06-24 06:50:53
【问题描述】:

我想过滤正在运行的节点列表。我尝试了下面的命令,但它只显示运行状态。我需要用它的名字过滤。有什么帮助吗?

[root@techsl]# kubectl get nodes -o jsonpath='{range .items[]}{@.metadata.name}:{range @.status.enter code hereconditions[ ]}{@.type}={@.status};{end}{end}'| tr';' "\n" | grep "Ready=True"

【问题讨论】:

  • 能否请您显示命令第一部分的输出 (kubectl ...) 以及相关的预期输出并将其编辑为原始问题,不要将其放在 cmets 中?并在输出前加上四个空格。
  • 我一定会更新评论

标签: linux bash kubernetes openshift


【解决方案1】:

这样的事情比较简单:

kubectl get nodes | grep -v NotReady | awk '{print $1}' | tail -n2
server1
server3

kubectl get nodes

NAME                               STATUS     ROLES    AGE    VERSION
server1                            Ready      master   106d   v1.14.9
server2                            NotReady   <none>   106d   v1.14.9
server3                            Ready      <none>   106d   v1.14.9

【讨论】:

    【解决方案2】:
    kubectl get nodes -o jsonpath="{range .items[*]}{@.metadata.name}: {range @.status.conditions[4]}{@.type}; {end}{end}";
    

    kubernetes-1-17-master:准备好了; kubernetes-1-17-worker:准备好了;

    你的做法:

    kubectl get nodes -o jsonpath="{range .items[*]}{@.metadata.name}:{range @.status.conditions[4]}{@.type}={@.status}; {end}{end}" | grep "Ready=True"
    

    kubernetes-1-17-master:Ready=True; kubernetes-1-17-worker:Ready=True;

    【讨论】:

    • 嗨@suren。如果节点未准备好,我想将结果发送给邮件。对此有任何想法。 kubectl 获取节点 -o jsonpath="{range .items[*]}{@.metadata.name}:{range @.status.conditions[4]}{@.type}={@.status}; {end} {结束}" | tr';' "\n" | grep "准备好=真" |邮件 -s $subject techsl@example.com
    • 老实说,我现在使用 sendgrid 来发送邮件。但也应该与mail 一起使用。
    猜你喜欢
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多