There was also Mosix, OpenMosix, Beowulf, etc. All those are worth a look. It's a path that was not taken, and IMHO could have been better, but "worse is better" won once again.
Had we taken this path, you might be able to create a distributed instance of an OS and just throw hardware at it -- boxes or VMs -- and tasks would run on it like a single OS with little or no modification. It'd be like having an infinite giant box.
Of course as soon as you started trying to do anything like geo-distributed or even multi-DC/multi-AZ work loads you'd be back to orchestration and the like. You'd also run into problems if you want to rev the hardware in any big way, since these systems generally depended on all the boxes being at least nearly the same. So if you threw in, say, some new boxes with AVX512 ISNs, you would not be able to use AVX512 until you'd rotated out all boxes without it. Bigger architectural shifts would require what amounts to a "reboot" of the big virtual OS instance. Mixing boxes with different performance characteristics or RAM amounts was also problematic. Making that work well would be hard to get right.
Under the hood these distributed OSes were orchestrators like K8S, just hidden from you for the most part behind a Posix emulation layer that made it look like one box.
Ultimately I think the type of architecture you see with "serverless" where everything is a "function" with no side effects that can talk to one or more shared global databases is the better architecture. Do away with the entire concept of a "box" in favor of a sea of functions that call each other, event queues, schedulers, etc. We do kind of have that, but only in the form of proprietary serverless platforms.
The amount of complexity we inflict on ourselves by dragging along the concept of unmanaged / unbounded global state, static state, and side effects is mind boggling. A function should only operate on what you give it.