3 ms·
Kubernetes is the operating system in this analogy, and it’s quite a modular operating system at that. Specifically, it schedules the programs that themselves s
by weberc2 7y ago
Kubernetes is the operating system in this analogy, and it’s quite a modular operating system at that. Specifically, it schedules the programs that themselves should adhere to the Unix philosophy. I don’t think the Unix philosophy ever extended to the OS (although microkernels seem to be driving in that direction).
- gerbilly 7y agoIf you say so. To me kubernetes wishes it was an operating sytem. It just puts an opaque YML fronted on a bunch of stuff I already know how to install configure and troubleshoot myself: firewalls proxies, web servers etc... It dawned on me that people probably use it because they haven't done much sysadmin, but they want to deploy production systems. As a sysadmin/programmer of 20+ years (what full stack used to mean I guess) it just mystifies me why someone would want to layer a barely documented front end on top of their infrastructure. To me k8 feels kind of like a monster hybridization of cpanel & webshpere.
- weberc2 7y agoYeah, veteran sysadmins probably aren't its target audience. Orgs probably want to be able to enable their dev teams to deploy/operate production infrastructure without hiring a legion of sysadmins with decades of experience. Kubernetes, like all technology, is meant to lower the bar.
- 0xFACEFEED 7y ago> Specifically, it schedules the programs that themselves should adhere to the Unix philosophy Containers are not programs. And even they were, they absolutely do not adhere to the Unix philosophy. > Kubernetes is the operating system in this analogy I've heard this enough times and seen enough K8s systems in production that I'm labeling this "fluff". K8s is an operating system in the same way that "everything is everything". K8s is software that manages containers and their resources. I think of it more like a virtual environment than an operating system. From Wikipedia: > An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. You can generalize "software resources" as container resource limits. You can generalize "common services" as the network and filesystem layers. And you can generalize "computer hardware" as kernel configuration on the control plane. All of these are purpose built abstractions built on top of the real operating systems. By that logic you could call any virtual environment or virtual machine an operating system. And if that's the true then the comparison isn't useful at all.
- weberc2 7y ago> Containers are not programs. And even they were, they absolutely do not adhere to the Unix philosophy. They are programs (barring some semantic nitpickery about "programs run in containers"), and like programs, we can't make blanket statements about whether or not they implement the Unix philosophy. Some do and others don't. > I've heard this enough times and seen enough K8s systems in production that I'm labeling this "fluff". K8s is an operating system in the same way that "everything is everything". K8s is software that manages containers and their resources. Yep, like I said, an analogy: "An operating system is software that manages processes and their resources". By definition, the operands of an analogy are different, so if your thing is taking any analogy and calling "gotcha!" because you found some differences, then I'm afraid you're missing the point. > From Wikipedia: >> An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. > You can generalize "software resources" as container resource limits. You can generalize "common services" as the network and filesystem layers. And you can generalize "computer hardware" as kernel configuration on the control plane. > All of these are purpose built abstractions built on top of the real operating systems. By that logic you could call any virtual environment or virtual machine an operating system. And if that's the true then the comparison isn't useful at all. That's quite the straw man.
- 0xFACEFEED 7y ago"programs run in containers" isn't nitpickery - it's a very important distinction. Containers are more like a runtime environment. There's a lot going on between a K8s pod, a container, and the actual program. It's just not Unix-y at all. You can't execute containers and string them together in the same way you do with Unix programs. Again, you can generalize and call them "programs" but the generalization renders the meaning of "program" in this context useless. I don't see the strawman here. K8s and containerization is frequently mischaracterized as the operating system of the future. The technical details matter and speaking in generalities is misleading (IMO).
- weberc2 7y agoIt's not an important distinction at all. A "program" isn't well-defined; it's inherently abstract. A container is a manifestation of a running program as is a Unix process; both are "runtime environments" differing in their isolation properties (Unix processes provide memory isolation, containers provide memory as well as other kinds of isolation, at least to the extent that the underlying operating system supports). > There's a lot going on between a K8s pod, a container, and the actual program. It's just not Unix-y at all. The Unix philosophy pertains to composition, not implementation. > I don't see the strawman here. You picked someone else's definition of "operating system", generalized it, and then attacked it for being too general. > K8s and containerization is frequently mischaracterized as the operating system of the future. The technical details matter and speaking in generalities is misleading (IMO). Yes, again, this is an analogy. If you interpret analogies as a guarantee that the operands are identical instead of simply "similar", you will be misled.