如何解决如何仅列出来自kubectl输出的主节点?
]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip<IP>.ec2.internal Ready master 300d v1.15.3
ip<IP>.ec2.internal Ready node 180d v1.15.3
ip<IP>.ec2.internal Ready master 300d v1.15.3
ip<IP>.ec2.internal Ready node 300d v1.15.3
ip<IP>.ec2.internal Ready node 300d v1.15.3
ip<IP>.ec2.internal Ready,SchedulingDisabled node 180d v1.15.3
ip<IP>.ec2.internal Ready node 180d v1.15.3
ip<IP>.ec2.internal Ready master 300d v1.15.3
ip<IP>.ec2.internal Ready node 300d v1.15.3
我想要的是输出应该仅具有节点名称列表,该列表显示哪些是第一列,哪些仅是主节点。我尝试了脚本方式:
#!/bin/bash
kubectl get nodes --selector=node-role.kubernetes.io/master > nodelist.txt
cat nodelist.txt
while IFS=" " read -r f1
do
echo $f1
done < nodelist.txt
,但是我想要使用kubectl --custom-column或json过滤plz建议的任何方法。
解决方法
您还可以使用labels和jsonpath从kubectl get nodes -o json
输出中选择所需的内容
kubectl get nodes -l node-role.kubernetes.io/master -o 'jsonpath={.items[*].metadata.name}'
顺便说一句,如果您在任何时候输了,都可以kubernetes kubectl Cheat Sheet。它具有最常用的命令
,我没有尝试过,但是它应该给您想要的输出。
kubectl get nodes | grep master | awk 'print {$1 $3}'
,
但是我想要使用kubectl --custom-column或json过滤plz建议的任何方法。
是的,您可以使用--custom-columns
仅显示名称
kubectl get nodes -o custom-columns=NAME:.metadata.name
NAME
my-node
此外,您可以使用--no-headers
kubectl get nodes -o custom-columns=NAME:.metadata.name --no-headers
my-node
使用您提供的选择器,仅显示主节点,完整的命令是这样的:
kubectl get nodes --selector=node-role.kubernetes.io/master -o custom-columns=NAME:.metadata.name --no-headers
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。