如何获得kuberenetes的单一吊舱名称?

时间:2018-07-31 11:02:14

标签: 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 

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

3 个答案:

答案 0 :(得分:2)

方法很多,快速搜索可以找到许多解决方案:

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 list all running pods name

Kubernetes list all container id

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

答案 1 :(得分:1)

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

> kubectl get pods --all-namespaces|grep grafana

输出:

monitoring      kube-prometheus-grafana-57d5b4d79f-smkz6               2/2       Running   0          1h

要仅输出Pod名称,可以使用带有参数awk的{​​{1}}命令,该命令将显示上一个输出的第二列:

'{print $2}'

要只显示一行,可以使用kubectl get pods --all-namespaces|grep grafana|awk '{print $2}' 命令,如下所示:

head

答案 2 :(得分:0)

  • 这将输出最后一个pod名称: kubectl get pods -o go-template --template ' {{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | awk '{print $1}' | tail -n 1

  • 如果要获取Pod的日志: kubectl logs -f kubectl get pods -o go-template --template ' {{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | awk '{print $1}' | tail -n 1

只需使用单引号将命令运行。

链接:

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

希望这会有所帮助!