franela es una forma sencilla y fácil de configurar un tejido de red de capa 3 diseñado para Kubernetes.
franela ejecuta un pequeño agente binario único llamado flanneld
en cada host y es responsable de asignar una concesión de subred a cada host a partir de un espacio de direcciones más grande y preconfigurado. franela utiliza la API de Kubernetes o etcd directamente para almacenar la configuración de la red, las subredes asignadas y cualquier dato auxiliar (como la IP pública del host). Los paquetes se reenvían mediante uno de varios mecanismos de backend, incluido VXLAN y varias integraciones en la nube.
Plataformas como Kubernetes suponen que cada contenedor (pod) tiene una IP única y enrutable dentro del clúster. La ventaja de este modelo es que elimina las complejidades de mapeo de puertos que surgen al compartir una única IP de host.
franela es responsable de proporcionar una red IPv4 de capa 3 entre múltiples nodos en un clúster. franela no controla cómo se conectan los contenedores al host, sólo cómo se transporta el tráfico entre los hosts. Sin embargo, flannel proporciona un complemento CNI para Kubernetes y orientación sobre la integración con Docker.
franela se centra en el networking. Para la política de red, se pueden utilizar otros proyectos como Calico.
La forma más sencilla de implementar franela con Kubernetes es utilizar una de varias herramientas y distribuciones de implementación que conectan clústeres con franela de forma predeterminada. Por ejemplo, K3s configura franela en los clústeres de Kubernetes que crea utilizando el instalador de K3s de código abierto para impulsar el proceso de configuración.
Aunque no es obligatorio, se recomienda que flannel utilice la API de Kubernetes como almacén de respaldo, lo que evita la necesidad de implementar un clúster etcd
discreto para flannel
. Este modo flannel
se conoce como administrador de subred de Kube .
La franela se puede agregar a cualquier clúster de Kubernetes existente, aunque es más sencillo agregar flannel
antes de que se inicien los pods que utilizan la red de pods.
Para Kubernetes v1.17+
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
Si utiliza podCIDR
personalizado (no 10.244.0.0/16
), primero debe descargar el manifiesto anterior y modificar la red para que coincida con la suya.
# Needs manual creation of namespace to avoid helm error
kubectl create ns kube-flannel
kubectl label --overwrite ns kube-flannel pod-security.kubernetes.io/enforce=privileged
helm repo add flannel https://flannel-io.github.io/flannel/
helm install flannel --set podCidr= " 10.244.0.0/16 " --namespace kube-flannel flannel/flannel
Consulte Kubernetes para obtener más detalles.
En caso de que se configure un firewall, asegúrese de habilitar el puerto correcto utilizado por el backend configurado.
franela utiliza portmap
como complemento de red CNI de forma predeterminada; Al implementar franela, asegúrese de que los complementos de red CNI estén instalados en /opt/cni/bin
Los archivos binarios más recientes se pueden descargar con los siguientes comandos:
ARCH= $( uname -m )
case $ARCH in
armv7 * ) ARCH= " arm " ;;
aarch64) ARCH= " arm64 " ;;
x86_64) ARCH= " amd64 " ;;
esac
mkdir -p /opt/cni/bin
curl -O -L https://github.com/containernetworking/plugins/releases/download/v1.6.0/cni-plugins-linux- $ARCH -v1.6.0.tgz
tar -C /opt/cni/bin -xzf cni-plugins-linux- $ARCH -v1.6.0.tgz
franela requiere que el módulo br_netfilter se inicie y desde la versión 1.30 kubeadm no verifica si el módulo está instalado y franela no se iniciará correctamente en caso de que falte el módulo.
La franela también se usa ampliamente fuera de Kubernetes. Cuando se implementa fuera de Kubernetes, etcd siempre se utiliza como almacén de datos. Para obtener más detalles sobre la integración de franela con Docker, consulte Ejecución.
La comunidad de mantenedores de franela organiza una reunión cada dos jueves a las 8:30 a. m. PST. Esta reunión se utiliza para discutir problemas, abrir solicitudes de extracción y otros temas relacionados con franela en caso de que surja la necesidad.
La agenda de la reunión y el enlace de Teams se pueden encontrar aquí: Agenda de la reunión de la comunidad de franela
Consulte CONTRIBUCIÓN para obtener detalles sobre cómo enviar parches y el flujo de trabajo de contribución.
Consulte informar errores para obtener detalles sobre cómo informar cualquier problema.
franela está bajo la licencia Apache 2.0. Consulte el archivo de LICENCIA para obtener más detalles.