meta data de esta página
¡Esta es una revisión vieja del documento!
Comandos de Kubectl
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
- para conocer el estado del cluster kubernetes → kubectl status
- para saber la versión → kubectl version
- ver la configuración → kubectl config view
- kubectl run → para crear y ejecuar un pod
- kubectl get pods → Para ver los pods de nuestro cluster
- kubectl api-resoruce → Listado de todos los comandos que permite la API
- kubectl cluster-info → información del cluster
- kubectl get pods -n kube-system → pods del sistema
- kubectl get deploy,rs,service,pods → es igual a un kubectl get all
- kubectl api-resources → información sobre la API de kubernetes
- kubectl get service → lista de los servicios
- kubectl get deployments → lista de deployments
- kubectl get namespaces → lista de namespaces
- kubectl delete service <nombre_servicio>→ eliminar servicio <nombre_servicio>
- kubectl delete deployment <nombre_del_deployment>→ eliminar deployment <nombre_del_deployment>
- kubectl apply -f deployment.yaml → aplicar el contenido del fichero deployment.yaml
- kubeadm token list →listar los tokens
- exponer un deployment → kubectl expose deployment <mi-deployment> –port=80 –type=NodePort
- escalar a 3 replicas un deployment → kubectl scale –replicas=3 deployment <mi-deployment> -n <mi-namespace>
- crear un secret → kubectl create secret generic mysql-pass –from-literal=password=<mi-contraseña>
==== Comando para PODs
Crear un POD
Hay dos formas de crear pods. De forma imperativa y de forma declarativa
Imperativa
Ejecutamos el comando para crearlo Hasta la versión 1.17 se debe usar la forma siguiente
1 |
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
1 |
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
1 |
kubectl run podtest --image=nginx:alpine |
Para crear un pod temporal que se elimine al salir del shell
1 |
kubectl run --rm -ti podtest --image=nginx:alpine -- sh |
Declarativa
Definimos un archivo en formato yaml para después aplicarlo
1 |
kubecttl apply -f nombre_fichero.yaml |
Listar los pods que tenemos
1 |
kubectol get pods |
1 |
kubectl get pods --all-namespaces -o wide |
1 |
kubectl get pods -n <nombre_namespaces> |
Ver una descripción del pod
Nos permite ver los eventos de un pod y su descripción
1 |
kubectl describe pod <nombredelpod> |
Etiquetar un pod
1 |
kubectl label pods <nombredelpod> app=mietiqueta |
Recursos que consume un pod
1 |
kubectl top pod <nombre pod> |
Eliminar un pod
1 |
kubectl delete pod <nombredelpod> |
Si los pods lo hemos creado desde un manifiesto. Para borrarlos lo mejor es ejecutar
1 |
kubectl delete -f <nombremanifiesto> |
Entrar al shell de nuestro pod
1 |
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
1 |
kubectl exec -ti <nombredelpod> -c <nombrecontenedor> --sh |
Ver los logs de un pod
1 |
kubectl logs <nombredelpod> |
1 |
kubectl logs <nombredelpod> -c <nombredelcontenedor> |
si son pods del system , por ejemplo del driver kube-flannel
1 |
kubectl logs -p kube-flannel-ds-xcl6f -n kube-system |
Ejecutar un comando sobre un contenedor
1 |
kubectl exec <nombredelpod> -c <nombredelcontenedor> <comando> |
Copiar un fichero a un contenedor
1 |
kubectl cp /tmp/archivoprueba <nombredelpod>:/var/www/html -c <nombredelcontenedor> |
Acceder a un puerto dentro de un pod
1 |
kubectl port-forward --address 0.0.0.0 pod/<pod-name> <host-port>:<pod-port> |
Trabajar con Cluster
- Para obtener información sobre el cluster → kubectl cluster-info
- Información sobre los nodos → kubectl get nodes
- descripción de un nodo → kubectl describe node <nombre del nodo>
- ver el consumo de un nodo →kubectl top node <nombre nodo>
- Poner un nodo fuera de servicio (para actualizar por ejemplo) → kubectl uncordon <nombre nodo>
- Para que quite todos los pods etc que ya existieran en este nodo → kubectl drain <nombre nodo>
- Para volver a ponerlo como disponible → kubectl cordon <nombre nodo>