Kubernetes for Industrial Edge

Dear community,

My name is Alejandro, Automation engineer but enthusiastic by IT. I am writing here asking for some tips, recommendations that I think everybody will think that I am stupid…but…for people that is just starting to discover k8s world…is not that trivial.
The thing is, I have in my Industrial plant different edge computers running docker with containers but as islands. For some of them the supplier is connecting externally to do maintenance activities (containers mod or deployment) but for that I need to connect them to the internet…so I suppose they have a kind of orchestrator in their facilities. Now, as the number of edges start to increase, my question is if there would be a possibility to create our own internal orchestrator in order to manage remotely the edge computers with its containers. I have read about k8s a lot, also found information about kubeedge, microk8s…but to be honest, I am a bit lost. Where should I start to check info, what would be the best option, I would break the edge containers, would be possible to onboard the edges in a k8s cluster…a lot of questions come to my mind and maybe what I want to do is impossible. Any idea would be very very appreciated from my side.
Thank you very much in advance.

What are you trying to solve for? Without a concise understanding of the problem and goals; it would be hard to blindly recommend adopting an entire platform. Kubernetes provides facilities for making scalable systems, but it isn’t a feel meal or even a drop-in solution. As of today, you will find yourself tailoring your solutions around Kubernetes or get frustrated clinging to legacy architecture debt.

Hello, thank you for the reply. The problems i want to solve are basically, edge management, orchestation and aplications deployment. The edges need to be able to work in offline mode, for example, when a machine is disconnected for any or other reason. The edges are composed basically by an OT gateway, converting OT protocols (OPC UA, S7, Modbus…) into IT protocols (MQTT). At the same time there is normally a timeseries database for storing data when you loose the connection with the cloud database.
As you can see…there is not the normal behaviour of a kubernetes cluster that would replicate the service in another node if one fails.
Here we are speaking about small form factor computers from different vendors installed in the machine cabinets with containers inside depending on the use case (ML, data capture, image processing…). I just want to have a central platform for managing them and deploying app.

I hope I have explained well.

Thanks in advance

So I’m not actually sure what to recommend for you. Chick-fil-a uses clusters deployed on-prem. If you maintain on-prem container registries as well, you could manage an airgapped installation.

Deploying flux2 would help you keep everything up-to-date with whatever is in the on-prem installation as well.

Though, there an overhead necessary for every Kubernetes cluster to run. If the hardware has very limited amounts of CPU and RAM available, you might be better served by just running basic containers that start/restart automatically; with a cronjob that periodically tries to pull newer images to update the container.

Then you also have to consider that you need to support this solution. If you don’t have the knowledge to do so, it’s not going to be fun having this out in production with money involved.

Are you looking to DIY ? There are custom/paid solutions like tanzu-edge (link).

Hello. To be honest I would not like to attach to one specific supplier like VMWare or RHEL with Openshift. What I want to do is a basic management of containers deployed physically in the edge of production machines, having the possibility to include in the management console edge computers supplied by different machine manufacturers with its own containers. I was having a look at Kubeedge + portainer as management console. Have you ever used it? Would be better to go for a microk8s pure environment?..if so, what should I install in the edge nodes to become part of the cluster if they have just a container runtime environment?

Thanks in advance,