What is Kubernetes?
Kubernetes is an open-source container management system developed by Google and made available to the public in June 2014. The goal is to make deploying and managing complex distributed systems easier for developers interested in Linux containers. It was designed by Google engineers experienced with writing applications that run in a cluster.
Kubernetes—or K8s as it is commonly called—was the third container cluster manager developed by Google, improving core scheduling architecture and a shared persistent store at its core. Kubernetes APIs that process REST operations are similar to other APIs.
Of all the technologies to emerge over the past decade, Kubernetes is one of the most important. By automating management tasks that would not be feasible to perform by hand in most situations, it plays a critical role in deploying containerized applications both in the cloud and on-premises.
But However, Kubernetes is a complex technology. Getting started with Kubernetes requires becoming familiar with several types of tools and concepts (like nodes, pods, clusters, and services). And, depending on exactly how you are using Kubernetes, the specific approach you take to getting started will vary.
If that sounds intimidating, keep reading. This page explains all of the essentials you need to know to begin your Kubernetes journey.
Kubernetes is an orchestrator, which means that it manages application environments by automating tasks that human operators would otherwise have to perform manually. Those tasks include operations such as starting and stopping different infrastructure components; providing load-balancing to ensure that requests are distributed evenly across an environment; and managing the exchange of information between different parts of an application environment.
Kubernetes is most often used to orchestrate containers. However, Kubernetes can also be used to orchestrate other types of application infrastructures, including virtual machines.
What Does Kubernetes Do?
The main reason to use Kubernetes is to eliminate the need to perform tedious tasks, like manually starting and stopping containers or assigning containers to individual servers.
Indeed, if you have a large-scale container deployment, Kubernetes (or a similar orchestration tool) is essential for making it practical to manage the environment. You can get away with managing perhaps a half-dozen container instances by hand, but beyond that point, it becomes infeasible to manage an application environment without the automation provided by Kubernetes.
Beyond its automation benefits, Kubernetes provides some other valuable features. Although Kubernetes is not a security tool, it lets you implement some security protections (using features like role-based access control and pod security policies) that add security to containerized application environments. Kubernetes also makes it easy to migrate an application deployment from one infrastructure to another, since Kubernetes configurations and data are portable across different infrastructures.
Kubernetes is open source. You can download the Kubernetes source code from GitHub and compile it yourself if you wish. However, installing and updating Kubernetes in this way is complicated, unless you want to build Kubernetes from source in order to help teach yourself the ins and outs of the platform, or you are using a host environment where prebuilt Kubernetes distributions are not available for some reason. However, compiling Kubernetes from source is usually not worth all the trouble and effort.
For most teams, using a Kubernetes distribution makes more sense. A Kubernetes distribution is a prebuilt version of Kubernetes that you can install using packages instead of having to compile from source. Most Kubernetes distributions are also preconfigured in certain ways to make installation and setup easier, and many come with additional tools or integrations that add functionality to the core Kubernetes platform.
In this way, you can think of Kubernetes distributions as being akin to Linux distributions. Most people use Linux distributions that come prebuilt and preconfigured to serve different purposes (like powering desktops, servers, or networking equipment).
Popular Kubernetes distributions include Red Hat OpenShift, Rancher, Canonical's Kubernetes distribution for Ubuntu, and SUSE's CaaS platform. These distributions can be installed on-premises or on a cloud-based infrastructure that you provision yourself. As noted below in subsequent pages, there are also special Kubernetes distributions designed for different types of deployments.
In addition, all of the major public cloud providers offer hosted Kubernetes services, such as AWS EKS and Azure AKS. These cloud-based services allow you to set up a Kubernetes cluster without having to maintain or manage your own infrastructure, although they typically offer fewer opportunities for configuration tweaks.
Complete visibility for DevSecOps
Reduce downtime and move from reactive to proactive monitoring.