Está en la página 1de 4

Marc López

Práctica Kubernetes

Propósito

Kubernetes es como el director de orquesta en un concierto de software. Es una


herramienta que nos ayuda a manejar una serie de contenedores (piensa en los
contenedores como instrumentos de una orquesta) para que trabajen juntos de manera
armoniosa. En el mundo de la informática, estos contenedores son paquetes que contienen
todo lo necesario para que un software funcione, lo que significa que cada contenedor
puede llevar su propia aplicación, librerías, dependencias, etc.

Ahora bien, a medida que tu proyecto crece y la cantidad de contenedores aumenta, la


situación puede ponerse caótica rápidamente. Aquí es donde entra en juego Kubernetes. Su
papel principal es administrar, coordinar y organizar estos contenedores, asegurándose de
que todo el sistema funcione sin problemas.

Kubernetes es perfecto para agrupar los contenedores en algo llamado "Pods". Un Pod es
como una carpeta en la que puedes almacenar contenedores relacionados para que puedan
comunicarse entre sí de manera más fácil y compartir recursos.

Otra característica super útil de Kubernetes es su habilidad para escalar automáticamente


tus aplicaciones. Esto significa que puede aumentar o disminuir la cantidad de contenedores
que se están ejecutando dependiendo de cuánta demanda hay en un momento dado.

Kubernetes también puede autocurarse. Si un contenedor falla o un nodo (la máquina física
o virtual en la que se ejecutan los contenedores) muere, Kubernetes se encarga de
solucionarlo, reiniciando o reemplazando lo que sea necesario para mantener todo en
marcha.

En definitiva, Kubernetes es como el cerebro detrás de un sistema de contenedores,


asegurándose de que todo funcione sin problemas, se adapte a las necesidades
cambiantes y se recupere de los problemas que puedan surgir. Es una herramienta esencial
para cualquier persona que trabaje con aplicaciones basadas en contenedores.

Arquitectura

La orquesta de Kubernetes está compuesta por varios músicos, que en este caso, son sus
componentes. Esta orquesta está dividida en dos secciones principales: los maestros (o el
clúster) y los músicos (o los nodos).

El clúster, el director de orquesta, está al frente y dirige todo. El clúster incluye varios
componentes:

- El servidor de la API es la partitura de la orquesta. Es el punto de contacto para


todas las instrucciones y comandos que se dan a Kubernetes.
Marc López

- El planificador es el que asigna las partes a cada músico, en otras palabras, decide
dónde se ejecutan los contenedores basándose en los recursos disponibles y otras
limitaciones.

- El controlador de controladores es como el coordinador de sección, se encarga de


que cada grupo de instrumentos (como los Pods o los servicios) esté funcionando
como debería.

- Etcd es el archivo de la orquesta. Almacena todos los datos del estado actual del
clúster, manteniendo un registro de cuántos Pods hay, dónde se están ejecutando,
etc.

Los nodos son los músicos de la orquesta, cada uno tiene su papel que desempeñar y cada
uno tiene varios componentes:

- El kubelet es como el músico individual, garantizando que los contenedores en su


Pod estén funcionando correctamente.

- El proxy del servicio kube es como el ajustador de tono, que dirige las solicitudes de
red a los Pods correctos dentro de un nodo.

- Y por último, el tiempo de ejecución del contenedor es el instrumento en sí mismo.


Es el motor que impulsa los contenedores, y puede ser Docker, containerd, etc.

Así que, en resumen, Kubernetes es como una orquesta bien afinada, con su director (el
clúster) y los músicos (los nodos). Cada parte de esta orquesta tiene un papel y trabaja en
conjunto para garantizar que las aplicaciones en contenedores se ejecuten de manera
eficiente y sin problemas.

Elementos Individuale

Pods: Los Pods son la unidad más pequeña y fundamental en Kubernetes. Son como los
miembros individuales de la orquesta, cada uno con su instrumento (contenedor)
especializado. Un Pod puede contener uno o más contenedores que están estrechamente
relacionados y necesitan compartir recursos.

Servicios: Un servicio es una abstracción que define un conjunto lógico de Pods y una
política para acceder a ellos. Son como los solistas o secciones de la orquesta,
proporcionando un punto de acceso único a un conjunto de Pods para que el público (otros
servicios o usuarios) pueda interactuar con ellos.

Volumen: Los volúmenes son componentes que proporcionan almacenamiento a los Pods.
Son como las partituras de los miembros de la orquesta, que guardan la información
necesaria para que puedan realizar su trabajo correctamente.
Marc López

Espacio de nombres (Namespace): Los espacios de nombres son una forma de dividir los
recursos del clúster entre los usuarios. Son como las diferentes secciones de la orquesta,
permitiendo la separación y organización de los Pods y otros recursos.

Ingress: Los Ingress controlan el acceso externo a los servicios dentro del clúster. Son
como la taquilla en un concierto, gestionando quién puede acceder a los servicios (o la
música) dentro de la orquesta.

Controladores: Los controladores son los que se encargan de mantener el estado deseado
del clúster. Son como los ayudantes del director de orquesta, asegurándose de que cada
parte de la orquesta esté funcionando como debería.

ConfigMaps y Secrets: Los ConfigMaps y Secrets permiten administrar la configuración y


los secretos de la aplicación de forma separada del código de la aplicación. Son como los
ajustes en los instrumentos, permitiendo afinar el sonido sin tener que alterar el instrumento
en sí mismo.

Ficheros

Kubernetes utiliza una serie de ficheros para definir y configurar las aplicaciones y sus
componentes. En nuestro escenario de orquesta, estos ficheros son las partituras que cada
miembro necesita para tocar su parte. Cada uno de estos ficheros, normalmente escritos en
formato YAML o JSON, tiene un propósito específico.

Ficheros de manifiesto de Pod: Estos son los ficheros más básicos que definen un Pod en
Kubernetes. Describen los contenedores que se deben ejecutar, los volúmenes que se
deben montar, etc. En términos de orquesta, este sería el repertorio de un miembro en
particular.

Ficheros de manifiesto de servicio: Los servicios en Kubernetes se definen utilizando


estos ficheros. Un servicio podría ser una interfaz a un conjunto de Pods, proporcionando
una dirección IP y un puerto estables para que otros se conecten. Esto sería como el
programa de conciertos que describe los solos y los destacados.

Ficheros de manifiesto de Deployment: Estos ficheros definen cómo debería ser


desplegada una aplicación, incluyendo cuántas réplicas de un Pod deberían ejecutarse,
cómo se deben actualizar las aplicaciones, etc. En la orquesta, esto sería el plan de cómo
se va a ejecutar el concierto.

Ficheros de manifiesto de ConfigMap/Secret: Los ConfigMaps y Secrets se utilizan para


separar la configuración y los secretos de la aplicación del código de la aplicación. Los
ConfigMaps son como los ajustes generales de los instrumentos, mientras que los Secrets
son como las técnicas de interpretación especiales que cada miembro de la orquesta
guarda celosamente.
Marc López

Ficheros de manifiesto de Ingress: Los Ingress se definen a través de estos ficheros. Un


Ingress gestiona el acceso externo a los servicios dentro del clúster. En la orquesta, esto
sería como la guía del director para permitir la entrada al público.

Ficheros de manifiesto de volumen: Los volúmenes se definen a través de estos ficheros.


Los volúmenes proporcionan almacenamiento persistente a los Pods. En la orquesta, esto
sería como la biblioteca de partituras de cada músico.

Ficheros de manifiesto de Namespace: Estos ficheros definen un Namespace, lo que


permite la separación y organización de los recursos dentro del clúster. En términos de
orquesta, esto sería como los diferentes grupos o secciones de la orquesta.

Procedimiento para hacer una aplicación en Kubernetes

Implementar una aplicación en Kubernetes es como organizar una actuación de orquesta.


Necesitas definir los músicos (Pods), su música (la aplicación y su configuración) y cómo
deberían interactuar entre sí. Aquí están los pasos que debes seguir:

1- Crea los ficheros de manifiesto: A continuación, necesitas definir cómo debe funcionar
tu aplicación en Kubernetes. Esto se hace a través de los ficheros de manifiesto de
Kubernetes. Estos ficheros son como las partituras para los músicos de tu orquesta,
diciéndoles qué tocar y cómo hacerlo. Los manifiestos definen qué contenedores deben
ejecutarse, cuántas copias de ellos deberían existir, cómo se deben exponer al mundo
exterior, entre otros aspectos.

2 - Implementa los manifiestos en tu clúster de Kubernetes: Una vez que tienes tus
manifiestos listos, necesitas enviarlos a Kubernetes para que pueda empezar a orquestar tu
aplicación. Esto es como entregar las partituras a los músicos y al director de la orquesta
para que puedan empezar a tocar. Utilizarías el comando kubectl apply para hacer esto,
proporcionando el nombre del fichero de manifiesto.

3 - Verifica tu despliegue: Después de implementar tu aplicación, quieres asegurarte de


que todo se está ejecutando como se supone. Puedes usar varios comandos de kubectl,
como kubectl get pods o kubectl describe pod, para verificar el estado de tus Pods y otros
recursos. Es como chequear que los músicos estén tocando correctamente y el sonido sea
el esperado.

4 - Monitorea y mantiene tu aplicación: Una vez que tu aplicación esté en


funcionamiento, tendrás que mantenerla. Esto podría implicar la escalabilidad de tu
aplicación para manejar más tráfico, o la actualización de tu aplicación a una nueva versión.
Kubernetes tiene muchas características que te ayudan con esto, como la escalabilidad
automática y las actualizaciones continuas. Es como afinar los instrumentos y practicar para
futuros conciertos.

Poner una aplicación en funcionamiento en Kubernetes puede parecer un desafío al


principio, pero una vez que entiendes los fundamentos, se convierte en un proceso muy
potente y flexible para ejecutar tus aplicaciones.

También podría gustarte