如何列出其中包含 CharDevice 的 Kubernetes pod?
我可以使用 CharDevice 獲取 pod,但只需要列印 pod 名稱
kubectl get pod -o jsonpath='{spec.volumes.hostPath.type=="CharDevice"}'
uj5u.com熱心網友回復:
我認為使用jsonpath隨附提供的過濾器/決議是不可能的Kubectl。但是,go-template如果您只想在kubectl不使用任何其他工具的情況下執行此操作,則可以使用:
kubectl get pod -A -o go-template='{{range $index, $element := .items}}{{range $key, $vol := .spec.volumes}}{{range $sk ,$sv := .hostPath}}{{if (eq $sv "CharDevice") }}{{$element.metadata.name}}{{"\n"}}{{end}}{{end}}{{end}}{{end}}'
為了可讀性:
您可以使用{{-修剪左側的空格,-}} 修剪右側的空格。使用此資訊,與上述相同的命令可以轉換為:
kubectl get pod -A -o go-template='{{- range $index, $element := .items -}}
{{- range $key, $vol := .spec.volumes -}}
{{- range $sk ,$sv := .hostPath -}}
{{- if (eq $sv "CharDevice") -}}
{{- $element.metadata.name -}}{{"\n"}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}'
uj5u.com熱心網友回復:
您可以先獲取 json 并使用它jq來獲得所需的結果:
kubectl get pod -o json |
jq -r '.items[]|select(any(.spec.volumes[];.hostPath.type=="CharDevice")).metadata.name'
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/462480.html
標籤:Kubernetes jq json路径
上一篇:強制pod創建順序
