Iâm reading this and other similar threads for some times now about using containers on mikrotik devices and, sorry to say that, I still donât get why this would be a good idea nor can find what I would name âa valid use caseâ for having containers deployed on a mikrotik device.
Most arguments that I read are âsomething is missing/not good enough on the mikrotik device and I want to add/replace itâ. Itâs like willing to stockpile old plastic in your living room because your cellar is to small, and doing it because your living room is big enough⌠Fine, but it both sounds like a pad on a wooden leg to me and may not be worth potential involved risks. The cost argument is not valid either as cheap and power efficient devices can be found on the market.
So can you please enlighten me ? Why are people that enthusiastic about what sound like a gadget to me and which probably lowers Mikrotik bandwidth for fixing real issues (bgp for instance, pim-sm) and adding core features which are in my opinion really missing and cannot (not to say shouldnât) be handled through containers anyway (nut for instance).
Apart from the âit would be cool to be able toâ, I really see no âmindbreakingâ argument so far.
Whatâs wrong with that argument? Itâs a perfectly valid use case.
The cost argument is not valid either as cheap and power efficient devices can be found on the market.
Some of us have RouterOS devices with enough free RAM, flash, and CPU to do this for âfree.â Buying another device to run the container is not free.
If you do not possess a device yet that will do this in a sensible fashion, thereâs a fair chance your next RouterOS device will. What will you do with your spare slice of free compute power?
Even when cost is no object, the ability to deliver a complete, integrated, custom solution may be compelling.
lowers Mikrotik bandwidth for fixing real issues (bgp for instance, pim-sm)
Development talent isnât fungible. The people working on containers likely werenât pulled off your pet projects, nor could they be reassigned to them and be immediately productive.
Furthermore, most of this container stuff is out there, off the shelf, ready to repurpose. A good bit of it lives in the kernel they had to update to produce v7 already. Initial development on what would become the modern container infrastructure goes back to kernel 3.10.
I really see no âmindbreakingâ argument so far.
Perhaps it is not for you, then.
That doesnât mean it isnât for anyone else, though.
It is a bit sad that RouterOS does not allow to use the resources⌠e.g. I have a RB4011 that has 1GB RAM which is sitting 90% unused.
The flash is âonlyâ 512MB and I have partitioned it so only 256MB available. And no USB or SD interface to extend it.
With a ramdisk I could at least run a volatile container stored in /ramdisk, but MikroTik refuse to enable it (the code is there, it only requires some trivial "if"s at startup).
I think thatâs all to it. They they seem to keep adding extras to ROS to allure to more potential customers. Until it doesnât compromise base functionality or security, I donât thing thereâs harm in doing that.
Well if you consider that as a customer you should âhelp yourselfâ thatâs inded fine. For me the âplain wrong partâ is that instead of fixing / adding whatâs missing (but was existing prior to ROS7) and should be part of a working solution, Mikrotik works on containers.
Ok, but how much free RAM/CPU to do what exactly ? For instance I donât see a single usefull service in my 20+ VMs and containers deployed on my home network which could be a candidate for deployment on a mikrotik device. Security, performance, CPU usage, increased heat, separation of concerns, etc. Every time I evaluate a potential service I run into one of these cases: the Mikrotik device is not the place where to deploy it or the service is not lightweight enough. Thatâs why Iâm asking: am I the only one in this situation ?
Well I donât think so. I wonât deploy DMZ services on an network infrastructure appliance, nor will deploy security related services on it, nor will deploy potentially high RAM/CPU/I/O consuming services, nor critical services. Thatâs why Iâm asking what do you really deploy on containers and for how many users ?
This is an argument which may be of interest. But again what services are you talking about and for how many users ? And âintegratedâ with external storage ? hmmâŚ
Itâs part of my job to work on skills development so I know that you donât âturn a pig into a dog just by telling him to barkâ. The problem here is that these people were hired in the first place, they didnât appear out of nowhere⌠There was a decision taken at a given point time to hire people to work on what appears to me as âwrong prioritiesâ (away from what the voice of customers would ask for).
Yep as many other features in RouterOS as it is built on top of F/OSS.
Indeed, but apart from your âintegrated solutionâ which is not really precise either. I still didnât read what makes it a âmust haveâ for ROS users. If I only knew, maybe it would be as well for me donât you think ?
It is not very interesting (read: of no interest at all) what you would or would not install on your router or elsewhere.
Everyone is free to decide what service they want to deploy where, and what method they want to use for it.
Given the fact that a MikroTik router does not allow a generic shell login, making it impossible to copy some random program to the device and run it as a normal Linux process, the possibility of containers is useful in many use cases, even if you cannot imagine one of them.
Of course I also would prefer if MikroTik work on feature parity in v7 (relative to v6) instead of on new features, but it is likely that the person(s) that are able to work on container are different from the one(s) that could fix and finish the BGP routing.
So we have to be patient and hope that the focus does not shift too much (with the risk that BGP will be labeled ânot of interest for the RouterOS futureâ)âŚ
That makes sense. I tried implementing this at the time of the original post but I am on a level 1 license that restricts to just 1 VETH interface. I was also thrown off with the documentationâs example of using 172.17.0.2/16 which made me think the large IP block is for multiple containers using the same interface.
Yeah I made the same wrong assumption some time ago.
And with the different vETHâs , you have full flexibility with things like DNAT etc if you want to expose to the outside world etc.