03 May How Kubernetes automatically deploys, scales & maintains your software clusters
In our previous post about Docker you could read what are the latest and greatest ways for optimizing the usage of your hardware wherever it’s based, on-premise, in the cloud or any other solution.
Setting up a container with all of its dependencies is usually a one-time job. Now imagine everything just works for your daily workload, when suddenly you’re getting a lot of complaints about your applications not responding properly. A lot of your clients are stuck because the containers you are using are just overwhelmed by the massive amount of visitors your application suddenly gets, as has been the case for a lot of companies that suddenly hit a peak in their load they didn’t foresee. And let this be just the problem you could prevent with the piece of software we are about to highlight in this post. Let me introduce you to Kubernetes.
2, 3, …
Now imagine your company is the biggest service provider in your region and has an operations team of 100 people. For each couple of customers you have a small team of operations available. While the setup of a container may be a one time thing, the main job of operations is to monitor the system so everything stays up and running. Keeping it up and running is just one thing, and most of the time the least interesting job they are assigned to do. They also needs to stay up to date with the latest trends, update the system with security updates…
Most of you will think that’s what operations is supposed to be doing. What if I told you they can actually do more by doing less work?
… too many!
And suddenly several of the deployed containers start getting a lot of traffic. Somewhere in the cluster something goes wrong and some of the containers start failing. This can happen when operations is understaffed.
How does a group of containers form an application?
Like we mentioned before, Kubernetes health-checks each container. A group of tightly coupled containers like a database, an application and a file system are grouped into pods. The number of pods is updated when the load changes and a container can be replaced when it’s not functioning correctly.
The use case mentioned above is the main purpose of Kubernetes but there are other and even more practical jobs Kubernetes could be your assistant for. Kubernetes is responsible for the orchestration of your containers but it can also manage rolling out updates, A/B testing, blue-green deployment, centralized logging, error reporting, …
If you are interested in a cloud solution Kubernetes, you can always take a look at Google Container Engine
Written by Kevin Norek