库伯内特列出了所有运行的豆荚名称

我寻找选项列出所有的豆荚名称

如何做没有 awk (或剪切)。现在我使用这个命令

kubectl get --no-headers=true pods -o name | awk -F "/" '{print $2}'
120732 次浏览

您可以使用构建在 kubectl 中的 go 模板选项来格式化输出,只显示每个 pod 的名称:

kubectl get pods --template '\{\{range .items}}\{\{.metadata.name}}\{\{"\n"}}\{\{end}}'

可以在输出选项中使用自定义列来获取名称和—— no-header 选项

kubectl get --no-headers=true pods -l app=external-dns -o custom-columns=:metadata.name

Jsonpath 备选方案

kubectl get po -o jsonpath="{range .items[*]}{@.metadata.name}{end}" -l app=nginx-ingress,component=controller

参见: Kubectl 输出选项的更多示例

You can use -o=name to display only pod names. For example to list proxy pods you can use:

kubectl get pods -o=name --all-namespaces | grep kube-proxy

结果是:

pod/kube-proxy-95rlj
pod/kube-proxy-bm77b
pod/kube-proxy-clc25

使用 -o=name获取吊舱的名称参考此 备忘录了解更多信息。

kubectl get pods -o=name

输出示例:

pod/kube-xyz-53kg5
pod/kube-xyz-jh7d2
pod/kube-xyz-subt9

要删除尾随 pod/,可以使用标准 bash sed命令

kubectl get pods -o=name | sed "s/^.\{4\}//"

输出示例:

kube-xyz-53kg5
kube-pqr-jh7d2
kube-abc-s2bt9

要获得带有特定字符串的 podname,请使用标准的 linux grep命令

kubectl get pods -o=name | grep kube-pqr | sed "s/^.\{4\}//"

输出示例:

kube-pqr-jh7d2

使用这个名称,您可以做一些事情,比如添加别名以使 shell 到运行的容器中:

alias bashkubepqr='kubectl exec -it $(kubectl get pods -o=name | grep kube-pqr | sed "s/^.\{4\}//") bash'

就我个人而言,我更喜欢这种方法,因为它只依赖于 kubectl,不是很冗长,而且我们不会在输出中得到 pod/前缀:

kubectl get pods --no-headers -o custom-columns=":metadata.name"

Kubectl 得到 po ——所有名称空间 | awk’{ if ($4!= “ Run”) system (“ kubectl-n”$1“ delete pods”$2“—— grace-period = 0”—— force”)}’

获取名称空间中所有正在运行的 pods

kubectl get pods --field-selector=status.phase=Running --no-headers -o custom-columns=":metadata.name"

来自 viewing, finding resources

还可以使用 < strong >-n < 名称空间名称 > 指定命名空间。

还有一个解决办法:

kubectl get pods -o jsonpath={..metadata.name}

如果您想提取特定 containerpod名称,那么 一个简单的命令就可以完成所有艰巨的工作

kubectl get pods --template '\{\{range .items}}\{\{.metadata.name}}\{\{end}}' --selector=app=<CONTAINER-NAME>

只需用您的服务容器名称替换 <CONTAINER-NAME>

下面是另一种方法:

kubectl get pods -o=name --field-selector=status.phase=Running

--field-selector=status.phase=Running是必要的,因为问题提到了所有的 跑步豆荚名称。如果问题中的 所有适用于所有名称空间,那么只需添加 --all-namespaces选项。

注意,当需要从运行的 pod (s)中快速访问某些内容(如日志)时,这个命令非常方便:

kubectl logs -f $(kubectl get pods -o=name --field-selector=status.phase=Running)

嗯,在我们的例子中,我们将 pods 保留在不同的名称空间中,这里是为了确定我们按照命令运行的 pods 的特定的 pod 或列表-

方法1:

  1. To get the list of namespaces kubectl get ns -A

  2. To get all the pods inside one namespaces kubectl get pods -n <namespace>

方法2:

使用此命令-

kubectl get pods --all-namespaces