没有标签的节点数?
Count of nodes which do not have a label?
如何使用kubectl获取没有标签的K8S节点?
另外,如何获取没有任何标签的 K8S pods?
根据官方的说法documentation我不认为有办法做到这一点,但你可以通过相等性的否定来做类似的事情:
kubectl get nodes --selector=kubernetes.io/hostname!=node_host_name
基本上你可以 select 所有没有特定标签的东西,你也可以链接 select 或者
更多阅读:https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
如果不列出所有可能的标签,则没有具体的方法来检查一般情况下是否没有标签。你必须做这个客户端。
无法检查没有标签的 nodes/pods。相反,您可以做的是检查 nodes/pods 的特定标签
按照以下步骤操作
添加标签 mylabel=k8s
master $ kubectl get no
NAME STATUS ROLES AGE VERSION
master Ready master 51m v1.11.3
node01 Ready <none> 50m v1.11.3
master $
master $
master $ kubectl label nodes node01 mylabel=k8s
node/node01 labeled
master $
master $ kubectl get no -L mylabel
NAME STATUS ROLES AGE VERSION MYLABEL
master Ready master 52m v1.11.3
node01 Ready <none> 52m v1.11.3 k8s
列出标签为 mylabel=k8s 的节点
master $ kubectl get no -l mylabel=k8s
NAME STATUS ROLES AGE VERSION
node01 Ready <none> 53m v1.11.3
master $
列出没有标签 mylabel=k8s 的节点
master $ kubectl get no -l mylabel!=k8s
NAME STATUS ROLES AGE VERSION
master Ready master 53m v1.11.3
你必须利用 kubectl -o
标志和 go-template 输出:
kubectl get nodes -o go-template='{{range .items }}{{if .metadata.labels }}{{else}}{{printf "%s\n" .metadata.name}}{{ end }}{{end}}
此命令将只显示没有任何标签的节点。同样可以用于 pods:
kubectl get pods --all-namespaces -o go-template='{{range .items }}{{if .metadata.labels }}{{else}}{{printf "%s\n" .metadata.name}}{{ end }}{{end}}'
对于那些想要查找没有特定标签的资源的人,无论其值如何:
kubectl get ns --selector='!label_name'
第一个答案有效,但您也可以使用以下答案
kubectl get nodes -l '!label_name'
如何使用kubectl获取没有标签的K8S节点? 另外,如何获取没有任何标签的 K8S pods?
根据官方的说法documentation我不认为有办法做到这一点,但你可以通过相等性的否定来做类似的事情:
kubectl get nodes --selector=kubernetes.io/hostname!=node_host_name
基本上你可以 select 所有没有特定标签的东西,你也可以链接 select 或者
更多阅读:https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
如果不列出所有可能的标签,则没有具体的方法来检查一般情况下是否没有标签。你必须做这个客户端。
无法检查没有标签的 nodes/pods。相反,您可以做的是检查 nodes/pods 的特定标签
按照以下步骤操作
添加标签 mylabel=k8s
master $ kubectl get no
NAME STATUS ROLES AGE VERSION
master Ready master 51m v1.11.3
node01 Ready <none> 50m v1.11.3
master $
master $
master $ kubectl label nodes node01 mylabel=k8s
node/node01 labeled
master $
master $ kubectl get no -L mylabel
NAME STATUS ROLES AGE VERSION MYLABEL
master Ready master 52m v1.11.3
node01 Ready <none> 52m v1.11.3 k8s
列出标签为 mylabel=k8s 的节点
master $ kubectl get no -l mylabel=k8s
NAME STATUS ROLES AGE VERSION
node01 Ready <none> 53m v1.11.3
master $
列出没有标签 mylabel=k8s 的节点
master $ kubectl get no -l mylabel!=k8s
NAME STATUS ROLES AGE VERSION
master Ready master 53m v1.11.3
你必须利用 kubectl -o
标志和 go-template 输出:
kubectl get nodes -o go-template='{{range .items }}{{if .metadata.labels }}{{else}}{{printf "%s\n" .metadata.name}}{{ end }}{{end}}
此命令将只显示没有任何标签的节点。同样可以用于 pods:
kubectl get pods --all-namespaces -o go-template='{{range .items }}{{if .metadata.labels }}{{else}}{{printf "%s\n" .metadata.name}}{{ end }}{{end}}'
对于那些想要查找没有特定标签的资源的人,无论其值如何:
kubectl get ns --selector='!label_name'
第一个答案有效,但您也可以使用以下答案
kubectl get nodes -l '!label_name'