WEBVTT

00:00.670 --> 00:05.770
Hello and welcome to this lecture. In this lecture we talk about the different choices available

00:05.770 --> 00:11.440
for the infrastructure hosting a Kubernetes cluster. In the previous lecture we discussed about the various

00:11.440 --> 00:13.870
options we have in deploying a kubernetes cluster.

00:13.900 --> 00:17.140
Let's look at it in a bit more detail here.

00:17.170 --> 00:22.570
Kubernetes can be deployed on various systems in different ways. Starting with your laptops, to physical

00:22.570 --> 00:26.660
or virtual servers within an organization as well as those in the cloud.

00:26.860 --> 00:31.750
Depending on your requirements your cloud ecosystem and the kind of applications you wish to deploy

00:32.140 --> 00:36.070
you may choose one of these solutions. On a laptop or a local machine,

00:36.070 --> 00:38.130
There are a number of ways to get started.

00:38.140 --> 00:43.540
First of all on a supported Linux machine you can get started with installing the binaries manually

00:43.570 --> 00:45.550
and setting up a local cluster.

00:45.550 --> 00:48.890
However that is too tedious especially if you are just getting started.

00:49.300 --> 00:55.140
So relying on a solution that automates all that will help in setting up a cluster in a matter of minutes.

00:55.270 --> 00:58.810
We will look at some of those solutions in a bit. On Windows

00:58.810 --> 01:04.240
on the other hand, you cannot setup kubernetes natively as there are no windows binaries.

01:04.300 --> 01:10.780
You must rely on a virtualization software like Hyper-V or Vmware workstation or VirtualBox to create

01:10.810 --> 01:13.950
Linux VMs on which you can run kubernetes.

01:13.960 --> 01:19.570
There are also solutions available to run kubernetes components as docker containers on windows VMs.

01:19.900 --> 01:26.920
But remember, even then the docker images are Linux based and under the hoods they run on a small Linux OS

01:26.950 --> 01:31.500
created by Hyper-V for running Linux docker containers.

01:31.540 --> 01:36.040
So what are some of the solutions available to easily get started with kubernetes on a local machine?

01:36.450 --> 01:42.310
Minikube, deploys a single node cluster easily. It relies on one of the virtualization software like Oracle

01:42.310 --> 01:47.350
Virtualbox to create virtual machines that run the kubernetes cluster components.

01:47.380 --> 01:52.330
We have seen this in the beginners course. The kubeadm tool can be used to deploy a single node or a

01:52.330 --> 01:53.480
multi node cluster

01:53.560 --> 01:59.950
real quick before this you must provision the required hosts with supported configuration yourself.

02:00.010 --> 02:05.530
So the different between the first two and kubeadm is that the first two provisions a VM with supported

02:05.530 --> 02:12.910
configuration by itself, whereas kubeadm expects the VMs provisioned already. At the same time it allows

02:12.910 --> 02:18.280
for deploying multi-node clusters, whereas the former doesn’t. Again deploying a kubernetes cluster

02:18.280 --> 02:24.670
locally on a laptop is usually for learning, testing and development purposes. For production purposes,

02:24.670 --> 02:30.430
there are many ways to get started with a kubernetes cluster. Both in a private or a public cloud environment.

02:30.460 --> 02:37.330
I would categorize them as Turnkey solutions or Hosted or managed solutions. Turnkey solutions are where

02:37.330 --> 02:43.210
you provision the required VMs and use some kind of tools or scripts to configure kubernetes cluster

02:43.330 --> 02:44.040
on them.

02:44.140 --> 02:49.630
At the end of the day you are responsible for maintaining those VMs, and patching them and creating,upgrading

02:49.630 --> 02:56.200
them etc. But cluster management and maintenance are mostly made easy using these tools and scripts.

02:56.380 --> 03:03.970
For example deploying a kubernetes cluster on AWS using the KOPS tool. Hosted solutions are more like Kubernetes

03:04.030 --> 03:09.760
as a service solution, where the cluster along with the required VMs are deployed by the provider and

03:09.760 --> 03:13.220
kubernetes is configured by them by the provider.

03:13.240 --> 03:15.210
The VMs are maintained by the provider.

03:15.220 --> 03:21.040
For example, Google Container Engine lets you deploy a kubernetes cluster in a matter of minutes, without

03:21.040 --> 03:27.620
you having to perform any configuration by yourself. Let us look at some of the Turnkey solutions.

03:27.620 --> 03:31.010
OpenShift is a popular on-prem kubernetes platform

03:31.050 --> 03:36.680
by RedHat. For those of you who may not be familiar, OpenShift is an open source container application

03:36.680 --> 03:39.700
platform and is built on top of kubernetes.

03:39.770 --> 03:45.920
It provides a set of additional tools and a nice GUI to create and manage kubernetes constructs and

03:45.950 --> 03:49.640
easily integrate with CI/CD pipelines etc.

03:49.910 --> 03:53.000
We have an OpenShift for beginners course in our catalog.

03:53.070 --> 03:55.190
Check it out if you are interested!

03:55.190 --> 04:00.740
Cloud Foundry Container Runtime is an open-source project from Cloud Foundry that helps in deploying

04:00.740 --> 04:06.540
and managing highly available kubernetes clusters using their open-source tool called BOSH.

04:06.560 --> 04:11.930
f you wish to leverage your existing Vmware environment for kubernetes, then the Vmware Cloud

04:12.130 --> 04:15.910
PKS solution is one that should be evaluated.

04:16.070 --> 04:21.440
Vagrant provides a set of useful scripts to deploy a Kubernetes cluster on different cloud service

04:21.440 --> 04:22.880
providers.

04:22.880 --> 04:29.000
All of these solutions makes it easy to deploy and manage a cobra that is cluster privately within your

04:29.000 --> 04:30.090
organization.

04:30.110 --> 04:34.720
You must have a few Virtual Machines with supported configurations in place.

04:34.760 --> 04:38.470
These are few of the many kubernetes certified solutions.

04:38.570 --> 04:44.420
Well there are many more, so check them out in the kubernetes documentation page. Let us look at some

04:44.420 --> 04:50.180
of the hosted solutions. Google Container Engine is a very popular kubernetes as a service offering

04:50.270 --> 04:55.640
on Google Cloud Platform.  Openshift online is an offering from RedHat where you can gain access to a fully

04:55.640 --> 04:57.910
functional kubernetes cluster online.

04:58.460 --> 05:04.770
Azure has Azure Kubernetes Service.  And finally Amazon Elastic Container Service for Kubernetes

05:04.820 --> 05:09.910
is Amazon’s hosted kubernetes offering. Again, these are just some of the solutions

05:09.950 --> 05:12.710
there are many more. So what is our choice?

05:12.710 --> 05:17.870
In our case since this is for learning purposes and considering the fact that some of you may not have

05:17.870 --> 05:24.620
access to a public cloud account and since most of you mentioned in the poll we sent out that you prefer

05:24.650 --> 05:27.000
a local setup with Virtualbox,

05:27.080 --> 05:33.470
we chose to deploy a local kubernetes cluster from scratch on our local system by creating several

05:33.470 --> 05:35.520
virtual machines on VirtualBox.

05:36.350 --> 05:43.280
So our design now has 3 nodes, 1 master, 2 worker, to be deployed on a laptop with Virtual Machines

05:43.280 --> 05:45.630
provisioned on VirtualBox.

05:45.920 --> 05:47.810
Well that's it for this lecture.

05:47.810 --> 05:52.190
Check out the reference page to read more about many more such solutions.

