Fundamentos Esenciales para prepararse, por libre, para la certificación CKA (Kubernetes). Bloque 1. Presentación.


 La certificación Certified Kubernetes Administrator (CKA) es una de las más valoradas en el mundo de la administración de contenedores. Antes de sumergirse en el curso de preparación para el CKA, es importante tener claros ciertos conceptos y componentes clave de Kubernetes. Este artículo cubre las generalidades que todo aspirante debe comprender para tener una base sólida al comenzar su formación.


1. ¿Qué es Kubernetes?

Kubernetes es una plataforma de código abierto diseñada para automatizar la implementación, el escalado y la operación de aplicaciones en contenedores. Facilita la gestión de aplicaciones distribuidas, asegurando que se ejecuten de manera eficiente y fiable en diferentes entornos.

El objetivo principal de Kubernetes es gestionar contenedores, que son unidades de software que incluyen el código y sus dependencias, proporcionando un entorno aislado para la ejecución de aplicaciones.


2. Arquitectura de Kubernetes

Kubernetes sigue una arquitectura de clúster en la que existen dos tipos de nodos principales: Master y Worker. Estos nodos trabajan en conjunto para orquestar y ejecutar contenedores.

Control Plane (Master Node)

El Master Node es el cerebro del clúster de Kubernetes, responsable de tomar decisiones y coordinar las operaciones. Los componentes más importantes del Master Node son:

Worker Nodes

Los Worker Nodes son las máquinas que ejecutan las cargas de trabajo. En ellos se encuentran los contenedores, y su misión es ejecutar las aplicaciones y mantener su estado deseado. Los componentes clave en los Worker Nodes son:

  • Kubelet: El kubelet es el agente que se comunica con el API Server del Master Node para recibir instrucciones sobre qué contenedores ejecutar. También supervisa el estado de los Pods en el nodo.
  • Kube-proxy: Es un proxy de red que gestiona la conectividad entre los Pods y otros servicios dentro y fuera del clúster.
  • Container Runtime: Es el software que se encarga de ejecutar los contenedores. Docker y containerd son ejemplos comunes de runtimes.

3. ¿Qué es un Pod?

Un Pod es la unidad más pequeña y básica en Kubernetes. Los Pods son envoltorios para uno o más contenedores y comparten el mismo espacio de red y almacenamiento. Aunque normalmente se ejecuta un único contenedor por Pod, en algunos casos pueden contener varios contenedores que necesiten estar muy cerca unos de otros, como un contenedor de servidor web y uno de registro.

Los Pods pueden tener uno o más volúmenes asociados y, además, están diseñados para ser efímeros, lo que significa que, si fallan, Kubernetes los reemplaza automáticamente.


4. Espacios de nombres (Namespaces)

Un Namespace es una forma de dividir los recursos de un clúster de Kubernetes en diferentes espacios lógicos. Esto es útil para organizar y gestionar múltiples proyectos o equipos dentro de un mismo clúster.


5. Servicios (Services)

Los Servicios permiten exponer un conjunto de Pods bajo una dirección IP fija. Kubernetes puede cambiar los Pods que están ejecutando tu aplicación por nuevas instancias, pero el servicio asegura que la IP a la que accedes para comunicarte con la aplicación siga siendo la misma.


6. Controladores y Objetos de Kubernetes

Además de los Pods y los Servicios, Kubernetes utiliza una serie de objetos para gestionar las aplicaciones y los recursos del clúster. Algunos de los más importantes son:

  • Deployments: Un Deployment asegura que siempre haya una cantidad deseada de Pods ejecutándose. Si uno falla, Kubernetes se encargará de reiniciarlo o crear uno nuevo.
  • ReplicaSets: Son utilizados por los Deployments para garantizar que un número específico de réplicas de un Pod estén ejecutándose.
  • DaemonSets: Aseguran que un Pod se ejecute en todos o en algunos nodos de un clúster.
  • StatefulSets: Proporcionan identidades persistentes a los Pods, útiles para aplicaciones con estado, como bases de datos.

7. Kubectl: La herramienta principal de Kubernetes

Kubectl es la herramienta de línea de comandos para interactuar con un clúster de Kubernetes. A través de kubectl, se pueden crear, modificar y eliminar recursos del clúster, así como monitorear su estado. Algunos comandos básicos que debes conocer son:

  • kubectl get pods: Lista los Pods en ejecución.
  • kubectl describe pod [nombre]: Muestra información detallada sobre un Pod específico.
  • kubectl apply -f [archivo]: Aplica una configuración de Kubernetes a partir de un archivo YAML.

8. Conclusión

Antes de comenzar el curso para la certificación CKA, es fundamental tener claro cómo funciona la arquitectura de Kubernetes, qué son los nodos, los Pods y los servicios, así como familiarizarse con la herramienta kubectl. Estos conceptos básicos te permitirán entender mejor los temas avanzados y asegurarte una base sólida para el éxito en el examen.

Comentarios

Entradas populares de este blog

Autenticación y Autorización (Kubernetes). Bloque 1. Tema 1.1 del CKA.

Instalación del Clúster de Pruebas/Aprendizaje. Bloque 1. Tema 1.5 del CKA.