What is Kubernetes?
With the widespread adoption of containers among organizations, Kubernetes, the container-centric management software, has become the de facto standard to deploy and operate containerized applications. Google Cloud is the birthplace of Kubernetes—originally developed at Google and released as open source in 2014. Kubernetes builds on 15 years of running Google's containerized workloads and the valuable contributions from the open source community. Inspired by Google’s internal cluster management system, Borg, Kubernetes makes everything associated with deploying and managing your application easier. Providing automated container orchestration, Kubernetes improves your reliability and reduces the time and resources attributed to daily operations.
Kubernetes defined
Kubernetes (sometimes shortened to K8s with the 8 standing for the number of letters between the “K” and the “s”) is an open source system to deploy, scale, and manage containerized applications anywhere.
Kubernetes automates operational tasks of container management and includes built-in commands for deploying applications, rolling out changes to your applications, scaling your applications up and down to fit changing needs, monitoring your applications, and more—making it easier to manage applications.
What are the benefits of Kubernetes?
Automated operations
Kubernetes has built-in commands to handle a lot of the
heavy lifting that goes into application management,
allowing you to automate day-to-day operations. You can
make sure applications are always running the way you
intended them to run.
Infrastructure abstraction
When you install Kubernetes, it handles the compute,
networking, and storage on behalf of your workloads. This
allows developers to focus on applications and not worry
about the underlying environment.
Service health monitoring
Kubernetes continuously runs health checks against your
services, restarting containers that fail, or have
stalled, and only making available services to users when
it has confirmed they are running.
Kubernetes vs. Docker
Often misunderstood as a choice between one or the other, Kubernetes and Docker are different yet complementary technologies for running containerized applications.
Docker lets you put everything you need to run your application into a box that can be stored and opened when and where it is required. Once you start boxing up your applications, you need a way to manage them; and that's what Kubernetes does.
Kubernetes is a Greek word meaning ‘captain’ in English. Like the captain is responsible for the safe journey of the ship in the seas, Kubernetes is responsible for carrying and delivering those boxes safely to locations where they can be used.
- Kubernetes can be used with or without Docker
- Docker is not an alternative to Kubernetes, so it’s less of a “Kubernetes vs. Docker” question. It’s about using Kubernetes with Docker to containerize your applications and run them at scale
- The difference between Docker and Kubernetes relates to the role each play in containerizing and running your applications
- Docker is an open industry standard for packaging and distributing applications in containers
- Kubernetes uses Docker to deploy, manage, and scale containerized applications
What is Kubernetes used for?
Kubernetes is used to create applications that are easy to manage and deploy anywhere. When available as a managed service, Kubernetes offers you a range of solutions to meet your needs. Here are some common use cases.
Increasing development velocity
Kubernetes helps you to build cloud-native
microservices-based apps. It also supports
containerization of existing apps, thereby becoming the
foundation of application modernization and letting you
develop apps faster.
Deploying applications anywhere
Kubernetes is built to be used anywhere, allowing you to
run your applications across on-site deployments and
public clouds; as well as hybrid deployments in between.
So you can run your applications where you need them.
Running efficient services
Kubernetes can automatically adjust the size of a
cluster required to run a service. This enables you to
automatically scale your applications, up and down, based
on the demand and run them efficiently.
Related products and services
Created by the same developers that built Kubernetes,
Google Kubernetes Engine
(GKE) is an easy to use cloud based Kubernetes service
for running containerized applications. GKE can help you
implement a successful Kubernetes strategy for your
applications in the cloud. With
Anthos,
Google offers a consistent Kubernetes experience for
your applications across on-premises and multiple
clouds. Using Anthos, you get a reliable, efficient, and
trusted way to run Kubernetes clusters, anywhere.