首页 > 解决方案 > 如何获取除主节点外的所有状态为“就绪”的节点?

问题描述

什么kubernetes cli命令会列出除主节点之外的所有状态为“就绪”的节点?

标签: kubernetes

解决方案


回答:

$ kubectl get nodes --selector '!node-role.kubernetes.io/master' --output jsonpath="{.items[?(@.status.conditions[-1].type=='Ready')].status.conditions[-1].type}"

解释:

选择器标志排除所有与标签--selector '!node-role.kubernetes.io/master'不匹配的节点。node-role.kubernetes.io/master

输出标志--output jsonpath="{.items[?(@.status.conditions[-1].type=='Ready')].status.conditions[-1].type}"匹配节点,最后一个条件处于就绪状态 - 这原来是 KubeletReady 的状态。

编辑:更优雅的解决方案

$ kubectl get nodes --selector '!node-role.kubernetes.io/master' --output jsonpath="{range .items[?(@.status.conditions[-1].type=='Ready')]}{.metadata.name} {.status.conditions[-1].type}{'\n'}{end}"

推荐阅读