我正在寻找类似“ 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”的思路。有命令正确执行此操作吗?
答案 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
只需使用单引号将命令运行。
链接:
希望这会有所帮助!