Reputation: 6792
I looking for the option to list all pods name
How to do without awk (or cut). Now i'm using this command
kubectl get --no-headers=true pods -o name | awk -F "/" '{print $2}'
Upvotes: 170
Views: 203805
Reputation: 679
kubectl exec -it $(kubectl get pods | grep mess | awk '{print $1}') /bin/bash
hostname -i
https://kubernetes.io/docs/tasks/access-application-cluster/list-all-running-container-images/
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq | grep mess
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\
sort
feca4d9f-02db-4edf-88a2-6e9d169a92a9
You can get all the values of a ConfigMap in one line by using the kubectl get command with the -o go-template option to iterate over the values and print them on separate lines. Here's an example:
kubectl get configmap MY_CONFIG_MAP -o go-template='{{range $k,$v := .data}}{{$k}}={{$v}}{{"\n"}}{{end}}'
kubectl get configmap MY_CONFIG_MAP -o jsonpath='{.data}'
Upvotes: -2
Reputation: 6911
I am using like below :
kubectl get pods -l service=usercontent
It brings all pods that related this service.
Upvotes: 0
Reputation: 1339
Here is another way to do it:
kubectl get pods -o=name --field-selector=status.phase=Running
The --field-selector=status.phase=Running
is needed as the question mention all the running pod names. If the all in the question is for all the namespaces, just add the --all-namespaces
option.
Note that this command is very convenient when one want a quick way to access something from the running pod(s), such as logs :
kubectl logs -f $(kubectl get pods -o=name --field-selector=status.phase=Running)
Upvotes: 17
Reputation: 5443
Well, In our case we have kept pods inside different namespace, here to identify the specific pod or list of pods we ran following command-
Approach 1:
To get the list of namespaces
kubectl get ns -A
To get all the pods inside one namespaces kubectl get pods -n <namespace>
Approach 2:
Use this command-
kubectl get pods --all-namespaces
Upvotes: 0
Reputation: 7759
If you want to extract specific container
's pod
name then
A simple command can do all the hard work
kubectl get pods --template '{{range .items}}{{.metadata.name}}{{end}}' --selector=app=<CONTAINER-NAME>
Just replace <CONTAINER-NAME>
with your service container-name
Upvotes: 5
Reputation: 4733
Get all running pods in the namespace
kubectl get pods --field-selector=status.phase=Running --no-headers -o custom-columns=":metadata.name"
From viewing, finding resources.
You could also specify namespace with -n <namespace name>.
Upvotes: 10
Reputation: 3201
There is also this solution:
kubectl get pods -o jsonpath={..metadata.name}
Upvotes: 18
Reputation: 18200
You can use the go templating option built into kubectl to format the output to just show the names for each pod:
kubectl get pods --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
Upvotes: 128
Reputation: 3099
Personally I prefer this method because it relies only on kubectl, is not very verbose and we don't get the pod/ prefix in the output:
kubectl get pods --no-headers -o custom-columns=":metadata.name"
Upvotes: 282
Reputation: 1531
Get Names of pods using -o=name
Refer this cheatsheet for more.
kubectl get pods -o=name
Example output:
pod/kube-xyz-53kg5
pod/kube-xyz-jh7d2
pod/kube-xyz-subt9
To remove trailing pod/
you can use standard bash sed
command
kubectl get pods -o=name | sed "s/^.\{4\}//"
Example output:
kube-xyz-53kg5
kube-pqr-jh7d2
kube-abc-s2bt9
To get podname with particular string, standard linux grep
command
kubectl get pods -o=name | grep kube-pqr | sed "s/^.\{4\}//"
Example output:
kube-pqr-jh7d2
With this name, you can do things, like adding alias to get shell to running container:
alias bashkubepqr='kubectl exec -it $(kubectl get pods -o=name | grep kube-pqr | sed "s/^.\{4\}//") bash'
Upvotes: 76
Reputation: 461
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
The result is:
pod/kube-proxy-95rlj
pod/kube-proxy-bm77b
pod/kube-proxy-clc25
Upvotes: 22
Reputation: 4979
jsonpath alternative
kubectl get po -o jsonpath="{range .items[*]}{@.metadata.name}{end}" -l app=nginx-ingress,component=controller
see also: more examples of kubectl output options
Upvotes: 4
Reputation: 621
You can use custom-columns in output option to get the name and --no-headers option
kubectl get --no-headers=true pods -l app=external-dns -o custom-columns=:metadata.name
Upvotes: 52