Docker Swarms, vxlan kernel module

  • Hi,

    I'm using Libreelec 9.0.1 with the latest docker add-on provided from the repo. I have other docker nodes that aren't running Libreelec. Although I can add libreleec to my swarm just fine, any containers using an overlay network (either created manually or via the manager) fail to start since it seems to require vxlan be compiled in the kernel.

    I've tried multiple containers and methods and overlay networks always fail, regardless of whether its in a swarm or not.

    eg:

    network sandbox join failed: subnet sandbox join failed for "10.0.2.0/24": error creating vxlan interface: operation not supported"

    Creating a vxlan manually as root throws the same error, even if docker isn't in the mix at all.

    tl;dr: Docker overlay networks used in docker swarms require vxlan interfaces, which isn't enabled in the kernel. Is enabling it possible?

    Thanks! :)

  • Hi,

    Swarms are native clustering for Docker and useful if you have multiple hosts running on seperate machines. It allows running containers on different machines to share resources like networks, secrets, etc and well as basic load balancing etc.

    They're useful in any case where you have more than one docker host. In my particular instance, it was because LE and my other docker host are relatively low powered machines and I wanted to move some containers around for performance reasons.

    It's built into docker so the current official add-on supports creating and joining swarms and gives the appearance that everything is working when in reality the underlying docker network doesn't work.

    I have no idea what the implications or risks are of adding kernel modules, and I've worked around my particular problem. It also looks like I'm the only one who has ever brought this up...

    If it's not doable, because it's a standard docker feature, perhaps the fact swarms aren't supported could be added to the add-on text or wherever is appropriate.

    At the very least this thread will save people from trying to debug this for days like I did ;)

    Thanks for your help

    Kris

  • Ah bummer... just got LibreElec running on my old Beelink GT1 device that was gathering dust in a drawer... was hoping to add it as an additional node to my docker swarm, but it looks like I've run into the issue described here in this thread where there is no vxlan module available. As such, it is unable to participate as a node in the docker swarm. Oh well, I'll purpose it to some other task.

    cheers.

  • It looks like Amlogic (and RPi 0/1) are the only kernels we ship that don't have VXLAN support enabled. That can be changed.

  • Ah, great! OK, I enabled the VXLAN option in the Amlogic config, did a build, modified /etc/modules-load.d to include vxlan.conf to autostart the module, and now it is working great as a node in the swarm! Thanks!

    Here is a picture of the docker swarm as shown from Portainer... "quadra5" at the bottom is the Beelink GT1 with 8 cpu cores.

    Sweet!