5 ms·
I appreciated the article, but it read more like iterating on a few pain point in Kubernetes than envisioning a very different future. Where I work, we use Kub
by rickspencer3 5y ago
I appreciated the article, but it read more like iterating on a few pain point in Kubernetes than envisioning a very different future.
Where I work, we use Kubernetes very very heavily and some of the article reflects some of my experience, in the sense that any challenge we have, the community response is that we should add MORE complexity. Using secrets is complex? Rearchitect your whole app to use OIDC tokens is the answer (for an example from the article).
I think that Kubernetes was designed, released, and funded, to attack the AWS hegemony. As such, it was designed to provide a cloud abstraction layer for developers to target instead of the AWS API(s). As a result, it is designed for an organization to run a single cluster with many relatively trivial workloads (enter Helm for packaging "off the shelf" apps).
However, it turned out for some of us, the need is to run the same non-trivial application in multiple regions of multiple Cloud Providers. Here, Kubernetes really falls short, because Cloud Service Providers don't seem particularly motivated to make Kubernetes-based applications more portable, and Kubernetes remains a very leaky abstraction in terms of versions, storage, and networking.
To me, the future of Kubernetes looks like the community rallying around a single "distro" of Kubernetes that is reasonably consistent across all major cloud providers, but also makes basic assumptions such as how the CI/CD pipeline, observability and SLOs, self-managed packaging, etc... Here, I think the Linux analogy holds, in the sense that different Linux distros emerged for different sets of users, and communities were able to rallying around solution sets and provide support to each other.
- p_l 5y agoWhat do you think of mixing things like crossplane (and other "operators" wrapping provider-specific bits) together with KubeFedV2?
- hodgesrm 5y agoWe use Kubernetes for our cloud database platform, which we are extending to new environments. It's been quite successful. We were able to port from AWS to GCP in a matter of weeks. We don't try to share tenants within a single Kubernetes cluster. With that experience in mind, the storage section of the article is a hand-wave. Kubernetes is a major platform for high performance databases themselves. Saying that Kubernetes developers should "use databases" is not a very plausible answer in this case. Object storage is not a panacea either. It does not exist equally in all locations and building caches to make it work efficiently in low-latency apps is a non-trivial exercise. (Like years of implementation work by PhDs if you want something good.) Locally attached NVMe SSD is still the winner for a lot of applications. It needs to be first class in Kubernetes and it needs to be easy to allocate pods that offer it. Applications can deal with resilience through app-level replication. Databases have been doing it for years.
- matthias509 5y agoWe use Ephemeral Inline Volumes backed by LVMs on a local ssd. TopoLVM can make this trick possible.
- hodgesrm 5y agoThat's an excellent tip. I was not aware of that though some of our storage guys probably have. Thank you!!