kubernetes - 如何获取除主节点外的所有状态为“就绪”的节点?
问题描述
什么kubernetes
cli
命令会列出除主节点之外的所有状态为“就绪”的节点?
解决方案
回答:
$ 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}"
推荐阅读
- java - Spring Data JPA 真的那么好用吗
- sql - 获取教师和学生的 SQL 查询具有无效标识符
- php - Codeigniter:模型中的删除功能不起作用
- delphi - 为什么delphi源代码像比较整数一样比较单个?
- actions-on-google - Google Assistant 提高/降低风扇速度
- java - 为什么 Flux.fromIterable() 在 RestController 中返回作为一个连接字符串返回?
- vue.js - Vue:功能组件不接收道具
- r - R:导入pdf并以文件名作为id创建TermDocumentMatrix
- php - 从 SQL 查询返回的数据创建多维数组
- c++ - C++ 在我的计算机上运行良好,但在 leetcode 上出现地址清理程序堆缓冲区溢出错误