如何获得 kubernetes 的单个 pod 名称?

sjs*_*jsc 7 kubernetes google-kubernetes-engine

我正在寻找像“gcloud config get-value project”这样的命令来检索项目的名称,但对于 pod(它可以检索任何正在运行的 pod 名称)。我知道您可以使用“kubectl get pods”获得多个 pod,但我只想要一个 pod 名称作为结果。

我必须一直这样做:

kubectl get pods       # add one of the pod names in next line
kubectl logs -f some-pod-frontend-3931629792-g589c some-app 
Run Code Online (Sandbox Code Playgroud)

我正在考虑“gcloud config get-value pod”的思路。是否有正确执行此操作的命令?

Mar*_*sch 8

您可以使用 grep 命令过滤 stdout 上的任何输出。因此,要获取与指定模式匹配的 pod,您可以使用如下命令:

> kubectl get pods --all-namespaces|grep grafana
Run Code Online (Sandbox Code Playgroud)

输出:

monitoring      kube-prometheus-grafana-57d5b4d79f-smkz6               2/2       Running   0          1h
Run Code Online (Sandbox Code Playgroud)

要仅输出 pod 名称,您可以使用awk带有参数的命令,该命令'{print $2}'显示先前输出的第二列:

kubectl get pods --all-namespaces|grep grafana|awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

要仅显示一行,您可以使用如下head命令:

kubectl get pods --all-namespaces|grep grafana|awk '{print $2}'|head -n 1
Run Code Online (Sandbox Code Playgroud)


Die*_*des 8

方法很多,快速搜索一下就可以找到很多解决办法:

kubectl get pods -o name --no-headers=true

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

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

请查看以下链接:

kubernetes 列出所有正在运行的 pod 名称

Kubernetes 列出所有容器 id

https://kubernetes.io/docs/tasks/access-application-cluster/list-all-running-container-images/