DEV Community

Discussion on: Kubernetes is not your friend

dishantpandya profile image
Dishant Pandya • Edited on

What you said is definitely true. Kubernetes is not for smaller teams and fewer application deployments. Its not made for application that are not mission critical. Kubernetes was never made for Developers, unless you are developing something for Kubernetes itself.
But you got the title wrong, its a great friend when you know its true value and when you have opportunity to harness its power.
As the official website says, its an Enterprise Grade Container Orchestrator. That means its not made for small businesses, even if its free and readily available. You have few applications of your own with a few hundred users a day, a linux server with apache/nginx, php mysql will be sufficient. Kubernetes simplifies, complexity of managing and maintaing a large number of heterogeneous server nodes, by creation an abstration of a unified infrastructure which can be managed and maintained using an API, so the operations team don't have to worry about managing every application and its dependency for each node, Also it reduces the networking complexity by creating a Software Defined Cluster Network, which controls how your traffic flows inside, ouside and into the Cluster. It leverages the container runtime technologies to abstract each component of an Infrastructure. Consider a scenario where 100 different applications and services are deployed on 10 different nodes, 10 on each, and now you have one application that now requires more than available resources on server. you have other node which has more than available resources for that application to run, then you'll have to migrate the application, create apache/nginx configurations, configure ssl, configure DNS, etc. Its time taking and complex, unless you have some Automation is place using scripts, also the difference is os versions and types, and human errors (no matter how exper you are you can still make mistakes) will add to the headace. Now consider those applications running on Kubernetes cluster with 10 nodes. Each havin its deployment, service and ingress resource, One of those applications request more than available resources, new container will be automatically created on other node with available resources without any downtime and human intervention.
Obviously its not easy and Kubernetes is not for noobs, but when learned and implemented properly it can reduce Operations Engineer's server maintenance workload by a Significant level so they can focus on building efficient app containers, create error free,efficient, high availability and self healing deployments.
And I'd suggest anyone new to devops and system administraton, must not even think of Kubernetes, its a luxury that one gets to value after a lots of learning and getting their hands dirty on Linux Fundamentals and Containers, or it will disappoint/discourage you.