-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run BESS inside a container #942
Comments
Hi @jwangee. Yes it is possible. We already do it in the Nimbess project. The docker images are here: The only caveat is that the kmod needs to be compiled and loaded on the host first. |
Nice. This looks interesting. Nimbess seems to be a fast-path Kubernetes CNI option. $ docker run --privileged -it --rm nimbess/bess bash Followup: |
Right, unless you use "-m 0" which I think will disable hugepages and bessd will start. Here is the k8s yaml we use to launch bess: https://github.com/nimbess/nimbess-agent/blob/master/k8s/nimbess.yaml#L55 |
Thanks a lot for confirming this. It helps. I could run BESS as a vSwitch for containers. |
You might be able to do it if you have multiple numa nodes and you isolate hugepage mem allocation per BESS instance to a single node (also configure lcores to the right socket). That's something that is missing in BESS right now. Today if you specify a huge page size with -m arg, it will automatically try to allocate that size from all sockets. |
I started on: It will let you start BESS and allocate hugepages from only 1 socket. However it is crashing when the workers are started. Even when I specify worker core it is still using core 0. Looking into it. |
Looks like the worker 0 was being used by Nimbess controller by default and that was causing bessd to crash. I added a check during AddWorker to ensure the core requested is valid for the socket being used. Works for me. Give it a try and see if you can launch multiple bessd containers with hugepages on different sockets: |
I wonder if there is a way of running BESS inside a container.
The scenario is as following (1) multiple BESS processes running at a single host (2) a vSwitch (e.g. BESS) that connects all BESS processes with the physical NIC.
Is it feasible to do so?
I am quite curious and really appreciate if you could provide guides (or possible hints) for me to try out this scheme.
The text was updated successfully, but these errors were encountered: