Skip to content

Kubernetes ​

Kubernetes (K8s) es una plataforma para desplegar y operar aplicaciones en contenedores en un clúster de máquinas. En vez de indicar paso a paso cómo ejecutar cada contenedor, se declara el estado deseado y Kubernetes trabaja para mantenerlo.

Esta sección reúne una introducción y guías prácticas:

Componentes principales ​

Un clúster de Kubernetes se organiza en dos grupos:

  • Plano de control: expone la API del clúster y coordina los recursos. Incluye componentes como el API server, el scheduler y los controladores.
  • Nodos: máquinas que ejecutan las cargas de trabajo. Cada nodo tiene un agente (kubelet) y un runtime de contenedores compatible con Kubernetes.

El plano de control programa Pods en los nodos y los controladores reconcilian continuamente el estado real con el estado declarado. Por ejemplo, si un Deployment solicita tres réplicas y una deja de estar disponible, Kubernetes intenta crear otra.

Conceptos esenciales ​

RecursoFunción
PodUnidad mínima desplegable; contiene uno o más contenedores que comparten red y pueden compartir volúmenes.
DeploymentMantiene un conjunto de Pods sin estado y permite escalarlo y actualizarlo.
ServiceProporciona una dirección estable para acceder a un conjunto de Pods.
ConfigMap / SecretProporciona configuración y datos sensibles a las aplicaciones.
PersistentVolumeClaim (PVC)Solicita almacenamiento persistente al clúster.
NamespaceAgrupa recursos y ayuda a separar entornos o equipos dentro del clúster.

Preparar el entorno ​

Para practicar se necesita un clúster local o remoto y kubectl, el cliente de línea de comandos. Algunas opciones locales son kind, minikube y Docker Desktop con Kubernetes habilitado. Un proveedor cloud suele ofrecer un clúster gestionado.

Comprueba el cliente y el contexto activo:

bash
kubectl version --client
kubectl config current-context
kubectl get nodes

El contexto determina a qué clúster y usuario se envían los comandos. Compruébalo antes de aplicar cambios, especialmente si tienes acceso a varios entornos.

Declarar el estado deseado ​

Los recursos suelen describirse en archivos YAML y se aplican mediante la API:

bash
kubectl apply -f recurso.yaml
kubectl get pods
kubectl describe deployment mi-app

Los manifiestos expresan el estado que quieres mantener, no una secuencia de comandos imperativa. Kubernetes y sus controladores se encargan de reconciliar los recursos.

Importante: los ejemplos de esta documentación son una base para aprender. En producción, adapta las imágenes, los recursos, la seguridad, la configuración de red y la persistencia a las necesidades de la aplicación y del clúster.