1
00:00:00,670 --> 00:00:05,770
Hello and welcome to this lecture. In this lecture we talk about the different choices available

2
00:00:05,770 --> 00:00:11,440
for the infrastructure hosting a Kubernetes cluster. In the previous lecture we discussed about the various

3
00:00:11,440 --> 00:00:13,870
options we have in deploying a kubernetes cluster.

4
00:00:13,900 --> 00:00:17,140
Let's look at it in a bit more detail here.

5
00:00:17,170 --> 00:00:22,570
Kubernetes can be deployed on various systems in different ways. Starting with your laptops, to physical

6
00:00:22,570 --> 00:00:26,660
or virtual servers within an organization as well as those in the cloud.

7
00:00:26,860 --> 00:00:31,750
Depending on your requirements your cloud ecosystem and the kind of applications you wish to deploy

8
00:00:32,140 --> 00:00:36,070
you may choose one of these solutions. On a laptop or a local machine,

9
00:00:36,070 --> 00:00:38,130
There are a number of ways to get started.

10
00:00:38,140 --> 00:00:43,540
First of all on a supported Linux machine you can get started with installing the binaries manually

11
00:00:43,570 --> 00:00:45,550
and setting up a local cluster.

12
00:00:45,550 --> 00:00:48,890
However that is too tedious especially if you are just getting started.

13
00:00:49,300 --> 00:00:55,140
So relying on a solution that automates all that will help in setting up a cluster in a matter of minutes.

14
00:00:55,270 --> 00:00:58,810
We will look at some of those solutions in a bit. On Windows

15
00:00:58,810 --> 00:01:04,240
on the other hand, you cannot setup kubernetes natively as there are no windows binaries.

16
00:01:04,300 --> 00:01:10,780
You must rely on a virtualization software like Hyper-V or Vmware workstation or VirtualBox to create

17
00:01:10,810 --> 00:01:13,950
Linux VMs on which you can run kubernetes.

18
00:01:13,960 --> 00:01:19,570
There are also solutions available to run kubernetes components as docker containers on windows VMs.

19
00:01:19,900 --> 00:01:26,920
But remember, even then the docker images are Linux based and under the hoods they run on a small Linux OS

20
00:01:26,950 --> 00:01:31,500
created by Hyper-V for running Linux docker containers.

21
00:01:31,540 --> 00:01:36,040
So what are some of the solutions available to easily get started with kubernetes on a local machine?

22
00:01:36,450 --> 00:01:42,310
Minikube, deploys a single node cluster easily. It relies on one of the virtualization software like Oracle

23
00:01:42,310 --> 00:01:47,350
Virtualbox to create virtual machines that run the kubernetes cluster components.

24
00:01:47,380 --> 00:01:52,330
We have seen this in the beginners course. The kubeadm tool can be used to deploy a single node or a

25
00:01:52,330 --> 00:01:53,480
multi node cluster

26
00:01:53,560 --> 00:01:59,950
real quick before this you must provision the required hosts with supported configuration yourself.

27
00:02:00,010 --> 00:02:05,530
So the different between the first two and kubeadm is that the first two provisions a VM with supported

28
00:02:05,530 --> 00:02:12,910
configuration by itself, whereas kubeadm expects the VMs provisioned already. At the same time it allows

29
00:02:12,910 --> 00:02:18,280
for deploying multi-node clusters, whereas the former doesn’t. Again deploying a kubernetes cluster

30
00:02:18,280 --> 00:02:24,670
locally on a laptop is usually for learning, testing and development purposes. For production purposes,

31
00:02:24,670 --> 00:02:30,430
there are many ways to get started with a kubernetes cluster. Both in a private or a public cloud environment.

32
00:02:30,460 --> 00:02:37,330
I would categorize them as Turnkey solutions or Hosted or managed solutions. Turnkey solutions are where

33
00:02:37,330 --> 00:02:43,210
you provision the required VMs and use some kind of tools or scripts to configure kubernetes cluster

34
00:02:43,330 --> 00:02:44,040
on them.

35
00:02:44,140 --> 00:02:49,630
At the end of the day you are responsible for maintaining those VMs, and patching them and creating,upgrading

36
00:02:49,630 --> 00:02:56,200
them etc. But cluster management and maintenance are mostly made easy using these tools and scripts.

37
00:02:56,380 --> 00:03:03,970
For example deploying a kubernetes cluster on AWS using the KOPS tool. Hosted solutions are more like Kubernetes

38
00:03:04,030 --> 00:03:09,760
as a service solution, where the cluster along with the required VMs are deployed by the provider and

39
00:03:09,760 --> 00:03:13,220
kubernetes is configured by them by the provider.

40
00:03:13,240 --> 00:03:15,210
The VMs are maintained by the provider.

41
00:03:15,220 --> 00:03:21,040
For example, Google Container Engine lets you deploy a kubernetes cluster in a matter of minutes, without

42
00:03:21,040 --> 00:03:27,620
you having to perform any configuration by yourself. Let us look at some of the Turnkey solutions.

43
00:03:27,620 --> 00:03:31,010
OpenShift is a popular on-prem kubernetes platform

44
00:03:31,050 --> 00:03:36,680
by RedHat. For those of you who may not be familiar, OpenShift is an open source container application

45
00:03:36,680 --> 00:03:39,700
platform and is built on top of kubernetes.

46
00:03:39,770 --> 00:03:45,920
It provides a set of additional tools and a nice GUI to create and manage kubernetes constructs and

47
00:03:45,950 --> 00:03:49,640
easily integrate with CI/CD pipelines etc.

48
00:03:49,910 --> 00:03:53,000
We have an OpenShift for beginners course in our catalog.

49
00:03:53,070 --> 00:03:55,190
Check it out if you are interested!

50
00:03:55,190 --> 00:04:00,740
Cloud Foundry Container Runtime is an open-source project from Cloud Foundry that helps in deploying

51
00:04:00,740 --> 00:04:06,540
and managing highly available kubernetes clusters using their open-source tool called BOSH.

52
00:04:06,560 --> 00:04:11,930
f you wish to leverage your existing Vmware environment for kubernetes, then the Vmware Cloud

53
00:04:12,130 --> 00:04:15,910
PKS solution is one that should be evaluated.

54
00:04:16,070 --> 00:04:21,440
Vagrant provides a set of useful scripts to deploy a Kubernetes cluster on different cloud service

55
00:04:21,440 --> 00:04:22,880
providers.

56
00:04:22,880 --> 00:04:29,000
All of these solutions makes it easy to deploy and manage a cobra that is cluster privately within your

57
00:04:29,000 --> 00:04:30,090
organization.

58
00:04:30,110 --> 00:04:34,720
You must have a few Virtual Machines with supported configurations in place.

59
00:04:34,760 --> 00:04:38,470
These are few of the many kubernetes certified solutions.

60
00:04:38,570 --> 00:04:44,420
Well there are many more, so check them out in the kubernetes documentation page. Let us look at some

61
00:04:44,420 --> 00:04:50,180
of the hosted solutions. Google Container Engine is a very popular kubernetes as a service offering

62
00:04:50,270 --> 00:04:55,640
on Google Cloud Platform.  Openshift online is an offering from RedHat where you can gain access to a fully

63
00:04:55,640 --> 00:04:57,910
functional kubernetes cluster online.

64
00:04:58,460 --> 00:05:04,770
Azure has Azure Kubernetes Service.  And finally Amazon Elastic Container Service for Kubernetes

65
00:05:04,820 --> 00:05:09,910
is Amazon’s hosted kubernetes offering. Again, these are just some of the solutions

66
00:05:09,950 --> 00:05:12,710
there are many more. So what is our choice?

67
00:05:12,710 --> 00:05:17,870
In our case since this is for learning purposes and considering the fact that some of you may not have

68
00:05:17,870 --> 00:05:24,620
access to a public cloud account and since most of you mentioned in the poll we sent out that you prefer

69
00:05:24,650 --> 00:05:27,000
a local setup with Virtualbox,

70
00:05:27,080 --> 00:05:33,470
we chose to deploy a local kubernetes cluster from scratch on our local system by creating several

71
00:05:33,470 --> 00:05:35,520
virtual machines on VirtualBox.

72
00:05:36,350 --> 00:05:43,280
So our design now has 3 nodes, 1 master, 2 worker, to be deployed on a laptop with Virtual Machines

73
00:05:43,280 --> 00:05:45,630
provisioned on VirtualBox.

74
00:05:45,920 --> 00:05:47,810
Well that's it for this lecture.

75
00:05:47,810 --> 00:05:52,190
Check out the reference page to read more about many more such solutions.
