Si ha trabajado con Kubernetes (K8s) e intentó aprender algo de su funcionamiento interno, ya sea en el trabajo o en un curso de capacitación, debe haber aprendido un poco sobre Container Network Interface (CNI). Este artículo desmitifica lo que CNI significa y hace.
¿Qué es CNI?
Un complemento CNI es responsable de insertar una interfaz de red en el espacio de nombres de la red del contenedor (p. ej., un extremo de un par de ethernet virtual (veth)) y realizar los cambios necesarios en el host (p. ej., conectar el otro extremo del veth a un puente ). Luego asigna una dirección IP a la interfaz y configura las rutas de acuerdo con la sección de Administración de direcciones IP al invocar el complemento de Administración de direcciones IP (IPAM) apropiado.
[ También te puede interesar: una guía para administradores de sistemas sobre los componentes básicos de Kubernetes]
¿Dónde encaja CNI?
Los tiempos de ejecución de contenedores utilizan CNI, como Kubernetes (como se muestra a continuación), así como Podman, CRI-O, Mesos y otros.
El contenedor/pod inicialmente no tiene interfaz de red. El tiempo de ejecución del contenedor llama al complemento CNI con verbos como ADD , SUPR , COMPROBAR , etc. ADD crea una nueva interfaz de red para el contenedor y los detalles de lo que se agregará se pasan a CNI a través de la carga JSON.
¿En qué consiste el proyecto CNI?
- Especificaciones de CNI:documenta cuál es el formato de configuración cuando llama al complemento CNI, qué debe hacer con esa información y el resultado que debe devolver el complemento.
- Conjunto de complementos de referencia y de ejemplo:pueden ayudarlo a comprender cómo escribir un complemento nuevo o cómo podrían funcionar los complementos existentes. Son independientes de la nube. Estos son complementos de funcionalidad limitada y solo como referencia.
Las especificaciones CNI
- Especificaciones independientes del proveedor
- Utilizado por Mesos, CloudFoundry, Podman, CRI-O
- Define el flujo de ejecución básico y el formato de configuración
- Intente mantener las cosas simples y compatibles con versiones anteriores
Flujo de ejecución de los complementos CNI
- Cuando el tiempo de ejecución del contenedor espera realizar operaciones de red en un contenedor, (como el kubelet en el caso de K8s) llama al complemento CNI con el comando deseado.
- El tiempo de ejecución del contenedor también proporciona la configuración de red relacionada y los datos específicos del contenedor para el complemento.
- El complemento CNI realiza las operaciones requeridas e informa el resultado.
CNI es llamado dos veces por K8s (kubelet) para configurar loopback y eth0 interfaces para un pod.
Nota :Los complementos CNI son ejecutables y admiten los comandos ADD, DEL, CHECK, VERSION, como se mencionó anteriormente.
¿Por qué hay varios complementos?
CNI proporciona las especificaciones para varios complementos. Y como sabe, la creación de redes es un tema complejo con una variedad de necesidades de los usuarios. Por lo tanto, existen múltiples complementos CNI que hacen las cosas de manera diferente para satisfacer varios casos de uso.
[ Aprenda los aspectos básicos del uso de Kubernetes en esta hoja de trucos gratuita. ]
Resumir
Hay muchos aspectos de la orquestación y gestión de contenedores con Kubernetes. Acaba de aprender un poco sobre el uso de CNI para redes dentro de Kubernetes. Para obtener más información, consulte la página del proyecto CNI en GitHub.