One thing that continuously irks me about K8S is that the bar is so high. Does it really need to be so complex? Does it really need so much mandatory complexity?
Is that complexity needed or do more complex things actually tend to win in certain markets because nerds like knobs?
Distributed cloud computing is complex, k8s provides a solid abstraction based on decoupled reconciliation loops that work together in a common control plane. One of the most compelling facets of k8s is this declarative and extensible architecture.
The collaboration between Service -> Deployment -> ReplicaSet -> Pod -> Container is a great example of how these reconcilers work together.
Yes, it has a lot of knobs and dials but you don't need to understand them to get going. Just pick up something like skaffold.dev and you can be productive very quickly
Actually K8S itself as a standard is not complex/hard. If you are a developer and user/consumer of K8S, use it! If the cluster is managed by someone else, K8S is great.
It only gets complex when you have to provision & manage your own clusters. That's where Rancher really shines, as it makes it so much simpler to deploy and manage K8s everywhere.
I place provisioning and management of your own clusters in a category I call "installability" or "deployability." It's a fundamental category of UX especially for technical and infrastructure applications.
I once tried to deploy a minimal test instance of OpenStack. Granted this was years ago, but I have been doing Linux since 1993 and I could not get it to run. That's an example of absolutely horrible UX at the deployability level.
K8S is nowhere near that bad but it definitely seems much harder than it needs to be to provision a basic default configuration for a working cluster.
K8S is a lot easier than OpenStack to install, but when comparing something like Rancher to OpenStack, it should be compared to something like OpenStack Ansible, or a vendor version of OpenStack (RIP HPE Helion) which were a lot easier than apt-get install openstack is.
K8S has a lot less moving parts - a couple of binaries / containers and etcd. The issue start coming up when you go beyond the single control plane node, and want a HA API.
Why not compare it to a instead to a contemporary competitor - Nomad - which has simplicity as a core value? It has _far_ fewer moving parts than Kubernetes.
I was talking about the GP comparing their OpenStack install experience to something like Rancher, which is not an apples to apples comparison.
- on a side note - OpenStack and Kubernetes are not competitors, they are quite complementary collections of applications, that both have their place in a modern open source infrastructure.
My experience with it has always been that it is delightfully simple for the task at hand. There's a wide surface area because it covers a wide problem space (distributed computing), but any individual task has always felt simple and very thoughtfully considered for me.
Eh, I’d say k8s with the help of Helm is about as simple as it can get to deploy and manage large clusters of networked applications. The equivalent done using e.g. Ansible playbooks would be far more complex.
If the complexity seems too much, it’s probably a sign you don’t need k8s.
You can use Docker Swarm. Mirantis since back-paddled on its plans to deprecate it. It's a great piece of SW if you don't need thousands of containers, but rather low hundreds (and if you don't need additional stuff like Istio, operators, etc.)
Is that complexity needed or do more complex things actually tend to win in certain markets because nerds like knobs?