Introducción a las redes de Kubernetes

Completado

Nodos

A menudo es posible ver que se hace referencia a Kubernetes con el término clúster. Desde una perspectiva general, los clústeres son un grupo de equipos que trabajan de forma conjunta y comparten recursos con el fin de ayudar a mejorar el rendimiento y la disponibilidad. Si se produce un error en los equipos del clúster, los servicios que se ejecutan en el clúster pueden seguir ejecutándose en los equipos que siguen funcionando.

En Microsoft Azure, esos equipos se conocen como máquinas virtuales (VM). En Kubernetes, esas máquinas virtuales se conocen como nodos.

Los nodos necesitan conectividad de red para poder comunicarse entre sí y para enrutar el tráfico de red de forma eficaz. Los nodos también se deben comunicar con el plano de control de Kubernetes, que proporciona los servicios principales de Kubernetes y la orquestación de las cargas de trabajo de aplicaciones, para que puedan ejecutar los recursos de carga de trabajo de la aplicación.

Diagram that shows the Kubernetes cluster nodes and control plane.

Pods

En Kubernetes, los recursos de carga de trabajo de la aplicación incluyen pods, implementaciones y conjuntos. Los pods son la unidad implementable más pequeña de un clúster de Kubernetes. Se distribuyen entre los nodos de una forma que proporciona el mejor uso de los recursos de memoria y procesador disponibles en los nodos. Los pods suelen representar una sola instancia o un subcomponente de la aplicación. Un pod podría ejecutar un componente de carro de la compra que administra los artículos en el carro de un cliente o un componente de envío que controla el procesamiento de los pedidos completados.

Puede ejecutar varias copias, o réplicas, del mismo pod. Las réplicas distribuyen varios pods entre nodos para proporcionar alta disponibilidad. Con varias réplicas, la aplicación puede seguir funcionando si se produce un error en un componente que se ejecuta en un pod.

Diagram that shows multiple pod replicas running across several Kubernetes cluster nodes.

Con las características de escalado de Kubernetes, puede agregar o quitar pods en respuesta al nivel de demanda del clúster. Las capacidades de recuperación automática de Kubernetes pueden reemplazar cualquier pod con errores y la compatibilidad integrada con actualizaciones graduales automatiza la implementación de nuevas versiones de una aplicación sin tiempo de inactividad.

A los pods se les asigna una nueva dirección IP durante su implementación inicial. Esta dirección IP se usa para toda la comunicación de red con el pod. Hay muchos escenarios en los que se asigna una nueva dirección IP a un pod. Cuando la demanda del clúster es alta y se produce el escalado, se implementan nuevos pods. Al actualizar una aplicación, se implementan nuevos pods para reemplazar los antiguos. Si se produce un error en un pod, un nuevo pod lo reemplaza automáticamente. Todos estos escenarios dan lugar a nuevas direcciones IP de pod.

Si las direcciones IP de pod cambian constantemente, ¿cómo sabe Kubernetes dónde enviar el tráfico de red para comunicarse con la aplicación? La respuesta son los servicios.

Servicios

Un servicio de Kubernetes se sitúa delante de un grupo de pods y proporciona una dirección IP estática. Cuando el tráfico llega a un servicio, se distribuye de forma equilibrada en un conjunto de pods de back-end. El servicio realiza el seguimiento de los cambios en las direcciones IP de los pods para asegurarse de que el tráfico de red se envía a los pods correctos.

Diagram that shows multiple pod replicas being served network traffic via a Kubernetes service.