Una breve descripción general de la interfaz de red de contenedores (CNI) en Kubernetes

Si ha trabajado con Kubernetes (K8) y trató de aprender algunos de sus mecanismos internos, ya sea en el trabajo o como parte de un curso de capacitación, debe haber aprendido un poco sobre Interfaz de red de contenedores (CNI). Este artículo desmitifica lo que CNI significa y hace.

Índice

    ¿Qué es el 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 virtual de ethernet (veth)) y realizar los cambios necesarios en el host (p. ej., vincular 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 Administración de direcciones IP llamando al complemento de Administración de direcciones IP (IPAM) apropiado.

    ¿Cuál es el papel del CNI?

    CNI es utilizado por entornos de tiempo de ejecución de contenedores, como Kubernetes (como se muestra a continuación), así como Podman, CRI-O, Mesos y otros.

    El contenedor/pod inicialmente no tiene una interfaz de red. El tiempo de ejecución del contenedor llama al complemento CNI con verbos como PARA AGREGAR, DEL, CHEQUE, etc ADD crea una nueva interfaz de red para el contenedor y los detalles de lo que se debe agregar se pasan a CNI a través de la carga JSON.

    ¿En qué consiste el proyecto CNI?

    1. Especificaciones de CNI: documenta el formato de configuración cuando invoca el complemento CNI, qué debe hacer con esta información y qué salida debe devolver este complemento.
    2. Conjunto de complementos y ejemplos de referencia: estos pueden ayudarlo a comprender cómo escribir un nuevo complemento o cómo pueden funcionar los complementos existentes. Son independientes de la nube. Estos son complementos de funciones limitadas y solo como referencia.

    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
    • Tratando de mantener las cosas simples y compatibles con versiones anteriores

    Flujo de ejecución de complementos CNI

    1. Cuando el tiempo de ejecución del contenedor espera realizar operaciones de red en un contenedor, (como el kubelet en el caso de K8) llama al complemento CNI con el comando deseado.
    2. El entorno de tiempo de ejecución del contenedor también proporciona el complemento con la configuración de red asociada y los datos específicos del contenedor.
    3. El complemento CNI realiza las operaciones requeridas e informa el resultado.

    El CNI es llamado dos veces por los K8 (kubelet) para establecer bucle y eth0 interfaces para un pod.

    Notar: Los complementos CNI son ejecutables y admiten los comandos ADD, DEL, CHECK, VERSION, como se muestra arriba.

    ¿Por qué hay varios complementos?

    CNI proporciona 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, hay varios complementos de CNI que hacen las cosas de manera diferente para satisfacer varios casos de uso.

    Conclusión

    Hay muchos aspectos de orquestar y administrar contenedores con Kubernetes. Acaba de aprender un poco más sobre el uso de CNI para redes dentro de Kubernetes. Para obtener más información, consulte el página del proyecto CNI en GitHub.

    Artículos de interés

    Subir