My take - Kubernetes isn’t perfect. It’s got a lot of moving parts, a lot of complexity. My work involves managing SRE for almost a hundred clusters daily, where clusters are running across different clouds with different levels of customisation. I’ll say this - K8s is to cloud native infrastructure engineering what ODBC was for databases 20 years ago. A consistent base standard for running workloads across public, private and hybrid clouds, without worrying _too much_ about how those apps will actually utilise the underlying infrastructure. I’ve worked on Docker Swarm, Rancher 1.0, Mesos, Nomad - nothing comes close.
Sure things may evolve and maybe in a decade we _may_ see a new standard, perhaps a new platform. But I don’t really see that happening. K8s is here to stay, and it’s now at a point where it’s stable and mature from a reliability standpoint; it just needs people like us to worry and fret about making it more accessible.
Some benefits:
- Automated deployment and scaling: Kubernetes can automate the deployment, scaling, and management of containerized applications, saving you time and effort.
- High availability: The platform is designed to be highly fault-tolerant, so your application can continue to run even if one of your nodes goes down.
- Extensibility: Kubernetes is highly extensible, with a wide range of add-ons and plugins available to customize the platform to your specific needs. Kubernetes has a large and active community, with frequent updates and a wealth of documentation and resources available. This makes it easier to get started with the platform and get help if you need it.
- Portability: Kubernetes is cloud-agnostic, meaning it can run on any cloud provider or on-premises infrastructure. This makes it easier to migrate your applications between different environments.
Kubernetes continues to be the de-facto leader in cloud native cluster management, so if you don’t use it what would you do instead?