https://kubernetes.io/docs/reference/kubectl/cheatsheet/
Hay dos formas de crear pods. De forma imperativa y de forma declarativa
Ejecutamos el comando para crearlo Hasta la versión 1.17 se debe usar la forma siguiente
kubectl run --generator=run-pod/v1 <nombre pod> --image=<nombre imagen> created
Apartir de la versión 1.18 la parte de generator está en deshuso y ahora se utiliza
kubectl run <nombre pod> --image=<nombre de la imagen del repositorio Docker Hub >
Por ejemplo para crear un pod con una imagen de un nginx basado en alpine
kubectl run podtest --image=nginx:alpine
Para crear un pod temporal que se elimine al salir del shell
kubectl run --rm -ti podtest --image=nginx:alpine -- sh
Definimos un archivo en formato yaml para después aplicarlo
kubecttl apply -f nombre_fichero.yaml
kubectol get podsListar los pods de todos los namespaces
kubectl get pods --all-namespaces -o wideListar los pods de un determinado namespace
kubectl get pods -n <nombre_namespaces>Listar los pods del sistema → kubectl get pods -n kube-system
Nos permite ver los eventos de un pod y su descripción
kubectl describe pod <nombredelpod>
kubectl label pods <nombredelpod> app=mietiqueta
kubectl top pod <nombre pod>
kubectl delete pod <nombredelpod>
Si los pods lo hemos creado desde un manifiesto. Para borrarlos lo mejor es ejecutar
kubectl delete -f <nombremanifiesto>
kubectl exec -ti <nombredelpod> --sh
En el caso de que tengamos un pod con dos contenedores en su interior y queramos entrar al shell de primer contenedor
kubectl exec -ti <nombredelpod> -c <nombrecontenedor> --sh
kubectl logs <nombredelpod>Si tenemos mas de un contenedor en el pod
kubectl logs <nombredelpod> -c <nombredelcontenedor>
si son pods del system , por ejemplo del driver kube-flannel
kubectl logs -p kube-flannel-ds-xcl6f -n kube-system
kubectl exec <nombredelpod> -c <nombredelcontenedor> <comando>
kubectl cp /tmp/archivoprueba <nombredelpod>:/var/www/html -c <nombredelcontenedor>
kubectl port-forward --address 0.0.0.0 pod/<pod-name> <host-port>:<pod-port>