Entradas

Gestión Eficiente de Recursos en Kubernetes. Bloque 2. Tema 2.3 del CKA.

Imagen
    Kubernetes ofrece un ecosistema completo para gestionar la escalabilidad y optimización de recursos en aplicaciones contenedorizadas. Desde el escalado automático con HPA, VPA y Cluster Autoscaler, hasta el control de recursos con LimitRange , ResourceQuota y PodDisruptionBudget , la plataforma asegura que las aplicaciones puedan adaptarse dinámicamente a los cambios de carga y uso de recursos. El uso eficiente de estas herramientas permite a los administradores de clústeres optimizar el rendimiento , reducir costos y garantizar la disponibilidad de las aplicaciones, tanto en entornos de producción como de desarrollo. 1. LimitRange El recurso LimitRange se utiliza para establecer límites mínimos y máximos de CPU y memoria que los contenedores pueden solicitar en un namespace. Esto es útil para prevenir que ciertas cargas de trabajo consuman más recursos de los necesarios o sobrecarguen el clúster. Ejemplo de LimitRange : yaml: apiVersion: v1 kind: LimitRange metadata:

Uso Conjunto de Kustomize y Helm en Kubernetes

Imagen
     En Kubernetes, tanto Helm como Kustomize son herramientas poderosas que facilitan la gestión de despliegues y configuraciones. Aunque ambas herramientas se suelen utilizar de forma independiente, también es posible aprovechar las capacidades de personalización de  Kustomize  junto con la funcionalidad de empaquetado y despliegue de  Helm . En este artículo, vamos a explorar cómo utilizar estas dos herramientas juntas para gestionar configuraciones complejas de Kubernetes de manera efectiva. ¿Por qué usar  Kustomize  y  Helm  juntos? Helm es excelente para la gestión de charts y el despliegue de aplicaciones empaquetadas. Sin embargo, cuando necesitamos personalizar estos charts para diferentes entornos o aplicar configuraciones específicas a nuestros manifiestos sin modificar los charts originales,  Kustomize  es la herramienta ideal.  Kustomize  nos permite superponer configuraciones adicionales o modificar los manifiestos generados por  Helm , lo que proporciona un enfoque má

Kustomize en Kubernetes: Gestión Flexible de Configuraciones. Bloque 2. Tema 2.7 del CKA.

Imagen
Kustomize es una herramienta que permite gestionar configuraciones de Kubernetes sin modificar los archivos base directamente, usando un enfoque basado en capas y sobrecargas. Esto es especialmente útil en situaciones donde quieres mantener una base de configuración común y, al mismo tiempo, personalizar ciertos aspectos según las necesidades de distintos entornos o clientes. En este artículo, vamos a ampliar el concepto de Kustomize y explicar cómo funciona a través de un ejemplo práctico. ¿Qué es Kustomize y por qué es importante? Kustomize es una herramienta declarativa de Kubernetes que permite realizar personalizaciones de configuraciones sin necesidad de modificar los manifiestos YAML originales (los archivos base). Este enfoque es especialmente valioso en entornos donde las mismas aplicaciones deben desplegarse en diferentes configuraciones, como desarrollo, pruebas y producción. Kustomize introduce el concepto de overlays (sobrecargas), que son personalizaciones o variacione

Dominando las Primitivas de Kubernetes: La Clave para Aplicaciones Autónomas. Bloque 2. Tema 2.5 del CKA.

Imagen
Kubernetes se ha convertido en el estándar para la orquestación de contenedores, no solo por su capacidad de ejecutar aplicaciones en clústeres distribuidos, sino también por los mecanismos avanzados que ofrece para garantizar que estas aplicaciones sean autosuficientes , es decir, capaces de recuperarse automáticamente de fallos y de escalar según sea necesario. En este artículo, profundizaremos en las primitivas clave que Kubernetes utiliza para gestionar estas aplicaciones autosuficientes y cómo se configuran para mantener una alta disponibilidad y rendimiento en tus cargas de trabajo. Definición:  Una primitiva es un componente básico o unidad fundamental que se utiliza para construir y gestionar aplicaciones dentro del clúster. Son las piezas esenciales sobre las que se estructura y organiza todo el sistema, como los Pods, Service, ReplicaSet, Deployment, StatefulSet, DaemonSet, Jobs y Cronjobs. Estas primitivas son los recursos que Kubernetes pone a disposición para gestionar

Almacenando Secrets en Kubernetes. Explicación detallada y buenas prácticas.

Imagen
Crear y gestionar Secrets en Kubernetes es un aspecto fundamental cuando trabajamos con información sensible, como credenciales o claves de API. A continuación, explico cómo se puede crear un Secret y algunas prácticas importantes al respecto. Ejemplo práctico En este ejercicio práctico, vamos a trabajar con un objeto Secret en Kubernetes: Creación del Secret a partir de un manifiesto YAML : Lo primero que haremos será crear un Secret utilizando un manifiesto YAML. Este procedimiento es similar a lo que hemos hecho anteriormente para otros objetos como ConfigMaps. En este paso, también verificaremos el estado del Secret y cómo recuperarlo de Kubernetes. Esta verificación es útil si queremos revisar el estado actual del objeto para recrearlo o modificarlo más adelante. Durante este proceso, también decodificamos el payload que está codificado en base64, para ver los valores clave que almacena. Comando de creación de un Secret: kubectl create secret generic mysecret --from-literal=use

Gestión de Cargas de Trabajo en Kubernetes. Bloque 2. Tema 2.1 del CKA.

Imagen
 Cuando hablamos de cargas de trabajo (Workloads) en Kubernetes, no solo nos referimos a aplicaciones ejecutándose en contenedores. Nos referimos a un ecosistema completo que gestiona de manera automatizada el ciclo de vida de esas aplicaciones, desde su creación, escalado, hasta su recuperación ante fallos. Kubernetes se encarga de que cada carga de trabajo sea gestionada de forma eficiente, asegurando que los procesos críticos como el escalado, la actualización continua y la tolerancia a fallos se realicen sin intervención manual constante.  Kubernetes no solo ejecuta contenedores, sino que también proporciona una serie de herramientas avanzadas que permiten gestionar aplicaciones de todo tipo. Estas aplicaciones pueden escalar sin perder datos, ser robustas ante fallos y operar en entornos distribuidos sin afectar su rendimiento o disponibilidad. Ya sea que se trate de aplicaciones sin estado (stateless) que pueden escalar fácilmente, o aplicaciones con estado (stateful) que requ

ConfigMaps y Secrets en Kubernetes: Gestión de Configuraciones y Datos Sensibles. Bloque 2. Tema 2.4 del CKA.

Imagen
En Kubernetes, es crucial manejar tanto la configuración de las aplicaciones como los datos sensibles de manera eficiente y segura. Para ello, Kubernetes nos proporciona dos tipos de recursos: ConfigMaps y Secrets . Ambos recursos permiten desacoplar la configuración y los datos sensibles de la lógica de la aplicación, lo que facilita su gestión y mantenimiento en entornos dinámicos, como los clústeres de Kubernetes. A continuación, exploraremos cómo funcionan los ConfigMaps y los Secrets , cómo implementarlos y algunas prácticas recomendadas para su uso en Kubernetes. ConfigMaps en Kubernetes ¿Qué es un ConfigMap? Un ConfigMap es un recurso en Kubernetes diseñado para almacenar datos de configuración en forma de pares clave-valor . Estos datos pueden ser inyectados en los pods como variables de entorno o montados como archivos de configuración, permitiendo a los administradores cambiar la configuración de las aplicaciones sin modificar el código ni reconstruir las imágenes de los