Si usó Kubernetes (K8) y trató de comprender algunos de sus mecanismos internos, ya sea en el trabajo o en un curso de capacitación, debe haber aprendido algo sobre interfaz de red de contenedores (CNI). Este artículo desmitifica el significado y el papel de la CNI.
Tabla de Contenidos
¿Qué es CNI?
El complemento CNI es responsable de conectar la interfaz de red al espacio de nombres de la red del contenedor (p. ej., un lado de un par de ethernet virtual (veth)) y realizar los cambios necesarios en el host (p. ej., conectar el otro lado de la veth a un puente ). Luego asigna una dirección IP a la interfaz y configura rutas consistentes con la sección de administración de direcciones IP al invocar el complemento de administración de direcciones IP (IPAM) apropiado.
[ You might also like: A sysadmin’s guide to basic Kubernetes components ]
¿Dónde encaja el CNI?
CNI es utilizado por tiempos de ejecución de contenedores como Kubernetes (que se muestra a continuación), así como Podman, CRI-O, Mesos, etc.
Los contenedores/vainas inicialmente no tienen interfaz de red.El tiempo de ejecución del contenedor invoca el complemento CNI con un verbo, p. añadir, Supr, ChequeEsperar. ADD crea una nueva interfaz de red para el contenedor y los detalles de qué agregar se pasan a CNI en una carga JSON.
¿Qué incluye el programa CNI?
- Especificación CNI: documenta el formato de configuración cuando se invoca un complemento CNI, cómo debe manejar esta información y qué resultados debe devolver el complemento.
- Un conjunto de complementos de referencia y de ejemplo: estos pueden ayudarlo a comprender cómo escribir nuevos complementos o cómo funcionan los complementos existentes. No tienen nada que ver con la nube. Estos son complementos con funcionalidad limitada y solo tienen fines informativos.
Especificación CNI
- Especificación neutral del proveedor
- Utilizado por Mesos, CloudFoundry, Podman, CRI-O
- Definir el flujo de ejecución básico y el formato de configuración
- trate de mantenerlo simple y compatible con versiones anteriores
Proceso de ejecución del complemento CNI
- Cuando el tiempo de ejecución del contenedor espera realizar operaciones de red en el contenedor, (como el kubelet en K8s) invoca el complemento CNI con los comandos necesarios.
- El tiempo de ejecución del contenedor también proporciona configuración de red relevante y datos específicos del contenedor para complementos.
- El complemento CNI realiza la acción deseada e informa los resultados.
CNI es llamado dos veces por K8s (kubelet) para configurar Bucle invertido y eth0 Interfaz de pod.
notas: El complemento CNI es ejecutable y admite los comandos ADD, DEL, CHECK, VERSION como se describe anteriormente.
¿Por qué hay múltiples complementos?
CNI proporciona especificaciones para varios complementos. Como saben, la web es un tema complejo con diversas necesidades de los usuarios. Por lo tanto, existen múltiples complementos de CNI que hacen cosas diferentes para cumplir con varios casos de uso.
[ Learn the basics of using Kubernetes in this free cheat sheet. ]
envolver
Hay muchos aspectos en la orquestación y gestión de contenedores en Kubernetes. Acaba de aprender un poco sobre el uso de CNI para redes en Kubernetes.Para más información, ver página del proyecto CNI en GitHub.