繁体   English   中英

如何根据 K8s 中的污点获取特定节点的名称

[英]How to get names of specific nodes depending on taints in K8s

在 kubernetes 集群中,我有几个节点,主节点和工作节点。 我想获得没有污点的节点的名称。 我知道我需要使用 jsonpath 获取它们并在其中添加条件,但不确定如何准确。 有人可以帮我解决这个问题吗? 污点在规范中,节点的名称显然在元数据中,那么我该如何处理这个任务呢?

您可以使用go-template来执行此操作:

例子:

kubectl get node  -o go-template='{{range $element := .items}}{{if (ne (len (or $element.spec.taints ""))  0)}}{{$element.metadata.name}}{{"\n"}}{{end}}{{end}}'

以更易读的格式:

kubectl get node  -o go-template='{{ range $element := .items }}
                                {{- if (ne (len (or $element.spec.taints ""))  0) -}}
                                    {{ $element.metadata.name}}{{"\n"}}
                                {{- end -}}
                            {{ end }}'

工作

  • 使用range,我们将遍历项目。 在这种情况下,它是节点。
  • 使用len function,我们将计算包含所有污点的列表的长度。
  • 如果没有发现污点,则在len function 中使用or将其默认为“0”。
  • 如果 taint len不等于( ne ) 为零,则打印元素名称(即节点名称)
  • 您可以将ne flipeq以扭转行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM