{"id":629,"date":"2025-04-01T15:07:37","date_gmt":"2025-04-01T15:07:37","guid":{"rendered":"https:\/\/blog.ngocha.biz\/?p=629"},"modified":"2025-04-01T15:07:37","modified_gmt":"2025-04-01T15:07:37","slug":"why-companies-are-leaving-kubernetes","status":"publish","type":"post","link":"https:\/\/blog.ngocha.biz\/?p=629","title":{"rendered":"Why Companies Are Leaving Kubernetes?"},"content":{"rendered":"<p>When it comes to running applications today, <a href=\"https:\/\/devopscube.com\/kubernetes-tutorials-beginners\/\" rel=\"noreferrer\">Kubernetes<\/a> is becoming the gold standard.<\/p>\n<p>However, in recent times, several companies have chosen to move away from Kubernetes due to its complexity and the challenges it presents.<\/p>\n<p>In this blog, I want to share&nbsp;<strong>three such stories&nbsp;<\/strong>and their learnings. Learning from others&#8217; experiences is a great way to avoid huge mistakes in infrastructure management.<\/p>\n<p>Looking at such&nbsp;<strong>learnings<\/strong>&nbsp;can help you make&nbsp;<strong>better design choices<\/strong>&nbsp;when working with Kubernetes.<\/p>\n<h2 id=\"1-gitpod-story\">1. Gitpod Story<\/h2>\n<p>Gitpod is a cloud-based development environment that provides pre-configured, ready-to-code workspaces for developers. It allows users to&nbsp;<strong>spin up a development environment in seconds.<\/strong><\/p>\n<p>Gitpod started with&nbsp;<strong>Kubernetes<\/strong>&nbsp;as the backbone for their cloud-based development environments.<\/p>\n<p>Like many others, they believed Kubernetes\u2019&nbsp;<strong>scalability, automation, and <\/strong><a href=\"https:\/\/devopscube.com\/docker-container-clustering-tools\/\" rel=\"noreferrer\"><strong>orchestration<\/strong><\/a>&nbsp;would be perfect for handling thousands of development environments daily.<\/p>\n<p>But as they grew, they ran into unexpected challenges. They struggled with the&nbsp;<strong>unique needs of development environments<\/strong>, which are highly stateful and interactive.<\/p>\n<p>Here\u2019s where things started to break:<\/p>\n<ol>\n<li><strong>CPU Bursts<\/strong>&nbsp;\u2013 Developers need instant processing power, but Kubernetes scheduling wasn\u2019t fast enough, causing frustrating delays.<\/li>\n<li><strong>Memory Management<\/strong>&nbsp;\u2013 RAM is expensive, so they tried overbooking it (k8s allows it through requests and limits. But without proper swap space, Kubernetes would just kill processes when memory ran out. &#8211; OOM (Out of Memory) Killer.<\/li>\n<li><strong>Storage Performance<\/strong>&nbsp;\u2013 Fast SSDs improved performance, but they were tied to specific nodes. Persistent storage (PVCs) should have helped, but it was slow and unreliable.<\/li>\n<li><strong>Security &amp; Isolation<\/strong>&nbsp;\u2013 Developers needed root-like access to install packages and configure their environments, but that clashed with Kubernetes strict security model.<\/li>\n<li><strong>Networking Complexity<\/strong>&nbsp;\u2013 Each environment had to be isolated for security, but also needed flexible access for developers.<\/li>\n<\/ol>\n<p>So they built&nbsp;<strong>Gitpod Flex<\/strong>, a Kubernetes-inspired but simplified control plane.<\/p>\n<p>It solves most issues by,<\/p>\n<ul>\n<li>Removing Kubernetes overhead while keeping declarative APIs.<\/li>\n<li>Offering better security, performance, and ease of deployment.<\/li>\n<li>Supporting self-hosting in under 3 minutes with better compliance.<\/li>\n<\/ul>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\"><b><strong style=\"white-space: pre-wrap;\">The key lesson:<\/strong><\/b>&nbsp;Kubernetes is great for production workloads, but not always the best fit for developer environments.<\/p>\n<p>Gitpod learned this the hard way and built a leaner, more efficient alternative.<\/p><\/div>\n<\/div>\n<p>Source:&nbsp;<a href=\"https:\/\/www.gitpod.io\/blog\/we-are-leaving-kubernetes?ref=devopscube.com\" rel=\"noreferrer\">GitPod Blog<\/a><\/p>\n<h2 id=\"2-juspay-story\">2. Juspay Story<\/h2>\n<p>Juspay has a payment processing backend called&nbsp;<a href=\"https:\/\/hyperswitch.io\/?ref=devopscube.com\" rel=\"noreferrer\">Hyperswitch<\/a>.<\/p>\n<p>For Hyperswitch,&nbsp;<strong>Kafka<\/strong>&nbsp;plays an important role in event streaming, ensuring smooth data flow between application servers and storage.<\/p>\n<p>Initially,&nbsp;<strong>Kubernetes was the go-to choice<\/strong>&nbsp;for container orchestration, providing a managed environment for scaling Kafka nodes.<\/p>\n<p>However, as the workload grew, several unexpected challenges came up, making Kafka on Kubernetes&nbsp;<strong>inefficient and costly<\/strong>.<\/p>\n<p>Following are the three pain points.<\/p>\n<ol>\n<li><strong>Resource Allocation Inefficiencies<\/strong>: Kubernetes resource management often under-provisioned resources, leading to wasted CPU and memory. At scale, it led to led to much higher costs than expected.<\/li>\n<li><strong>Auto-Scaling Struggles<\/strong>: Kafka is stateful, but Kubernetes auto-scaling is designed for stateless applications. This led to 15-second message processing delays and increased latency during scale-ups.<\/li>\n<li><strong>Operational Complexity with Strimzi<\/strong>: Managing Kafka clusters with&nbsp;<strong>Strimzi&nbsp;<\/strong>(operator for running Apache Kafka on k8s) became a manual, error-prone process. Adding new nodes often failed to integrate, requiring frequent interventions.<\/li>\n<\/ol>\n<p>To cut costs and improve Kafka performance, Hyperswitch migrated from Kubernetes to EC2.<\/p>\n<p>Here are the results.<\/p>\n<ul>\n<li>28% cost reduction, from $180\/month per instance on Kubernetes to $130\/month on EC2.<\/li>\n<li>Easy vertical scaling, upgrading from T-class to C-class instances without disruptions.<\/li>\n<li>More control over performance, ensuring stable operations under peak loads.<\/li>\n<\/ul>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\"><b><strong style=\"white-space: pre-wrap;\">Key Takeaway:&nbsp;<\/strong><\/b>Not all workloads are ideal for Kubernetes.<\/p>\n<p>While it excels at stateless, highly dynamic applications, stateful systems like Kafka often require more control over resources and scaling.<\/p><\/div>\n<\/div>\n<p>Source:&nbsp;<a href=\"https:\/\/github.com\/juspay\/hyperswitch\/wiki\/Kafka-to-EC2?ref=devopscube.com\" rel=\"noreferrer\">JusPay Blog<\/a><\/p>\n<h2 id=\"3-threekit-story\">3. Threekit Story<\/h2>\n<p>Threekit is an enterprise-grade 3D visualization and augmented reality (AR) platform that enables businesses to create interactive experiences for e-commerce, retail, etc.<\/p>\n<p>In 2018, the Threekit team looked for a fully managed compute solution.<\/p>\n<p>It required&nbsp;<strong>batch processing<\/strong>&nbsp;to efficiently handle large-scale rendering, data transformation, and content generation.<\/p>\n<p>Kubernetes had just emerged as the industry standard, making it the clear choice at the time.<\/p>\n<p>Kubernetes soon revealed the following.<\/p>\n<ol>\n<li><strong>High Costs<\/strong>: Running a cluster required redundant management nodes and over-provisioning due to slow autoscaling, leading to wasted resources.<\/li>\n<li><strong>Scaling Issues<\/strong>: Managing high job volumes was challenging, and solutions like <a href=\"https:\/\/devopscube.com\/tag\/argocd\/\" rel=\"noreferrer\">ArgoCD<\/a> introduced additional complexity.<\/li>\n<li><strong>Operational Overhead<\/strong>: Even simple tasks required deep Kubernetes expertise, adding a <a href=\"https:\/\/devopscube.com\/what-is-devops-what-does-it-really-mean\/\" rel=\"noreferrer\">DevOps<\/a> burden. Maintaining the cluster demanded dedicated Kubernetes engineers.<\/li>\n<li><strong>Lock-In Trap<\/strong>: Kubernetes clusters created dependencies that made it difficult to integrate external resources or migrate to a different setup.<\/li>\n<\/ol>\n<p>While Kubernetes solved hardware management problems, it made infrastructure&nbsp;<strong>more complex and expensive<\/strong>&nbsp;to maintain.<\/p>\n<p>To reduce complexity, they adopted&nbsp;<strong>Google Cloud Run.<\/strong><\/p>\n<ul>\n<li>Cloud Run scales&nbsp;<strong>to zero<\/strong>, meaning costs are based only on actual usage, unlike Kubernetes, which required&nbsp;<strong>paying for idle resources<\/strong>.<\/li>\n<li>While Kubernetes scaling took minutes, Cloud Run scales up&nbsp;<strong>in seconds<\/strong>, ensuring seamless handling of traffic spikes.<\/li>\n<li>Cloud Run, built on Google\u2019s&nbsp;<strong>Borg<\/strong>, eliminates the need for Kubernetes cluster maintenance, simplifying deployments.<\/li>\n<li>Cloud Run Tasks allowed up to 10,000 jobs per batch with built-in retries, removing the need for custom job scheduling infrastructure.<\/li>\n<\/ul>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\"><b><strong style=\"white-space: pre-wrap;\">Key Takeaway:<\/strong><\/b>&nbsp;For enterprises managing highly dynamic workloads, Kubernetes may still be useful.<\/p>\n<p>However, for companies focused on simpler, cost-efficient, and scalable solutions, solutions like Cloud Run offers a compelling alternative, eliminating infrastructure overheads while not compromising performance.<\/p><\/div>\n<\/div>\n<p>Source:&nbsp;<a href=\"https:\/\/benhouston3d.com\/blog\/why-i-left-kubernetes-for-google-cloud-run?ref=devopscube.com\" rel=\"noreferrer\">Threekit Blog<\/a><\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>For those who&nbsp;<strong>transitioned<\/strong>&nbsp;from legacy systems to VMs and then to Kubernetes, it is clear that Kubernetes isn\u2019t always the best fit for every workload.<\/p>\n<p>In my personal experience, we tried to host all stateful apps (databases, messaging systems, etc.) outside of Kubernetes. (Although many companies successfully run those in Kubernetes.)<\/p>\n<p>Usually, problems start when you begin operating at scale, maintenance overhead, cost, etc.<\/p>\n<p>Does This Mean Kubernetes Isn\u2019t the Ideal Platform for Apps?<\/p>\n<p>Not at all!&nbsp;<strong>Kubernetes is more popular than ever<\/strong>, with rapid adoption across industries, including AI\/ML workloads, cloud-native applications, and large-scale microservices architectures.<\/p>\n<p>However,&nbsp;<strong>it\u2019s not a one-size-fits-all solution<\/strong>. While Kubernetes excels in many areas, there are certain use cases where it may not be the best choice.<\/p>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\">Global Kubernetes Market size was valued at USD 1.7 billion in 2023 and is poised to grow from USD 2.11 billion in 2024 to USD 11.78 billion by 2032, growing at a CAGR of 24.0% during the forecast period (2025-2032).<\/p>\n<p>skyquestt.com<\/p><\/div>\n<\/div>\n<p>If you have any doubts about this blog, drop them in a comment!<\/p>\n<p>Want to Stay Ahead in DevOps &amp; Cloud? Join the Free Newsletter Below.<\/p>\n<p><!--kg-card-begin: html--><br \/>\n <iframe loading=\"lazy\" src=\"https:\/\/embeds.beehiiv.com\/2a495ef4-3de7-4600-8a0d-de5dc968b372\" data-test-id=\"beehiiv-embed\" width=\"100%\" height=\"320\" frameborder=\"0\" scrolling=\"no\" style=\"border-radius: 4px; border: 2px solid #e5e7eb; margin: 0; background-color: transparent;\"><\/iframe><br \/>\n<!--kg-card-end: html--><\/p>\n<hr>\n<p><strong>Ngu\u1ed3n:<\/strong> <a href=\"https:\/\/devopscube.com\/why-companies-are-leaving-kubernetes\/\" target=\"_blank\" rel=\"noopener noreferrer\">Why Companies Are Leaving Kubernetes? \u2014 DevOpsCube<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Source: https:\/\/devopscube.com\/why-companies-are-leaving-kubernetes\/<\/p>\n","protected":false},"author":1,"featured_media":630,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts\/629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=629"}],"version-history":[{"count":0,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts\/629\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/media\/630"}],"wp:attachment":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}