- kubectl get – list resources
- kubectl describe – show detailed information about a resource
- kubectl logs – print the logs from a container in a pod
- kubectl exec – execute a command on a container in a pod
List existing pods
kubectl get pods
Get detailed information on the pods
kubectl describe pods
Start a proxy to access the containers within the pod
kubectl proxy
Get the pod name and store it in the POD_NAME environment variable
export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
echo Name of the Pod: $POD_NAME
Access an API running in the pod. The name of the pod is in the POD_NAME environment variable
curl http://localhost:8001/api/v1/namespaces/default/pods/POD_NAME/proxy/
View the STDOUT of the only container of the pod
kubectl logs POD_NAME
View the STDOUT of a specific container of the pod
kubectl logs POD_NAME -c CONTAINER_NAME
View the STDOUT of all containers of the pod
kubectl logs POD_NAME --all-containers=true
Execute a command in the only container of the pod
kubectl exec POD_NAME MY_COMMAND
Execute a command in a container of the pod
kubectl exec POD_NAME -c CONTAINER_NAME MY_COMMAND
Start a Bash session in the container (container name is optional if the pod has only one container)
kubectl exec -ti POD_NAME -c CONTAINER_NAME bash
To check an API from the Bash console within the container (use localhost to address it within the container)
curl localhost:8080
Force the deletion of all pods of a deployment
Make sure the MY_DEPLOYMENT_NAME only returns the pods you really want to delete
# IMPORTANT!!!
# First make sure the query only returns the list of pods you really want to delete
kubectl get pods | grep MY_DEPLOYMENT_NAME | awk '{print $1}')
Execute the command to delete the pods
while IFS= read -r result
do
kubectl delete pod $result --grace-period=0 --force
done < <(kubectl get pods | grep MY_DEPLOYMENT_NAME | awk '{print $1}')