To call it a port that doesn’t actually work? Idk seems like a baseline requirement.
It’s like saying you ported YouTube to a calculator but it doesn’t play videos because the most interesting part is the search algorithm, and it’s for educational purposes not functionality.
I get your point. I will disagree that it "doesn't work". It does! You just can't use it for real production workloads since it runs in your browser. If you ported kubernetes to your toaster would it be a port? I think so, but you probably couldn't deploy prod on it. That's just a fun semantics conversation though. Is a taco a sandwich? :-)
Considering what kubernetes actually is - there's a fantastic use case if you really did port it to the browser. So when someone says they did it, I kinda expect that they literally ported that containerization logic to JavaScript.
That would mean I could run an image of an OS like Linux in browser JavaScript. It's a wild thing, but that's what porting literally means! And what I expected with that title.
Think of like a PlayStation emulator... the game itself does not need to be ported - just as if you really made a k8s port you would not really need to reinvent Linux in JS, only be able to run it
A PSX emulator can be said to have been ported (e.g. Tomb Raider has been ported to the browser even though it relies on underlying C++) because it ultimately runs fully 1:1 in a web page. It's a port as far as I'm concerned.
But a k8s port that doesn't do what k8s does isn't a port IMO
Separately from any details of this post, I think you misunderstand what kubernetes is. To me, that's something worth reading and thinking about.
You seem to think it's like a virtual machine, and it lets you run containers anywhere regardless of operating system or host machine. This is not correct. You can't run containers using k8s directly on a Mac, for example, because there is no Linux kernel to run the container. You need a VM first, then you can run k8s inside of that VM. Kubernetes does not let you magically run a container with ARM binaries on an x86 machine either. You would need additional tools to run binaries for another architecture.
You're totally right that in practice, you usually don't need to think about the host OS when you're using k8s. It is nice to not worry about what packages it has installed, etc. But it is not a tool that allows you to run an arbitrary container anywhere.
Nope, I don't think (and don't think I said) it's a VM, or that it can allow you to run any software on any hardware. I have been coding long enough to remember using VirtualBox to do Ruby work for clients :)
I may have alluded to that experience - in saying that we used to use VMs for the same use case (isolation) before mainstream containerization like Docker. But yeah I know the two are unrelated.
The idea of installing software in an isolated (emulated) environment - a snapshot of the OS ("disk image") - is not so different from the PSX emulator analogy since emulators also work that way.
Docker got popular before Kubernetes was even created. It was after the fact that it became its own thing, and tried to become just an "orchestration layer" but it means nothing without containerization.
To say you ported it to the browser with no working containers doesn't mean anything to me. What was ported?
It's like saying you ported PlayStation to Chrome but no games will play. How is it a port of anything.
Sorry to be blunt but from the messages you have written in this threads it is pretty clear you don't know well enough what you are talking about.A real working Kubernetes cluster has many layers of abstractions and the lower ones are outside Kubernetes completely (i.e. containerd or the Linux kernel itself).
> Make points. mAnY lAyERs aside if it doesn’t actually do anything you have not ported anything.
You might consider reflecting on this long thread which seems to be solely about your personal definition of the word "port", and arguing with others that the definition should be what you say.
Particularly because you're now stooping to insulting other HN posters over one technical definition of one word.
The only thing that would change my opinion is if it actually worked.
And I don't think I was being insulting at all.
What I replied to:
"pretty clear you don't know well enough what you are talking about" is the real insult in this thread, which is what I called out :) Those statements are so boring and don't prove anything. Anyone can say "You don't know what you are talking about" but he hasn't proven anything. It's just an empty insult.
Making letters lower/upper to stress emphasis in a reply to that is part of conveying that.
You haven't changed my mind at all so far, I still think this doesn't qualify as a port.
Question for you: What would you use this project for in production? How could I replace k8s today with this browser port?
Kubernetes runs on the infrastructure where your services are deployed.
That is not happening here. This is a simulation of a web based kubernetes control plane.
The whole point of the movement toward Docker/kubernetes is that you can run services anywhere without needing a 1:1 OS/physical machine configured for that service. It's an evolution on hijacking VMs for this use case. Consider what this technology is, and is for.
To say it has been ported to the browser would mean I could run e.g. postgres service in my browser the same way installing kubernetes on some cloud provider lets me run it there without having access to that machine directly.
He hasn't ported kubernetes to a browser. If I use some cloud provider UI to configure kubernetes I would not say that k8s is running in that browser tab. I'd just be using a web based dashboard.
Yes it can visualize activity, logs, etc. but kubernetes is not actually provisioning, managing state, scheduling, etc. in its environment (the browser) the way it did in an OS environment. And correct me if I'm wrong - but it's not even calling out to other environments - these are mere simulations of services that aren't running anywhere. Aren't they?
It wouldn't be impossible to do what the title implies is happening - See JSLinux to actually see Linux in a browser. It aint pretty, but that's the kind of thing I'd think of if somebody said they ported kubernetes to the browser. I should be able to run stuff there.
To call it a port that doesn’t actually work? Idk seems like a baseline requirement.
It’s like saying you ported YouTube to a calculator but it doesn’t play videos because the most interesting part is the search algorithm, and it’s for educational purposes not functionality.
That just isn’t a port.