Ir al contenido principal

Introducción al Bloque 4: Almacenamiento en Kubernetes

 

El almacenamiento en Kubernetes es uno de los pilares fundamentales para asegurar la persistencia de los datos y su correcta gestión en aplicaciones distribuidas. A medida que las aplicaciones modernas requieren mayor resiliencia y escalabilidad, es crucial entender cómo Kubernetes maneja y abstrae los recursos de almacenamiento para poder integrarlos de manera eficiente en los clústeres.

En este bloque, vamos a sumergirnos en los conceptos y prácticas clave de almacenamiento en Kubernetes, enfocándonos en los volúmenes efímeros y persistentes, las clases de almacenamiento (Storage Classes) y las reclamaciones de volúmenes persistentes (PVC). Estos son los componentes esenciales que permiten a Kubernetes separar las preocupaciones de almacenamiento del ciclo de vida de los pods, proporcionando flexibilidad y persistencia de datos a largo plazo.

Temas que abordaremos

  1. Volúmenes Efímeros
    Exploraremos los volúmenes efímeros, los cuales son creados y eliminados junto con el pod. Este tipo de almacenamiento es ideal para datos temporales, como registros (logs), cachés o archivos de trabajo que no requieren ser almacenados permanentemente. Técnicamente, veremos tipos como:

    • emptyDir: Se utiliza para compartir almacenamiento temporal entre los contenedores de un mismo pod.
    • configMap y Secret: Utilizados para almacenar configuraciones y datos sensibles, disponibles solo durante el ciclo de vida del pod.
  2. Volúmenes Persistentes (Persistent Volumes)
    Los volúmenes persistentes son aquellos que sobreviven al ciclo de vida de los pods y garantizan la persistencia de los datos a través de reinicios o reemplazos de pods. Aquí profundizaremos en conceptos como:

    • hostPath: Un tipo de volumen persistente que mapea rutas del nodo directamente al pod. Si bien es útil en entornos de desarrollo, tiene limitaciones para producción.
    • NFS y otros volúmenes de red: Ideales para compartir almacenamiento entre múltiples pods de diferentes nodos, facilitando la colaboración entre aplicaciones distribuidas.
  3. Clases de Almacenamiento (Storage Classes)
    Kubernetes permite el aprovisionamiento dinámico de almacenamiento a través de las Storage Classes. Estas proporcionan una abstracción que facilita la creación de volúmenes bajo demanda, permitiendo definir perfiles de almacenamiento que se ajusten a diferentes tipos de aplicaciones. Veremos:

    • Cómo definir Storage Classes para adaptar los volúmenes a necesidades específicas, como rendimiento o capacidad.
    • El uso de drivers CSI (Container Storage Interface) para conectar Kubernetes a proveedores de almacenamiento en la nube o infraestructuras locales.
  4. Persistent Volume Claims (PVC)
    El PVC es la manera en la que los pods solicitan almacenamiento persistente en Kubernetes. Esta reclamación asegura que los pods puedan acceder al almacenamiento de forma segura y controlada. Veremos cómo configurar PVCs para que los pods puedan hacer uso eficiente del almacenamiento disponible en el clúster, desde pequeños archivos temporales hasta grandes bases de datos.

Pincelada Técnica

A lo largo de este bloque, realizaremos prácticas concretas, como la creación de volúmenes persistentes con manifestaciones yaml y la correcta asignación de recursos mediante PVC. Por ejemplo, trabajaremos con ejemplos como:

apiVersion: v1 kind: PersistentVolume metadata: name: cka-pv-hostpath spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain hostPath: path: /mnt/data

Este manifiesto crea un volumen persistente en el nodo que puede ser reclamado por un pod a través de un PVC, lo que proporciona un nivel de control y seguridad sobre los datos almacenados. Además, aprenderemos a utilizar Storage Classes con aprovisionamiento dinámico para que el clúster administre automáticamente el almacenamiento.

¿Por qué es importante?

En entornos donde los datos deben ser altamente disponibles, robustos y escalables, el almacenamiento en Kubernetes se convierte en una herramienta poderosa. Con la capacidad de manejar tanto volúmenes efímeros como persistentes, Kubernetes te permite asegurar la persistencia de datos críticos mientras optimizas el uso de los recursos de almacenamiento.

Este bloque te proporcionará las herramientas y el conocimiento necesarios para abordar los desafíos de almacenamiento en entornos distribuidos, asegurando que tus aplicaciones no solo funcionen de manera eficiente, sino que también mantengan los datos de manera segura y confiable.

Comentarios

Entradas populares de este blog

Autenticación y Autorización (Kubernetes).

La autenticación en Kubernetes es un aspecto crítico para la seguridad y control de acceso dentro de un clúster. Kubernetes proporciona varios mecanismos de autenticación para usuarios y cuentas de servicio, que deben pasar a través del API Server para realizar cualquier operación. En este artículo, revisaremos cómo funciona la autenticación y cómo puedes usar herramientas como kubectl y curl para interactuar de manera segura con el clúster. En primer lugar, ¿Qué es la autenticación y la autorización? •     Autenticación:  Es el proceso de verificar quién es un usuario. Responde a la pregunta "¿Quién eres?". •     Autorización: El proceso de determinar qué acciones puede realizar un usuario autenticado. Responde a la pregunta "¿Qué puedes hacer?". Primer paso: Autenticación. La autenticación en Kubernetes es el proceso mediante el cual el sistema verifica la identidad de los usuarios y cuentas de servicio que intentan acceder al clúster.  ...

Tip 1. Exámen CKA. Economiza y optimiza tu tiempo; Usa --help con el paginador Less en la ayuda.

📘 Domina los comandos --help y el uso de less en el examen CKA Durante el examen CKA (Certified Kubernetes Administrator) , uno de los recursos más potentes y completamente permitidos es el uso del --help en los comandos de Kubernetes. Además, puedes combinarlo con el paginador less para buscar y navegar fácilmente entre opciones. ✅ ¿Está permitido usar --help ? Sí, está 100% permitido . Puedes usar el --help de cualquier comando disponible en el entorno del examen: kubectl --help kubeadm init --help kubelet --help kubectl explain pod.spec.containers Estos comandos muestran la ayuda y las opciones disponibles directamente desde el sistema, sin necesidad de ir a la documentación. 🔍 ¿Cómo usar less para buscar rápidamente? Cuando la salida del comando es larga, puedes usar | less para verla de forma paginada y navegar más cómodamente. kubeadm init --help | less Una vez dentro de less , puedes buscar cualquier texto escribiendo /texto . Por ejemplo: /pod-networ...

TLS Bootstrapping en Kubernetes: Qué es, cómo funciona y por qué importa en el examen CKA

                                                       Uno de los conceptos que a menudo pasan desapercibidos en la administración de Kubernetes —pero que resultan clave tanto en entornos reales como en el examen CKA— es el TLS Bootstrapping . En este artículo entenderás qué es, cómo funciona, qué lo diferencia del kubeadm join tradicional y cómo puede aparecer en el examen. ¿Qué es TLS Bootstrapping? TLS Bootstrapping es el proceso por el cual el kubelet , el agente que corre en cada nodo, obtiene automáticamente un certificado TLS firmado por el clúster para autenticarse con el kube-apiserver . En otras palabras: permite que un nuevo nodo se una de forma segura al clúster sin necesidad de copiar manualmente los certificados. ¿Por qué es necesario? Cuando añades un nuevo nodo worker, su kubelet necesita autentic...