- [Narrator] Now let's talk about Kubernetes,
the most popular open-source container orchestrator
available today.
The adoption of Docker has really taken off
in the last few years.
Per the 2017 Docker survey by Datadog,
Docker adoption was up 40%
in Datadog's very large customer base.
Additionally, the 2017 Docker Usage Report,
conducted by Sysdig,
stated that the median number of containers
running on a single host is about 10.
All this data begs an important question.
How do you manage all these running containers
on a single host, and more importantly,
across your whole infrastructure?
This is where the idea of container orchestrators come in.
Container orchestration solves the problem
of deploying multiple containers
either by themselves or as a part of an application
across many hosts.
From a high level some of the features required are
the ability to provision hosts,
start containers in a host,
be able to restart failing containers,
have the ability to link containers together
so that they can communicate with their peers,
expose required containers as services to the world
outside the cluster, and
scaling the cluster up or down.
There are a few solutions in the container orchestrations
base, and we'll cover more of these later on.
Kubernetes is an open-source platform
designed to automate the deployment, scaling,
and operation of containers.
The real goal of the platform is to foster an ecosystem
of components and tools that relieve the burden
of running applications in public and private clouds.
Kubernetes, often called K8S or Hubernetes,
is an open-source platform that started at Google.
Internally, all of the Google infrastructure
relies on containers and generates more than
two billion container deployments a week,
all powered by an internal platform called Borg.
Borg was the predecessor to Kubernetes
and the lessons learned from developing Borg over the years
has become the primary building blocks
in the development of Kubernetes.
Simply put, using Kubernetes in your infrastructure
gives you a platform to schedule and run containers
on clusters of your machines,
whether it's on bare metal, virtual machines,
in a private data center, or in the cloud.
This means no more golden handcuffs
and opens up opportunities to have hybrid cloud scenarios
for your folks migrating towards the cloud.
Because Kubernetes is a container platform,
you can use Docker containers to
develop and build applications,
and then use Kubernetes to run these applications
in your infrastructure.
It's important to note
that you don't have to use Docker containers.
You can use rkt by CoreOS or other container platforms.
However, most users in the container ecosystem
use Docker containers, so we'll use Docker for this course.
There are many companies that use Kubernetes today
for different use cases.
I'll discuss a few of these to document common ways
companies are using Kubernetes.
Box has been moving towards a MIC services architecture
for their infrastructure and became an early adopter.
Kubernetes has provided Box's developers
a common development platform to build MIC services.
Also, since Kubernetes can run on bare metal,
just as well as the cloud,
Box could create a migration strategy to Google Cloud.
It could also use the same tools and concepts
to run across their existing data center
and the new Google Cloud.
Pokemon GO. When a game has the motto
"Got to catch them all," it retrospectively comes as no shock
that as soon as it launched, within half an hour,
traffic surged and crashed all Pokemon GO servers.
To keep up with traffic,
Niantic got help from teams at Google
to move Pokemon GO to the Google container engine.
To date, Pokemon GO is the largest Kubernetes deployment
on the Google container engine.
Due to the scale of the cluster and accompanying TrueBit,
a multitude of bugs were identified, fixed, and merged
back to the Kubernetes code base.
eBay was an early adopter of OpenStack, and used OpenStack
as the platform to run their virtual machines.
However, as the infrastructure grew,
developers found it easier to manage and deploy containers
as opposed to working with .bms
or applications directly on OpenStack.
As a result, eBay moved to use the Kubernetes platform
from OpenStack Magnum.
This allowed the company to manage the infrastructure
more easily and allowed their developers
to continue to be agile and productive.
In the next section, we'll take a look at
why Kubernetes is so effective
and why people like it so much.