Los manifiestos y Kubeadm. Bloque 1. Tema 1.3 del CKA.

Manifiestos:

 Los manifiestos en Kubernetes son la piedra angular para definir y gestionar todos los recursos dentro de tu clúster. Funcionan como "recetas" que indican a Kubernetes cómo desplegar, configurar, escalar y gestionar tus aplicaciones de manera declarativa.

¿Qué son los manifiestos en Kubernetes?

Los manifiestos son archivos de configuración que describen el estado deseado de los recursos en tu clúster de Kubernetes. Funciones:

¿Qué tipos de recursos se definen en un manifiesto?

Prácticamente cualquier recurso de Kubernetes se puede describir en un manifiesto, desde los componentes básicos hasta los más avanzados. Algunos de los recursos más comunes son:

  • Pods: La unidad más básica en Kubernetes. Un pod representa uno o varios contenedores que comparten el mismo contexto de red y almacenamiento.

  • Deployments: Gestionan la creación y el escalado de múltiples réplicas de un pod, asegurando su disponibilidad y permitiendo actualizaciones sin tiempo de inactividad.

  • Services: Exponen un conjunto de pods a la red, permitiendo que otras aplicaciones se conecten a ellos de manera estable, independientemente de los cambios en las direcciones IP de los pods.

  • StatefulSets: Son similares a los deployments, pero se utilizan cuando se necesita mantener una identidad estable para los pods, como en aplicaciones con almacenamiento persistente.

  • DaemonSets: Aseguran que todos o un subconjunto específico de nodos ejecute una copia de un pod, ideal para tareas como monitoreo o almacenamiento en disco local.

  • Jobs: Ejecutan una tarea una única vez y luego se eliminan, adecuados para tareas por lotes.

  • CronJobs: Son Jobs que se ejecutan de forma periódica, según un horario predefinido, similar a cron en sistemas Unix.

  • ConfigMaps: Almacenan configuraciones no sensibles en pares clave-valor que las aplicaciones pueden usar en tiempo de ejecución.

  • Secrets: Almacenan información sensible, como credenciales o claves de acceso, de forma segura y encriptada.

¿Cómo se utilizan los manifiestos?

  1. Creación de recursos: Para aplicar un manifiesto en el clúster y crear o actualizar un recurso, se utiliza el comando kubectl apply -f <archivo>. Kubernetes leerá el manifiesto y hará los cambios necesarios.

  2. Actualización de recursos: Cuando necesitas modificar un recurso, simplemente actualizas el manifiesto y vuelves a aplicarlo con kubectl apply. Kubernetes gestiona las actualizaciones de manera gradual, minimizando el impacto en la disponibilidad.

  3. Eliminación de recursos: Puedes eliminar un recurso utilizando kubectl delete -f <archivo>, o eliminar directamente el manifiesto de tu sistema de control de versiones si lo gestionas de esta manera

KUBEADM:

La herramienta de línea de comandos kubeadm se utiliza para instalar y configurar un nuevo clúster de Kubernetes, asegurando que cada clúster esté correctamente configurado para cumplir con las pruebas de conformidad de Kubernetes. Esta herramienta facilita la instalación de los componentes del Control Plane, la configuración de una red de pods, y otras tareas clave para la administración del clúster.

kubeadm realiza una serie de comprobaciones previas y verifica el entorno para garantizar que el clúster sea viable y cumpla con los requisitos mínimos. De forma predeterminada, se generan automáticamente los certificados TLS necesarios, aunque también se puede optar por utilizar certificados personalizados.

Ejemplo de Uso de kubeadm.

1.    Inicializar un nuevo clúster:

Para configurar un nuevo clúster, usa el comando kubeadm init. Esto creará los componentes del plano de control en el nodo maestro:

$ kubeadm init

Una vez completado, kubeadm te dará instrucciones sobre cómo configurar kubectl para administrar el clúster y cómo unir nodos de trabajo adicionales.

2.    Unir un nodo al clúster existente:

Después de inicializar el clúster, puedes unir nodos adicionales utilizando el comando kubeadm join en los nuevos nodos:

$ kubeadm join <IP-del-maestro>:<puerto> --token <token> --discovery-token-ca-cert-hash sha256:<hash>

Otras funcionalidades de kubeadm:

  • Actualizaciones de clúster: kubeadm no solo sirve para crear clústeres, sino también para actualizarlos a nuevas versiones de Kubernetes. Esto permite mantener tu clúster siempre con las últimas características y correcciones de seguridad.
  • Gestión de nodos: Aunque su principal función es configurar el nodo maestro, kubeadm también puede utilizarse para agregar nuevos nodos a un clúster existente. Esto es útil para escalar tu infraestructura y distribuir la carga de trabajo.
  • Personalización avanzada: Si bien kubeadm ofrece una configuración predeterminada, también permite un alto grado de personalización a través de archivos de configuración. Esto te da control sobre aspectos como la red, el almacenamiento y la autenticación.
  • Integración con otras herramientas: kubeadm puede integrarse con otras herramientas de gestión de Kubernetes, como kubectl, para realizar tareas más avanzadas.

  El  caso práctico para instalación de clúster de Kubernetes se añadirán en próximos artículos. 

  

Comentarios