K3s on older hardware?

I’m looking at a video that popped up in my recommendations about K3s RPi clusters. I don’t have 800 dollars of raspi stuff to play with, but I have all sorts of older machines.

I am interested in using my machines that I have in something of a compute stack. I want some machines to do video rendering, I want some machines to build code, etc etc. Could I use K3s to dictate this? Or is it Arm specific? Looking in the bin folder on the github suggests otherwise, but I figure I’m not the only one interested in this.

K3s can run on x86, but not sure about 32bit support. But keep in mind that k3s is just an orchestrator for OCI containers (like docker or podman), so you have to use software dedicated to each task on each hardware and glue them together.

For example, in programming, you would use a git server to upload code to a branch, use sonar to detect programming mistakes and vulnerabilities, then push to master branch, then use jenkins to run automated tests on it, then use a repository like artifactory to push the binaries to them, then ansible or an update tool to deploy them. That’s a CI/CD pipeline.

The same has to be done for video editing, then pushing to a video render farm.

Think of k3s like Proxmox, it just runs the programs (containers / VMs) that have the software inside them that then does what you want. Just that OCI containers are much lighter than VMs. I prefer LXD, but k3s and k8s do have their own advantages in many regards, like automatic deployment of containers in case some of them break down.

1 Like

Maybe I’m wanting something else then.

I want to be able to go to a terminal and send a command to a “Head” machine that will dictate the other machines to boot up and start whatever service or app I need. So I can have kdenlive start on my G5’s or my code building farm to start a job or to just start scanning for jobs, etc. But, I want this to be across a few architectures, using each ones best parts for what they would be efficient for, or whatever task I have for those machines to do.

But, I want the programs themselves to run on hardware. And I want to be able to start and stop stuff on the fly, and maybe put hooks in to detect a WOL command. Would I be able to do that?

1 Like

Ansible or other automation tools, or python or shell scripting.

Technically the containers are running on hardware, but that’s not what k3s does, if you want automation tools / the glue between the different software, then use automation tools or scripts.

I feel like there should be a framework to handle tasks like that instead of having to wire all that shit so tediously.

For programming, there might already be, just that you have to give them a few parameters, like IP addresses or hostnames, ssh keys or credentials etc., before they will work together.

For video editing, I don’t know, there may be some software bundles out there that has all you need to build an automated production, but I don’t know of any, because I’m not into video editing and content creation software.

Well for render farm shit I already got that. KDL or openshot have those tools built in. I just want to make it power efficient.

1 Like

I don’t understand… just ssh <host> <command> ?

The thing with Kubernetes is that it’ll find the host automatically out of a pool of machines, according to what you’ve specified your needs and according to hosts that are available, and if hosts die it can restart or reschedule that command elsewhere.

1 Like

Probably ffmpeg and shell scripting. After finishing a project, run a script that moves the project files over to another host, or if you are already editing from one, script that just ssh into the host and renders the new project.

How about a CI tool, like Jenkins? You could install build agents on all the individual machines, then it’s a matter of booting them on-demand, and shutting them down when they’re done. Gives you direct access to the hardware while providing some abstraction.

Not sure how practical it would be in practice, would depend exactly on the tasks you’re trying to automate and how well they’re supported through the tool. Might ultimately end up being easier to just use scripts directly (or something like Ansible, maybe), but that’s the direction I’d start poking in.