Ysurac / openmptcprouter-vps

OpenMPTCProuter VPS scripts
GNU General Public License v3.0
158 stars 69 forks source link

Installation of VPS from a container #59

Open edbek opened 2 years ago

edbek commented 2 years ago

Can i run the installation of VPS from a container (I'm using a docker image Ubuntu-20.04) ? Will this work, or do I need to patch the host kernel by installing the VPS directly from the host itself ?

Adorfer commented 2 years ago

technically it's certainly not impossible. but since the kernel needs to be patched, it will be problably involve some wizzard skills plus with every update it will generate "backporting workload"

edbek commented 2 years ago

Thank you for your reply. Another question: is the "docker-openmptcprouter-vps" project still active or not? It is not clear to me whether it is necessary for this project to patch the kernel to support MPTCP. In general, my task is to scale the VPS by containers, but I don’t understand how to do it correctly.

Ysurac commented 2 years ago

Currently OpenMPTCProuter need a patched kernel in all case. This may change in future release with MPTCP upstreamed in official kernel.

edbek commented 2 years ago

I can't run "openmptcprouter-vps" from every container. Need first patch the kernel or take an OS with MPTCP support, and then install "openmptcprouter-vps", but without a kernel patch. Can you advise on how to get the "openmptcprouter-vps" version without a kernel patch.

Thank you in advance for your response.

Ysurac commented 2 years ago

There is no OS that can support current OpenMPTCProuter version. So with current release you need to patch the host. There is no openmptcprouter-vps options to disable kernel install as it's not supported for now, you have to modify the script yourself.

edbek commented 2 years ago

I have an Ubuntu 20.04 operating system installed on my host. Оn the host, I installed the OpenMPTCProuter VPS server of the current version (to patch the kernel) and Docker. In Docker, a container is running in privileged mode (based on the Ubuntu 20.04 image) and in it I started another separate, isolated OpenMPTCProuter VPS server (there were no errors during its installation into the container).

While the server is running in a container when running the script /usr/bin/omr-admin.py errors of the form occur: sysctl: cannot stat / proc / sys / net / mptcp / mptcp_enabled: No such file or directory sysctl: cannot stat / proc / sys / net / mptcp / mptcp_checksum: No such file or directory sysctl: cannot stat / proc / sys / net / mptcp / mptcp_path_manager: No such file or directory sysctl: cannot stat / proc / sys / net / mptcp / mptcp_scheduler: No such file or directory sysctl: cannot stat / proc / sys / net / mptcp / mptcp_syn_retries: No such file or directory due to the lack of MPTCP system variables in the container (/ proc / sys / net / mptcp)

The kernel is patched on the host, ~ # uname -a Linux ed-zabbix 5.4.100-mptcp # 1 SMP Wed Feb 24 09:39:10 UTC 2021 x86_64 x86_64 x86_64 GNU / Linux and all these variables are present ~ # sysctl net.mptcp net.mptcp.mptcp_checksum = 0 net.mptcp.mptcp_debug = 0 net.mptcp.mptcp_enabled = 1 net.mptcp.mptcp_path_manager = fullmesh net.mptcp.mptcp_scheduler = blest net.mptcp.mptcp_syn_retries = 2 net.mptcp.mptcp_version = 0

but the container does not. Is it possible to somehow solve this problem?

Thank you in advance for your response.

Adorfer commented 2 years ago

You need to patch the host kernel! so you have to get the patches from the regular installer and apply that system. For that you should understand the workings of the installer-script. (That is what i meant with my first reply above "wizzard skills needed").

mstrolo commented 2 years ago

anyone was able to install it on docker?

edbek commented 2 years ago

yes, it managed to be done, but it's not quite a clean way. Anyway, it can be done and it will work.

mstrolo commented 2 years ago

can you help me with it?

mstrolo commented 2 years ago

@edbek ?

Adorfer commented 2 years ago

you can move PARTS of the VPS-functions into a docker container, but since you have to patch the host system kernel, i would not consider the installation as "dockerized".

to make a comparision: "to use this product you have to own a car" "can i use a taxi as well" "Yes, it's possible, you only have to instruct the taxi driver to raise the tire pressure and to switch to a special motor oil."