Repaso de conceptos básicos de Kubernetes y comandos esenciales para gestionar tus aplicaciones.
Kubernetes es una plataforma de orquestación de contenedores de código abierto creada por Google en el 2013. Sirve para automatizar la implementación, administración, operación y escalado de aplicaciones en contenedores. También facilita la gestión de infraestructura distribuida al proporcionar un control centralizado y una alta disponibilidad de los servicios que hospeda.
A continuación detallamos las definiciones de los elementos esenciales que componen Kubernetes:
Kubectl es la herramienta de línea de comandos para interactuar con un clúster de Kubernetes. Permite realizar tareas de administración como desplegar aplicaciones, inspeccionar recursos, escalar réplicas, gestionar configuraciones, etc.
Para gestionar tus aplicaciones en Kubernetes estos comandos te pueden ayudar:
kubectl get pods
: Lista todos los Pods en el namespace actual.kubectl describe pod <nombre-pod>
: Muestra detalles específicos de un Pod.kubectl logs <nombre-pod>
: Muestra los logs de un Pod.kubectl exec -it <nombre-pod> -- <comando>
: Ejecuta un comando en un contenedor dentro de un Pod.kubectl delete pod <nombre-pod>
: Elimina un Pod.kubectl get nodes
: Lista los nodos en el clúster.kubectl describe node <nombre-nodo>
: Muestra detalles de un nodo.kubectl cordon <nombre-nodo>
: Marca un nodo como no programable.kubectl drain <nombre-nodo>
: Desprograma un nodo y elimina Pods en preparación para mantenimiento.kubectl uncordon <nombre-nodo>
: Reactiva la programabilidad de un nodo.kubectl get services
: Lista todos los servicios en el namespace actual.kubectl describe service <nombre-servicio>
: Muestra detalles de un servicio.kubectl expose pod <nombre-pod> --type=<tipo> --port=<puerto>
: Crea un servicio para exponer un Pod.kubectl delete service <nombre-servicio>
: Elimina un servicio.kubectl get deployments
: Lista todos los deployments en el namespace actual.kubectl describe deployment <nombre-deployment>
: Muestra detalles de un deployment.kubectl scale deployment <nombre-deployment> --replicas=<número>
: Escala un deployment a un número específico de réplicas.kubectl rollout restart deployment <nombre-deployment>
: Reinicia un deployment.kubectl delete deployment <nombre-deployment>
: Elimina un deployment.kubectl get ingress
: Lista todos los objetos Ingress en el namespace actual.kubectl describe ingress <nombre-ingress>
: Muestra detalles de un Ingress.kubectl create ingress <nombre-ingress> --rule="<host>=<servicio>:<puerto>"
: Crea un Ingress básico con una regla de enrutamiento.kubectl delete ingress <nombre-ingress>
: Elimina un Ingress.kubectl get configmaps
: Lista todos los ConfigMaps en el namespace actual.kubectl describe configmap <nombre-configmap>
: Muestra detalles de un ConfigMap.kubectl create configmap <nombre-configmap> --from-literal=<clave>=<valor>
: Crea un ConfigMap con pares clave-valor.kubectl create configmap <nombre-configmap> --from-file=<archivo>
: Crea un ConfigMap a partir de un archivo.kubectl edit configmap <nombre-configmap>
: Edita un ConfigMap existente.kubectl delete configmap <nombre-configmap>
: Elimina un ConfigMap.kubectl get secrets
: Lista todos los Secrets en el namespace actual.kubectl describe secret <nombre-secret>
: Muestra detalles de un Secret (aunque los valores estarán codificados en base64).kubectl create secret generic <nombre-secret> --from-literal=<clave>=<valor>
: Crea un Secret con pares clave-valor.kubectl create secret generic <nombre-secret> --from-file=<archivo>
: Crea un Secret a partir de un archivo.kubectl delete secret <nombre-secret>
: Elimina un Secret.kubectl edit secret <nombre-secret>
: Edita un Secret existente.Hay que tener en cuenta que Kubernetes es un sistema enorme y complejo. En este artículo hemos explicado de forma superficial la definición de los conceptos básicos y comandos esenciales para entender mejor la plataforma y gestionar los recursos con Kubectl.