Continuamos con esta serie de entregas sobre Docker y Kubernetes
Según la documentación oficial Kubernetes (k8s) es una plataforma de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones en contenedores.
Básicamente es una plataforma de código abierto que orquesta contenedores (como los de Docker) en grupos distribuidos de servidores.
¿Para qué sirve?
- Escalar aplicaciones fácilmente (de 1 a 1,000 contenedores sin perder el control).
- Distribuir carga entre servidores.
- Recuperarse automáticamente si algo falla.
- Declarar el estado ideal (Kubernetes se encarga de mantenerlo).
Es como tener un director de orquesta que sabe cuándo y dónde deben sonar los instrumentos (contenedores) para que la sinfonía (tu app) no se detenga.
Comandos básicos
Observemos ahora algunos de los comandos más usados en Kubernetes.
Crear un Deployment que maneje un Pod:
$ kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
Ver el Deployment:
$ kubectl get deployments
Mostrar los contenedores que están corriendo en un clúster:
$ kubectl get pods
Mostrar los eventos del clúster:
$ kubectl get events
Mostrar la configuración:
$ kubectl config view
Crear o actualizar recursos desde un archivo YAML:
$ kubectl apply -f application.yaml
Mostrar información detallada del Pod:
$ kubectl describe pod mypod
Mostrar los logs del contenedor:
$ kubectl logs mypod
Mostrar todos los recursos:
$ kubectl get all
Eliminar recursos definidos en el archivo YAML:
$ kubectl delete -f application.yaml
Interacción con Docker
En una entrega anterior vimos el flujo de trabajo con Docker.
Ahora imaginemos que tienes una aplicación en un contenedor Docker. Para que Kubernetes la administre, se crea un archivo de configuración (deployment.yaml):
apiVersion: apps/v1 kind: Deployment metadata: name: mi-app spec: replicas: 3 selector: matchLabels: app: mi-app template: metadata: labels: app: mi-app spec: containers: - name: mi-app image: usuario/mi-imagen:latest ports: - containerPort: 80
Ahora desplegamos con Kubernetes:
$ kubectl apply -f deployment.yaml
Se podría usar Docker Swarm en lugar de Kubernetes por simplicidad y rapidez. Sin embargo, si tu proyecto es algo más complejo es mejor usar Kubernetes. Ya que es ideal para arquitecturas complejas, microservicios y entornos empresariales.
Este solo es un pequeño vistazo a lo que es Kubernetes. Continuaremos con este tema en próximas entregas.
Enlaces:
https://kubernetes.io/https://codemonkeyjunior.blogspot.com/2025/07/docker-conociendo-el-flujo-de-trabajo.html
https://codemonkeyjunior.blogspot.com/2025/01/docker-en-palabras-sencillas.html
https://alquimistadecodigo.blogspot.com/2020/07/docker-imagenes-y-contenedores.html
https://hub.docker.com/
https://alquimistadecodigo.blogspot.com/2020/03/docker-instalacion.html
https://alquimistadecodigo.blogspot.com/2020/08/docker-instalando-una-imagen-de-nimrod.html