9 videos 📅 2024-12-16 09:00:00 Asia/Brunei
2:25:36
2024-12-16 09:21:57
2:03:59
2024-12-16 11:06:33
1:46:52
2024-12-16 13:50:28
1:56:02
2024-12-17 09:35:43
1:52:29
2024-12-17 09:39:32
1:51:17
2024-12-17 13:36:38
1:35:13
2024-12-18 08:59:20
23:23
2024-12-18 11:50:59
1:47:49
2024-12-18 13:41:04

Visit the Docker and Kubernetes Training Course course recordings page

United Arab Emirates - Docker and Kubernetes on AWS

                WEBVTT

00:00:05.920 --> 00:00:13.700
try to do the same try to tag it and push it the same which I did before try to tag

00:00:13.700 --> 00:00:23.500
the image and push it to a docker hub so do a docker space tag no no no first you tag

00:00:24.380 --> 00:00:35.840
tag it docker space tag copy the repo name img01 0 2 sorry 0 2 and space your repo name in your

00:00:35.840 --> 00:00:40.780
docker hub the complete name which has your name docker hub yeah colon you need to have a

00:00:40.780 --> 00:00:46.520
name there so after this colon colon what name you want there you can say that latest

00:00:46.520 --> 00:00:54.380
something yes good press enter now use the app arrow instead of tag just use the push

00:00:54.380 --> 00:01:00.880
then you same command docker push yeah remove the word yeah there you need not even have the

00:01:00.880 --> 00:01:07.280
image name image is not required one more space delete it no no no not required not required

00:01:08.860 --> 00:01:16.560
delete one space delete one space yeah press enter so now wait for some time is going to

00:01:16.560 --> 00:01:23.320
push this image every layer getting pushed now go back to repo and check if you see a

00:01:23.320 --> 00:01:29.040
refresher repo and do you see a new image please confirm yes yes yes this is an example

00:01:31.220 --> 00:01:38.540
okay okay so now coming to gene the same yeah good colon colon gene the end just type in colon

00:01:38.540 --> 00:01:44.380
shift and semicolon button press that open colon yeah give some name yeah the name what

00:01:44.380 --> 00:01:48.920
you want so the image is local you want to see the image is a new name in the browser

00:01:48.920 --> 00:01:56.240
okay want to say no issues press enter yeah now do push use app arrow okay that's fine

00:01:56.240 --> 00:02:02.120
whichever you want yeah copy the complete after gene copy from gene copy and paste from gene

00:02:02.760 --> 00:02:08.860
yes enter this now refresh your repository in your docker hub you will be seeing a new image

00:02:08.860 --> 00:02:16.260
now you see this refresh yeah yeah so it means that others can start using the image which you

00:02:16.260 --> 00:02:24.060
tested yeah it's a simple process so able to create a image we saw that it worked in the

00:02:24.060 --> 00:02:29.640
browser and we shared with others the others can start using the image this is our enterprises

00:02:30.860 --> 00:02:36.460
your SMEs would create a image and give access to you all and then you start doing the same

00:02:39.080 --> 00:02:47.700
yeah the concept everyone the last SDK are we good okay okay a team so in case you feel

00:02:47.700 --> 00:02:54.920
that it's taking more time a lab you can also observe mine and ask questions because sometimes

00:02:54.920 --> 00:03:00.840
the time and your speed and because of the Linux issues you might be having so I want you

00:03:00.840 --> 00:03:06.920
to ask questions so I think we're good to talk to find out now next one is docker compose

00:03:06.920 --> 00:03:12.020
so what is docker compose let me give an example now have you heard about application

00:03:13.620 --> 00:03:18.340
wordpress wordpress what is wordpress anyone wordpress application what purpose we use this

00:03:18.340 --> 00:03:23.540
anyone want to try do you all work on do you all know what's a blog everyone what's a blog

00:03:23.540 --> 00:03:31.680
blog yes no a blog in which you would write in some content correct technical box website

00:03:32.800 --> 00:03:38.200
so this will have two services you can have wordpress and it uses mysql the blog the

00:03:38.200 --> 00:03:44.600
is wordpress container and the back end is mysql so both needs to work together

00:03:45.500 --> 00:03:52.840
so I have c1 and c2 so I can allow them to work together easily that is docker compose

00:03:52.840 --> 00:03:59.420
and understanding if a two containers and I want the two containers to work together

00:03:59.960 --> 00:04:04.480
then I can use docker compose make sense everyone

00:04:05.800 --> 00:04:10.480
so I can put in the concentrations of both these of web server mysql in one single file

00:04:10.480 --> 00:04:16.900
and they run together so this will make my application this is called docker compose

00:04:17.960 --> 00:04:23.480
so using docker compose you create templates and you can reuse the templates for different

00:04:23.480 --> 00:04:32.680
environment so example now if we go to contents we're talking about the lab

00:04:33.560 --> 00:04:41.580
I use simple lab lab four this is my use case so I have two containers running on so host

00:04:41.580 --> 00:04:46.040
me node means on your host mission I have two containers wordpress and mysql

00:04:46.620 --> 00:04:53.680
and I want them to work together and I also have a data dessert container for database I

00:04:53.680 --> 00:05:00.080
have a storage on my host so even if I lose my container I can still have the data on my

00:05:00.080 --> 00:05:05.780
host yeah so whenever you have something like this and we have multiple containers you want

00:05:05.780 --> 00:05:10.640
to work together then you talk a conference so for this I do install docker compose

00:05:10.640 --> 00:05:16.500
is docker install and we confirm docker compose version and then what I do is create

00:05:16.500 --> 00:05:23.520
a wordpress folder and inside that get a yaml file and I will call up the details of both

00:05:24.680 --> 00:05:29.740
the version of your docker compose file services and first defining my db details

00:05:30.080 --> 00:05:38.300
which db all the information and we also define volumes sorry

00:05:40.580 --> 00:05:46.980
please speak out oh okay the voice problem okay so I've stopped my bandwidth for some reason

00:05:46.980 --> 00:05:51.380
because using so much of bandwidth we're also having labs limiting mode bandwidth

00:05:51.380 --> 00:05:57.420
I've stopped my webcam okay okay did you understand till what I explained till here

00:05:57.420 --> 00:06:02.540
okay let's go step by step but first can you all open the document of lab four open lab four

00:06:02.540 --> 00:06:08.540
document to that now go down and run this command copy this complete command is going

00:06:08.540 --> 00:06:16.400
to download docker compose software for a terminal be under cd type in cd he's been

00:06:16.400 --> 00:06:19.920
default once and paste that command

00:06:24.060 --> 00:06:25.660
paste it

00:06:26.880 --> 00:06:34.200
and leave it it'll have something like this and now you want to run this command copy and paste

00:06:38.000 --> 00:06:41.300
now let me know the docker compose version

00:06:46.780 --> 00:06:51.120
yeah confirm the docker compose version once you're done

00:06:51.120 --> 00:06:54.960
the steps two commands first one is for look at paste in the chat please

00:06:56.580 --> 00:07:02.300
what a version you see in the chat everyone in 8.5 okay others so this is how we install so

00:07:02.300 --> 00:07:08.840
what happened in here this command downloaded the docker compose software from this location

00:07:09.520 --> 00:07:14.540
based on your architecture so your name is a command in linux to give you the kernel

00:07:14.540 --> 00:07:22.460
details so based on your os it went ahead and download the software into user local bin docker

00:07:22.460 --> 00:07:30.980
compose this location and it does not have execute permissions so we give execute permissions

00:07:30.980 --> 00:07:36.400
and hence we able to see docker compose now type in docker hyphen compose and press enter

00:07:36.400 --> 00:07:43.840
type in docker hyphen compose and press enter now these are the commands which you can use

00:07:43.840 --> 00:07:52.120
for docker compose you can use build config create down events exec all these are the

00:07:52.120 --> 00:08:02.120
commands which you can use for docker compose yeah so now create a directory so create a

00:08:02.120 --> 00:08:10.280
directory for wordpress for example or word simple create a new directory mkdir space word

00:08:11.620 --> 00:08:20.060
go inside this cd word and now copy the yaml file contents from the document

00:08:21.260 --> 00:08:26.080
so copy the contents to first your notepad copy this to a notepad it looks something

00:08:26.080 --> 00:08:29.460
like this let me explain see the double quotes

00:08:30.720 --> 00:08:35.760
could you please remove the double quotes word sometimes copied like this from the

00:08:35.760 --> 00:08:40.900
terminal so copy it remove it and add the double quotes manually copy the yaml file contents

00:08:40.900 --> 00:08:47.120
from version till the end to a notepad till here it's supposed to copy

00:08:48.060 --> 00:08:53.180
and after you copy it go back to doc and remove the double quotes

00:08:53.180 --> 00:08:59.840
and manually add the double quotes is it done okay i'll be aware of how to use yaml do you

00:08:59.840 --> 00:09:04.880
work on yaml or no have you used yaml before or no basically anything is okay if you want

00:09:04.880 --> 00:09:11.500
to use yaml file let me talk very brief so and when you go to contents in module one

00:09:12.380 --> 00:09:21.540
i give you yaml so yaml is a language like json using which you write in the

00:09:21.540 --> 00:09:28.640
configurations so yaml is for configuration language so we can use xml we can use json

00:09:28.640 --> 00:09:35.220
the latest one is yaml the yaml would look something like this so example you want to

00:09:35.220 --> 00:09:41.020
write yaml this is how you write xml this is how you write json and this is how we write

00:09:41.740 --> 00:09:46.820
yaml in yaml you would be having a heading and if these all belong to same level p

00:09:47.060 --> 00:09:53.780
one space and value key one space value key one space value to write something like this

00:09:55.320 --> 00:10:00.820
so all of the key value pairs using arrays it looks something like this

00:10:02.340 --> 00:10:04.080
actually it looks something like this

00:10:05.540 --> 00:10:09.780
so we have to write something like this in yaml docker compose requires yaml

00:10:10.860 --> 00:10:14.020
and indeed this is wrong because indonesia is wrong so you have to be very careful

00:10:14.820 --> 00:10:19.700
indonesia so with like this is what yaml looks so this now going to your

00:10:20.580 --> 00:10:26.980
document to copy to a notepad let me explain you what exactly is this happening this is a

00:10:26.980 --> 00:10:34.560
version number for docker compose a file version number docker services is a db service so this

00:10:34.560 --> 00:10:40.080
will go ahead and download the mysql image from docker hub and you go down you also

00:10:40.080 --> 00:10:44.700
see that a volume you're having so this volume would get created on the host

00:10:45.440 --> 00:10:51.240
and this volume was getting mapped into the container of database it means what a change

00:10:51.240 --> 00:10:56.220
you do in this location container is also get mapping on your host the first component is

00:10:56.220 --> 00:11:01.760
your host this is on your container restart always so restart always is a parameter

00:11:02.600 --> 00:11:06.280
in docker or container word technology in which it will restart the agent

00:11:06.280 --> 00:11:11.660
in case there's a problem the container and these are variables for your password

00:11:11.660 --> 00:11:15.380
username and these you're mapping your wordpressing here so you're mapping them

00:11:15.380 --> 00:11:20.040
because of your variables so calling up this in here and this in here something like this

00:11:20.600 --> 00:11:24.760
and then you're saying wordpress depends on so first this will get created a db

00:11:25.700 --> 00:11:30.260
then the second can get created depends on db it means once this is created it will get

00:11:30.260 --> 00:11:36.240
created a new container and which port you want to allow port 8000 on internet and port 80 is in

00:11:36.240 --> 00:11:54.380
a container so now i'm going to run this file copy the file run this and run a file in a

00:11:55.340 --> 00:11:59.420
put insert mode and then say i want to paste it

00:12:05.520 --> 00:12:13.660
i want to run it so now i'll escape colon wq and then i'll say doctor hyphen compose

00:12:13.660 --> 00:12:21.520
up up means run it hyphen d in the background detached mode so run it it goes ahead and

00:12:21.520 --> 00:12:30.080
runs all those commands to pull the images of your mysql first it runs it it sends

00:12:30.080 --> 00:12:34.800
it'll then it'll install your wordpress as per the lab it depends on

00:12:36.200 --> 00:12:39.300
and it'll create all the amount of variables in the back end

00:12:55.340 --> 00:12:55.960
so

00:12:55.960 --> 00:13:01.660
in a container so all steps have been done yeah just observing here so now if i do a docker

00:13:01.660 --> 00:13:06.800
images you see it downloaded the images of ubuntu and mysql

00:13:08.960 --> 00:13:13.920
and you see also wordpress all this got downloaded and if i do a docker ps

00:13:14.590 --> 00:13:19.710
this will be the containers of mysql and wordpress deploy instead of 8000

00:13:20.210 --> 00:13:27.950
so now what i do is the same which i did before instead of 80 the default i'll say

00:13:27.950 --> 00:13:35.870
port number 8000 you see the applications coming up so front end is your wordpress if

00:13:35.870 --> 00:13:39.730
you do something it will also it will have a database in the back mysql in the back

00:13:39.730 --> 00:13:48.670
did you understand the lab everyone is the flow clear tomorrow if i want to recreate

00:13:48.670 --> 00:13:54.610
my application i have the template i can again rerun it i can make in some different

00:13:54.610 --> 00:13:59.970
images configurations so this is how i can use the same template to create multiple

00:14:01.170 --> 00:14:07.870
examples multiple use cases for a dev test and free trial yeah please do it and confirm

00:14:07.870 --> 00:14:17.050
once you're done the charge is working now on a new vm correct some yeah so so be careful

00:14:17.050 --> 00:14:21.250
when you do something because sometimes you run some command directly on the host or these

00:14:21.250 --> 00:14:26.010
it might get corrupted so when you before running any command be careful before on the

00:14:26.010 --> 00:14:34.830
commands okay okay thank you so junvi what i don't see a screen not sure i don't see

00:14:35.430 --> 00:14:38.830
see when they are white screen for him are you there okay what happened you're

00:14:38.830 --> 00:14:42.810
reporting a system or something okay do the lab confirm what the lab is done yes charles now

00:14:42.810 --> 00:14:51.090
access the public ip uh colon 8000 in the browser http i can do locally also http colon

00:14:51.090 --> 00:14:57.010
double slash public ip colon 8000 yeah yeah i'm talking to you so what i'm saying here is

00:14:57.770 --> 00:14:58.150
now

00:14:58.150 --> 00:15:09.050
that is flash public ip colon 8000 on your browser or on your local mission

00:15:10.050 --> 00:15:12.170
and do you see the workplace application

00:15:18.730 --> 00:15:22.810
so if you say the public ip minus for example

00:15:27.930 --> 00:15:31.550
the name local host also in here

00:15:33.330 --> 00:15:34.410
okay so i get ip

00:15:36.870 --> 00:15:37.430
current

00:15:39.870 --> 00:15:40.990
local host

00:15:43.210 --> 00:15:48.350
now i say local host colon so either you can do public ip or you can say

00:15:48.350 --> 00:15:54.670
uh local host on your local and then say it will not come because the word doesn't come up

00:15:55.390 --> 00:16:03.750
so you can see the browser are we good the lab okay now let's see some commands so now there

00:16:03.750 --> 00:16:08.150
are different commands using which you can work with docker compose we can use up we can use

00:16:08.150 --> 00:16:16.350
ps stop locks and down let's play around with this so let's do some operations so now

00:16:17.490 --> 00:16:24.630
do a docker compose so instead of using docker images i can see all those things using docker

00:16:24.630 --> 00:16:32.910
compose so if i can use docker compose images so these were created using docker compose

00:16:33.650 --> 00:16:37.050
you'd always want a docker ps but you're very specific want to understand

00:16:37.050 --> 00:16:41.810
what i can docker compose you can say docker compose images i can use ps

00:16:44.700 --> 00:16:50.680
so i can see all the information got created using docker compose

00:16:55.260 --> 00:16:59.580
so now for example once the logs of it so docker compose

00:17:00.440 --> 00:17:04.520
and say logs you can see all the logs of the environment

00:17:10.040 --> 00:17:15.320
are we clear everyone

00:17:20.060 --> 00:17:26.300
okay now the next one now let's do it down so i want i don't want this now i want to terminate

00:17:26.300 --> 00:17:29.760
i can say docker compose down

00:17:32.120 --> 00:17:39.740
it is stopping your containers now you go and refresh it is not that it's gone now just

00:17:39.740 --> 00:17:46.200
make it up just up observe it see just make now say up this time it will happen so quickly

00:17:46.200 --> 00:17:49.420
because it is having a copy on your host the volume

00:17:51.840 --> 00:17:58.680
because it had a copy of the data on this location a copy of the data on your host

00:17:59.580 --> 00:18:05.540
under db underscore data could tell me where would this folder get created in your host

00:18:05.540 --> 00:18:11.440
in which location which path we're not in the path where does it get created anyone

00:18:12.100 --> 00:18:17.880
the db underscore data on your host where did it get created in this location

00:18:26.840 --> 00:18:27.420
okay

00:18:27.420 --> 00:18:31.500
testing the db underscore data is going to get in which location what do you think

00:18:32.740 --> 00:18:39.920
this is your default directory of docker with the default directory of docker yes

00:18:39.920 --> 00:18:48.840
so go to location where docker and under that you have volumes

00:18:50.540 --> 00:18:53.360
and you see this here the word db data

00:18:57.320 --> 00:19:01.260
and under that you have data keep on going inside

00:19:03.320 --> 00:19:06.880
and you see this this is the contents of your container

00:19:06.880 --> 00:19:12.680
yeah so if deleted you see that wordpress contents are there inside this contents get

00:19:12.680 --> 00:19:19.000
mapped and if you don't want these contents also you can go to word

00:19:20.680 --> 00:19:28.240
and you can also do a docker compose down if you don't want even data in here you can say

00:19:28.240 --> 00:19:32.820
docker compose down i can have volumes determine everything will get terminated

00:19:32.820 --> 00:19:38.580
even the data in the back end yeah once i do a down last command the document

00:19:38.580 --> 00:19:49.420
i can volumes remove everything is done so now if i go to where live docker and if i

00:19:49.420 --> 00:19:56.860
wordpress you see here go to volumes and the volumes i don't see the wordpress folder dot

00:19:56.860 --> 00:20:04.980
com if we just make it down you will still have the data on a host if you don't want even

00:20:04.980 --> 00:20:09.740
that data on the host you need to use hyphenated volumes it will delete the volumes even so be

00:20:13.440 --> 00:20:21.740
good and so much you're done okay i think jun you're good any questions okay you're good

00:20:22.860 --> 00:20:29.740
charles are we good charles yeah because you came out a server you were in your window you

00:20:29.740 --> 00:20:37.820
had to log into server be careful so you have to again do ssh hyphen i the key and all are

00:20:37.820 --> 00:20:43.220
you getting it you're not inside the vm in which you did your docker lab we got it same

00:20:43.220 --> 00:20:49.080
steps how do you can do initially ssh hyphen i the key connect to a server

00:20:50.040 --> 00:20:58.320
log in a server no no no no one space space initially after ssh h space one space yeah yeah

00:20:58.320 --> 00:21:12.840
yeah yeah i think okay at public IP yeah now sudo su hyphen sudo su sudo su su su

00:21:12.840 --> 00:21:23.320
you face hyphen hyphen enter now do ls check whether you have word folder ls list

00:21:24.780 --> 00:21:29.220
enter where did you create the word folder which location i think it must be the project

00:21:29.220 --> 00:21:35.720
one go to project one cd project one i think it's in there enter deposit one

00:21:37.040 --> 00:21:44.860
enter why yes enter where is your folder of word very great didn't get you why again

00:21:44.860 --> 00:21:51.000
doing it others are good your next topic and you are looking different folder even different

00:21:52.240 --> 00:21:57.520
folder doing it wrong what is the word folder we created before it is not there create one

00:21:57.520 --> 00:22:06.800
mkdir mkdir space word can you convert no word yeah it's any name

00:22:07.780 --> 00:22:13.700
can you confirm docker compose install docker hyphen compose type in docker hyphen compose

00:22:13.700 --> 00:22:21.460
and version hyphen no space please not here after r no space hyphen space hyphen version

00:22:23.620 --> 00:22:28.840
space one space hyphen hyphen version where is docker compose i'm not sure what where

00:22:28.840 --> 00:22:32.660
do you very install docker compose okay can type in exit once again type in exit here

00:22:33.720 --> 00:22:41.520
type exit once only once please type in exit exit now run the command docker compose hyphen

00:22:41.520 --> 00:22:45.700
compose hyphen version center yes where did it create all the docker version before

00:22:46.760 --> 00:22:50.720
check the docker version check docker hyphen version in this location i charge

00:22:51.460 --> 00:22:55.400
charge very install docker which location do control c type in clear

00:22:56.560 --> 00:23:01.440
okay charge i'm not sure you need help us charge charge you need you need to let us know

00:23:01.440 --> 00:23:08.640
where you installed docker which machine which location others are good they proceed

00:23:10.320 --> 00:23:17.040
yes jone gene i think you're good yeah done it they're done no you must be in that folder

00:23:18.660 --> 00:23:26.620
the cd type in cd space word will be in your word folder wherever the docker compose file

00:23:26.620 --> 00:23:35.560
is there no no no cd space word w o r d yes there must be a location where you

00:23:35.560 --> 00:23:41.680
have written the yaml file here in this location now no no one second do ls

00:23:42.560 --> 00:23:46.220
do ls listed so you have to do any operation

00:23:46.220 --> 00:23:52.000
docker compose commands from this location with docker compose yes yes volumes

00:23:53.560 --> 00:23:59.480
yeah now it will terminate because because it needs to understand the location docker compose

00:23:59.480 --> 00:24:04.100
yaml either you're being the location or to copy the path of docker compose yaml so that

00:24:04.100 --> 00:24:09.020
it understands okay okay are we good whenever you have use case in enterprise in which you

00:24:09.020 --> 00:24:15.860
to create or integrate multiple containers to work together then you need to use docker compose

00:24:17.100 --> 00:24:23.220
but a single host is going to create all the single host machine the next topic so do you

00:24:23.220 --> 00:24:28.040
work on networking and volumes everyone do you work on volumes in storage in your projects

00:24:29.200 --> 00:24:35.980
yes now yeah yeah in your office do you work on volume storage generally not docker other

00:24:35.980 --> 00:24:43.960
knowledge of story do you work like so let me talk about volumes very please now there

00:24:43.960 --> 00:24:50.700
are different types of volumes so volumes means like a storage so you can have in the storage

00:24:50.700 --> 00:24:55.780
of the container right right now with it you can have the story the container outside the

00:24:55.780 --> 00:25:05.320
container on the force or you could have on the memory or other one is managed with docker

00:25:05.320 --> 00:25:13.340
so it means for example i can say to create a mapping onto a folder like tmp you define it

00:25:13.340 --> 00:25:19.060
this is called as a binary the other one what you write it created is your docker area so

00:25:19.060 --> 00:25:24.820
this will be under where the docker and the third one you could also take in a memory so

00:25:24.820 --> 00:25:31.160
to create the memory of the force so these are different options so tmpfs is temporary

00:25:31.800 --> 00:25:39.860
for memory and this is something which you cannot share between containers only for one container

00:25:41.020 --> 00:25:46.140
and this is only for docker linux it doesn't support docker for windows this is to have in

00:25:46.140 --> 00:25:52.440
the data outside the container on the host memory and this is only for temporary and

00:25:52.440 --> 00:26:00.040
you're going don't get additional charges for this because using memory of the force you

00:26:00.040 --> 00:26:07.580
mention the path on your host and this path would get mapped for example if you have mysql

00:26:07.580 --> 00:26:17.480
container and i can say to map it to a location like slash tmp on my host so what do you make

00:26:17.480 --> 00:26:22.360
changes in the container it could also get a copy in your tmp and even if we delete the

00:26:22.360 --> 00:26:27.740
container we still can delete the data from india it's a persistent this is based on

00:26:27.740 --> 00:26:33.820
docker volumes is what right now we saw an example it will create automatically under where

00:26:33.820 --> 00:26:39.880
lib docker and this is very much preferred because i can use the same volumes for windows

00:26:39.880 --> 00:26:46.680
or linux it doesn't depend on the file system and i can easily take backups manage because

00:26:46.680 --> 00:26:52.560
all docker base very easy to for you take a backup if you want to do a list of the volumes

00:26:52.560 --> 00:26:59.260
all these we can use docker commands so this is managed by docker very good it's as for

00:26:59.260 --> 00:27:03.160
both linux and windows you can share this volume with multiple containers

00:27:04.220 --> 00:27:09.080
and much more better performance rather than the bind what we talked about doing this

00:27:09.080 --> 00:27:14.200
you say docker volume create and give the name of the volume so docker volume create

00:27:14.200 --> 00:27:20.200
to create a docker volume and we want to use this same docker 1-19

00:27:21.660 --> 00:27:27.420
name of the this name of the container which what do you want to use this is the volume

00:27:27.420 --> 00:27:33.520
on your host there is a bit docker and this is getting mapped your container under off

00:27:33.520 --> 00:27:38.760
data centers here so this is your name of the container container name this is the

00:27:38.950 --> 00:27:47.810
image name this is your shell and this is your mapping on the host and this is on your

00:27:47.810 --> 00:27:52.230
container so whatever change i do in the container under off data center will also get

00:27:52.230 --> 00:27:58.430
copied onto my data inside my where lib docker anytime you can see what is in docker you can

00:27:58.430 --> 00:28:07.110
do a docker inspect the container or docker inspect the volume name you can see what exactly

00:28:07.110 --> 00:28:13.250
the volume details where it's getting created all the information docker inspect the container

00:28:13.250 --> 00:28:20.150
name you see that it has a volume name this where there's a mapped driver local and the

00:28:20.150 --> 00:28:27.430
properties you can create list the same document here you cannot remove it if you're getting

00:28:27.430 --> 00:28:37.090
used you might want to remove the containers first and then you can do it and we can also

00:28:37.730 --> 00:28:40.070
so let's go to docker volumes

00:28:42.110 --> 00:28:47.810
so you can see this let me use the keyboard docker storage this is your

00:28:49.110 --> 00:28:56.170
documentation body mount bind mounts gfms mount all these are testing so do you feel that

00:28:56.170 --> 00:29:02.050
this hands-on is required for you on volume you feel that it's required then we can do

00:29:02.050 --> 00:29:06.770
if you feel that's not required you can skip the laps just for you because i want to

00:29:06.770 --> 00:29:12.050
standards are more important for you all do you need hands-on on this or no

00:29:13.810 --> 00:29:16.430
please confirm do you want to do a lab on this

00:29:17.750 --> 00:29:27.010
so that is yes or no please okay okay okay okay fine but is the concept clear did we get in

00:29:27.010 --> 00:29:31.830
theory of it everyone can assume the record fine networking next topic uh

00:29:32.710 --> 00:29:38.530
do you want to have a break or do to continue the next topic okay fine now let me now talk

00:29:38.530 --> 00:29:45.670
about docker networking so what is docker networking so when you install docker

00:29:46.510 --> 00:29:52.790
it creates default networks so now example

00:29:52.790 --> 00:29:53.110
example

00:29:57.410 --> 00:30:04.870
if i say docker network ls you see it creates the default networks

00:30:06.430 --> 00:30:14.310
and the first network is a bridge second host and none local it means this is used only

00:30:14.310 --> 00:30:19.370
within the same machine without networking not across the missions all these networks

00:30:19.370 --> 00:30:26.710
within your same mission and this is your network id so now if i say docker inspect

00:30:27.950 --> 00:30:38.950
and if i say bridge now this would give an ip address you see here 172 17 0.16

00:30:40.810 --> 00:30:49.310
so this is the network from which containers get ip address so all the containers get attached

00:30:49.370 --> 00:30:56.830
to a gateway of this bridge the first one would get a gateway and all the containers would be

00:30:56.830 --> 00:31:03.430
attached to the same gateway and other container get 0 2 0 3 0 4 like this

00:31:03.430 --> 00:31:08.310
that is what the bridge network so in default we create your default networks or in your own

00:31:08.310 --> 00:31:17.510
networks in a bridge network so which we observed the network ranges 172 17 0.0

00:31:18.310 --> 00:31:27.250
so this will get an ip of 172 17.0.1 the first one this will get the second ip third ip

00:31:27.250 --> 00:31:33.490
fourth ip like this and they all connect to this gateway so gateway is that connection

00:31:33.490 --> 00:31:42.350
to a network are we good so this bridge network gives ips mac addresses all these

00:31:42.350 --> 00:31:48.670
for your containers and now when i do a docker inspect bridge you see that i can see all the

00:31:48.670 --> 00:31:56.530
containers listed see one two three i have three containers now and all these three are

00:31:56.530 --> 00:32:08.590
connected to the network are we good please confirm any doubts you can ask me now let's

00:32:08.590 --> 00:32:16.170
inspect our container and say docker inspect the first container

00:32:39.630 --> 00:32:47.210
and you see the content gets ip address it gets a mac address and comes to a gateway

00:32:49.350 --> 00:32:55.150
so this is how what you're talking about using networking components so this is what

00:32:55.150 --> 00:32:59.450
your bridge network provides any questions if you feel that not clear you can ask me because

00:32:59.450 --> 00:33:03.390
we have to proceed silence sometimes doesn't make me understand if you're good or not

00:33:03.390 --> 00:33:07.190
which which format

00:33:21.670 --> 00:33:26.530
so docker space inspect space the container name or the id

00:33:30.530 --> 00:33:33.170
and in that i go and see the network portions

00:33:42.910 --> 00:33:49.170
yes so your question is can we modify network of network for containers is that a question

00:33:50.410 --> 00:33:58.930
it depends on your depends on your organization sometimes they say that if you want to this is

00:33:59.630 --> 00:34:07.610
but tomorrow you might get a requirement that your container application has to be on a specific

00:34:07.610 --> 00:34:12.370
network range that is they might ask that you need to have a container in this range for example

00:34:13.370 --> 00:34:17.710
getting it so tomorrow then you have to create a new network

00:34:18.970 --> 00:34:28.010
and then create a content in that network of 192 yeah if you don't change the default it gets

00:34:28.010 --> 00:34:33.670
132 this range what i just showed you but in case if you want to contain us in different network

00:34:34.450 --> 00:34:41.670
then you have to say talker network create create a network in that frame and then get a

00:34:41.670 --> 00:34:48.810
container inside it that's my answer so in default is not required it comes automatically

00:34:48.810 --> 00:34:54.410
but still if you want you create a user defined network you create something like this

00:34:55.510 --> 00:34:58.790
i'll show you how to do it also so in default it looks something like this

00:34:59.670 --> 00:35:02.950
so docker zero is the network which does all these in the default

00:35:04.230 --> 00:35:08.430
and all these containers they can ping to each other because they all are connected the same

00:35:08.430 --> 00:35:13.730
gateway so example all these three can ping to each other because they all belong to same

00:35:13.730 --> 00:35:24.030
network so how do you do it you can check it for example i have in docker ps i'll log

00:35:24.030 --> 00:35:33.650
in the first container i'll so log into or i'll the first container docker exact hyper 19

00:35:34.510 --> 00:35:40.430
and then hopeful so any first good ip of each one let's do the ip of each one

00:35:41.490 --> 00:35:52.590
so i'll do a docker inspect bridge for example and his ips so 17234 so hopeful is 4 from this

00:35:52.590 --> 00:36:00.830
i'm going to ping to 17.03 that's my use case so i'm going to log in and don't ping to 172

00:36:01.710 --> 00:36:14.990
in here so i'll say docker exact hyper 19 hopeful underscore bore and i'm going to say bash

00:36:16.450 --> 00:36:21.210
i'm going to use apt update again with install ping utility at install ping utility

00:36:23.810 --> 00:36:31.490
and then i install ip utils hyphen ping so i'm ping in here

00:36:35.250 --> 00:36:43.650
and now i do a ping five times for example to 172 17 0.3

00:36:45.210 --> 00:36:52.210
i'm going to ping because they are in the same network because they all connect the same gateway

00:36:52.870 --> 00:36:56.050
they have to ping to each other are we clear

00:36:58.230 --> 00:37:04.950
this is how the default works but sometimes you might want to get a own network might be you

00:37:04.950 --> 00:37:07.910
want to contain this different network that's a use case of your organization

00:37:08.550 --> 00:37:17.670
so for doing that we create networks what you create networks by yourself are called as user

00:37:17.670 --> 00:37:22.250
defined networks because create a network by default you can create a bridge network

00:37:22.250 --> 00:37:27.850
those are called as user defined networks let me show you how you do this so user defined

00:37:27.850 --> 00:37:35.070
networks is the network which you create to create a network so example if you want to

00:37:35.070 --> 00:37:45.230
network you can say docker network create and we can give a subnet screen you can subnet i can

00:37:45.230 --> 00:37:57.090
say subnet equals like 192 168.0 and you also need to put the gateway so get rid of the

00:37:57.090 --> 00:38:08.550
IP equals 192 168 the first IP in this 0.1 and then you need to mention network name network

00:38:09.730 --> 00:38:17.690
one so what will happen the clear network name network one with this subnet and this gateway

00:38:18.530 --> 00:38:23.970
really and then i can create continuous network let me show a small example so

00:38:24.230 --> 00:38:30.710
own networks i can say docker network create and i give a subnet

00:38:32.370 --> 00:38:40.150
and i can say 192 168.0.0 slash 16 and the first IP

00:38:41.810 --> 00:38:49.170
would be 192 168.0.1 and then i give a network name that network one

00:38:49.170 --> 00:38:59.670
network is created how do i confirm i do a docker network ls let me make this form become much

00:38:59.670 --> 00:39:15.650
more bigger are you able to see it clearly the font is good

00:39:18.570 --> 00:39:27.790
okay make it bigger still for the 16 i can make it to 18 and select okay

00:39:30.550 --> 00:39:34.310
so do network are created so i can now do a docker

00:39:34.310 --> 00:39:39.550
inspected network one and you see it got ip in this range

00:39:42.540 --> 00:39:49.940
okay so you want to continue this network what i do i would say docker run hyphen d

00:39:51.620 --> 00:39:59.860
and i can say give a name for the container new and i can mention network name

00:40:01.680 --> 00:40:05.220
as network one and then the image

00:40:09.080 --> 00:40:09.680
okay

00:40:09.680 --> 00:40:16.580
let me create a container with name new in this network and now i'll do a docker

00:40:16.580 --> 00:40:23.980
inspect the name of the container and you will see the container got ip in that range

00:40:26.600 --> 00:40:27.500
are we clear

00:40:33.560 --> 00:40:39.600
so we can create any networks any range i can contain them these are called as user defined

00:40:39.600 --> 00:40:48.760
networks others are we getting it what is defined and user defined networks

00:40:49.740 --> 00:40:53.280
we're going to do a lab i want to give some time for a lab just observe right now

00:40:53.340 --> 00:40:59.660
here we have a lab now just observe right now here at lab time what you can do it

00:41:01.280 --> 00:41:06.560
so what you can do it's up to you okay now the next one learned about what is user defined

00:41:06.560 --> 00:41:15.240
so now if i have two networks right now in your host can this and this communicate now

00:41:15.240 --> 00:41:20.300
this is my machine which have two networks this is network one and this is network two

00:41:21.030 --> 00:41:27.090
a container this c1 and c2 can they communicate can they ping each other what do you think

00:41:28.450 --> 00:41:33.930
in default okay clear everyone please try to answer the two networks network one and network

00:41:34.910 --> 00:41:47.190
two can they communicate each other and networks so in case if you want to allow them to

00:41:47.190 --> 00:41:55.650
communicate we have to use something called docker network connect so you can allow them

00:41:55.650 --> 00:42:01.810
to communicate by using docker network connect wherein you can mention that you want this

00:42:01.810 --> 00:42:10.210
container we have c1 and if you have c2 and c3 for example in this network you can say to

00:42:10.770 --> 00:42:18.210
c1 to these so once you save this c1 would get a secondary ip in this range

00:42:19.850 --> 00:42:25.090
so you say docker network connect c1 with this network network one

00:42:26.870 --> 00:42:33.010
the c1 would get a secondary ip in this range and they can connect to each other so what i'm

00:42:33.010 --> 00:42:38.350
saying let me draw and i'll explain and this is my host machine right now i have two networks

00:42:39.990 --> 00:42:49.290
network one and i have network two i have two containers in this c1 and c2 and i have c3 and

00:42:49.290 --> 00:42:58.870
c4 in this network to four containers this network range is 192 168 0.0 star 16 and this

00:42:58.870 --> 00:43:05.990
network range could be something like this but these two from this they communicate

00:43:07.110 --> 00:43:10.450
but this cannot communicate with this because we don't have a network

00:43:11.710 --> 00:43:16.150
but my use case is can i communicate from this to this yes you can do it for that

00:43:16.150 --> 00:43:22.390
you say a command docker network connect we cannot mention the complete bridge we have

00:43:22.390 --> 00:43:28.830
to mention the container name c1 and say that i want to enter network two

00:43:28.830 --> 00:43:35.410
rather than this command once you run this command c1 would also get an ip in this range

00:43:36.130 --> 00:43:44.090
so it'll have a secondary ip in this range of c3 and c4 and c1 c3 c4 they all can communicate

00:43:44.090 --> 00:43:48.370
each other that's what we're talking about docker network connect okay i want you to do the

00:43:48.370 --> 00:43:58.970
lab together now of can do a lab seven first everyone yourself to lab yes okay yes yes one

00:43:58.970 --> 00:44:05.610
by one then get you one by one see i cannot the docker network connect syntax does not have

00:44:05.610 --> 00:44:11.150
bridge you have to mention you cannot mention network name there permission syntax so you do

00:44:11.150 --> 00:44:19.130
a docker network connect okay example the just syntax so the syntax says you have to use

00:44:19.130 --> 00:44:25.370
a net one network other side container i cannot mention both network names getting it yes

00:44:26.950 --> 00:44:32.450
yes yes i can mention one container other it doesn't have a lot of network and network

00:44:32.450 --> 00:44:38.530
communication so so what will happen this container will get type in this and then we

00:44:38.530 --> 00:44:44.710
can connect it okay now i want to play around take some time do a lab seven first yourself

00:44:45.490 --> 00:44:52.010
the lab seven in which you create a network play around the lab seven first then you'll do

00:44:52.010 --> 00:44:55.290
a lot or if you're good at laughing you can add a lab eight are you good with basics

00:44:55.290 --> 00:44:59.570
do you understand what it is okay that into a lab eight everyone yeah let's do a lab eight

00:44:59.570 --> 00:45:06.990
as you'd love it okay so go ahead and create a network bridge bridge one it'll pick up some

00:45:06.990 --> 00:45:15.490
range and inside this you create two containers using run hyphen it and try to ping each other

00:45:15.490 --> 00:45:21.810
okay i want you to do this lab yes let's do this do this let me know any questions

00:45:22.510 --> 00:45:28.070
lab eight yourself the two network bridge one and bridge two and allowing container from

00:45:28.070 --> 00:45:36.090
network to communicate other containers in the other bridge network please do lab eight

00:45:58.190 --> 00:46:02.110
one more method to create container you'll be inside it you want to come out of it

00:46:02.110 --> 00:46:21.430
and try to play around yes thank you for which one share for sapienta same batch

00:46:28.130 --> 00:46:29.030
when is it

00:46:35.550 --> 00:46:40.350
20th can we do this before because i might be in different training

00:46:44.730 --> 00:46:52.150
so dan 20th is monday yeah i think yes yeah we can yeah we can do it on monday because

00:46:52.330 --> 00:46:56.710
tuesday i have training so on monday i don't have is it confirmed

00:47:00.090 --> 00:47:03.850
sir we are looking for some things so much effort is required so they say

00:47:03.850 --> 00:47:09.230
minimum but they ask so much of questions others are awesome right told us at least

00:47:09.230 --> 00:47:17.830
look into now something we can i think last time we did for 30 correct 28 28 at least

00:47:17.830 --> 00:47:21.750
if you make 32 would be good sir so i can get you a business fee i'll do because the

00:47:21.750 --> 00:47:29.650
government this will take so much they ask for this is called understand but they ask for more

00:47:29.650 --> 00:47:36.430
thanks let's see yeah see what we can do 28 can you at least make it 32 see

00:47:43.030 --> 00:47:46.790
okay see the account you'll provide me in like last time

00:47:47.670 --> 00:47:56.870
yes look at the best one what if you can and let me know but i'm available is it confirmed

00:47:56.870 --> 00:48:06.070
now no yes okay that all right thank you so actually yeah are we good we're done

00:48:13.370 --> 00:48:20.110
yeah i think ck is done yes ck understood so c1 also this is the IP

00:48:21.530 --> 00:48:26.610
in the other network range and hence they have been to each other hope you're getting it

00:48:26.610 --> 00:48:31.350
you understand are you clear what to do with the lab you're understanding the problem

00:48:32.730 --> 00:48:42.170
sure thank you so after we're doing lab eight by five we can do offline we're doing lab eight

00:48:42.170 --> 00:48:47.770
after lab four the doctor composed we're doing lab eight we're understanding what the concept

00:48:49.510 --> 00:48:57.050
understood the lab okay thank you yes jun what about you ck yeah this is how

00:48:57.960 --> 00:49:03.900
we can use so you can either use the default network or we can create different networks

00:49:04.440 --> 00:49:10.820
you can also allow different networks to get communicated this is all the different things

00:49:10.820 --> 00:49:14.980
which you can use you know bridge network but all these containers must be on the same

00:49:14.980 --> 00:49:20.760
host you cannot use this across different host machines now what's

00:49:20.950 --> 00:49:30.090
the host network for example it doesn't have any specific network range so let me do

00:49:30.090 --> 00:49:37.230
instantly if i say docker network ls and if i say docker inspect

00:49:39.350 --> 00:49:47.090
the host it doesn't come with any network range so what exactly does it do so when

00:49:47.090 --> 00:49:52.450
you do any operations of containers they normally go through the host interface

00:49:53.250 --> 00:49:57.710
so example in linux we use if conflict to check a network in configurations

00:49:58.370 --> 00:50:03.270
so install it so i'll say apt install net hyphen tools

00:50:16.290 --> 00:50:16.970
so

00:50:16.970 --> 00:50:24.090
and now if i say if config so if config is a command in linux to see all the network

00:50:24.090 --> 00:50:29.570
configurations of a nick card so you will have the primary interface card which is

00:50:29.570 --> 00:50:31.130
the primary ip

00:50:33.010 --> 00:50:40.790
and you'd also would see docker zero it's a default network and you see lots of interfaces

00:50:41.410 --> 00:50:42.130
you go down

00:50:45.150 --> 00:50:52.690
you see interfaces one two three all these so host network is just like an interface on

00:50:52.690 --> 00:50:58.090
every host machine using the container gets communicated yeah so when you want to go to

00:50:58.090 --> 00:51:03.710
or something we have to put the host network that you're talking about in here it's just

00:51:03.710 --> 00:51:07.470
a network on the host through the traffic goes to outside world so what i'm saying

00:51:07.470 --> 00:51:14.970
in here let me draw that and explain this is your host machine and this is your container

00:51:15.530 --> 00:51:20.530
you will be having some ports exposed on a container and some ports on your host

00:51:21.290 --> 00:51:25.070
that's it that's what talking about is a host networks like the example which

00:51:25.070 --> 00:51:32.990
did by blocker one hyphen d hyphen b 8080 so mapping explicitly that it has to go through

00:51:32.990 --> 00:51:38.030
port number 80 and then reach the port number 80 or the container for that particular host

00:51:38.030 --> 00:51:45.590
networks not much use more non-network we use wherein you want to create a container

00:51:45.590 --> 00:51:53.230
which must not communicate with other containers in a network so for example i want to save

00:51:53.230 --> 00:52:00.010
some critical information some could be some critical image i want to save i don't want

00:52:00.010 --> 00:52:07.170
anyone else to access it directly so we can create a standalone container that is called

00:52:07.170 --> 00:52:14.350
as a non-network so in this you can mention network as none or net none so example if i

00:52:14.610 --> 00:52:24.430
network i say docker one hyphen d and i can do net short form like a net or i can use network

00:52:25.170 --> 00:52:32.810
and if i say none and then the image name so i'm getting a container the specific name

00:52:32.810 --> 00:52:44.110
i can also use a name from a container so let's say new or test so my name of the

00:52:44.110 --> 00:52:51.930
container is test okay in the back end network is none the image name is engineering it got

00:52:51.930 --> 00:53:01.130
created so now if i do a docker inspect of this container which is name is test

00:53:02.030 --> 00:53:08.970
this will not have any ips you see that it has no ips it has no gateway it means

00:53:08.970 --> 00:53:19.190
this is like a standalone yeah so now let's log into this so i'll say docker ps and i will say

00:53:20.210 --> 00:53:38.950
docker exit and then i would say docker exit hyphen it test and then i'll log in the

00:53:38.950 --> 00:53:45.110
because there's no network this is isolated are you getting it what's non-network

00:53:49.070 --> 00:53:50.010
everyone

00:53:51.990 --> 00:53:53.870
what is none

00:53:57.430 --> 00:54:02.610
so non-network the network in which containers cannot communicate to outside world

00:54:02.610 --> 00:54:06.530
completely isolated for that purpose we use a non-network

00:54:08.470 --> 00:54:15.250
so you want to do this step it's a small step you can do yourself so go ahead and run this

00:54:17.630 --> 00:54:26.030
command do yourself small example run this command like this it's get the container

00:54:26.030 --> 00:54:32.110
you can say docker run hyphen d the name of the container is test and give the network

00:54:34.050 --> 00:54:44.090
as this you can do none and engineering yes run this command get a container which is

00:54:44.090 --> 00:54:49.990
name is test log into it and see whether it do update not work because they put on that

00:54:50.790 --> 00:54:57.430
you have to use the shell the end ck docker exec hyphen i t the container name and the shell

00:54:57.430 --> 00:55:07.850
bash bash was missing space bash others have a good gene chance the chance what happens is

00:55:07.850 --> 00:55:13.990
when you do exit in a container it gets stopped so you have to properly come out by

00:55:13.990 --> 00:55:17.430
doing the control pq start the container

00:55:21.190 --> 00:55:27.350
gene ck and any questions okay thank you yes team this is our networking we talk about

00:55:27.350 --> 00:55:33.410
bridge network with the default ones we can use the default networks we can also create

00:55:33.410 --> 00:55:40.270
our own bridge networks we learned about how we can create your different user defined networks

00:55:40.910 --> 00:55:47.050
how we can connect between different networks also in very brief about what is host network

00:55:47.050 --> 00:55:54.590
the last one is non-network yeah this is our networking okay uh

00:55:56.470 --> 00:56:02.870
now you're good to continue team i won't so or you need a quick break or something

00:56:02.870 --> 00:56:06.550
misunderstanding for your end are you good do you need a coffee quick coffee break or

00:56:06.550 --> 00:56:15.210
what are you all saying anything is okay you decide yes june charles you need a break

00:56:16.890 --> 00:56:19.590
okay so you need a break now is that

00:56:21.290 --> 00:56:27.590
okay how much time you require 10 minutes okay so break for 10 minutes

00:56:27.720 --> 00:56:37.960
yes are you back okay thank you interesting or difficult

00:56:39.600 --> 00:56:46.180
so fast the reason i keep on asking is it okay we don't speak so how do i cannot see you all

00:56:46.180 --> 00:56:50.240
you hope you understand correct if you are able to respond if i see you they understand

00:56:50.920 --> 00:56:54.440
the reason i keep on asking questions okay okay

00:56:54.510 --> 00:57:02.070
uh but are you able to are you learning new things today okay okay others what do you feel

00:57:02.070 --> 00:57:09.830
how's it going for so good okay what about you charles okay okay okay so what happens is do

00:57:09.830 --> 00:57:14.910
you log into linux every day do log on do you work on linux machines on a daily basis

00:57:16.510 --> 00:57:23.590
okay you work more on windows is that might be that reason uh so for if you want to learn

00:57:23.590 --> 00:57:31.210
containers and kubernetes you need to be good with linux for sure yeah and my reason

00:57:31.210 --> 00:57:38.050
so i'm sure so once you start practicing the labs yourself later also you must be

00:57:38.050 --> 00:57:45.790
well good enough to for the speed also okay i think next topic about container orchestration

00:57:46.590 --> 00:57:54.190
so what could this tell me what could the meaning of container orchestration what do you think

00:57:54.190 --> 00:58:03.030
this would be anyone just trying this on the trial anyone okay now right now we are using

00:58:03.030 --> 00:58:09.090
one machine correct we have one docker host machine and in which we have in some containers

00:58:09.090 --> 00:58:15.090
now if this is a very it is running very critical application and if this machine goes

00:58:15.090 --> 00:58:21.490
on and the user trying to access the user is trying to access the application the user cannot

00:58:21.490 --> 00:58:26.470
access the application right now because it's down so what can you do you could done something

00:58:26.470 --> 00:58:32.670
better before it said before the application went down what what would you do in this case

00:58:32.670 --> 00:58:37.890
the host is down so user cannot access so what can you do so you could done something

00:58:37.890 --> 00:58:43.870
better before the application went down. What is the thing I am talking about? How would

00:58:43.870 --> 00:58:51.850
have you improved design of this? You could have done a much more better design. So we

00:58:51.850 --> 00:58:57.930
need to looking for HA is missing in here. So in enterprises we cannot just use one.

00:58:57.930 --> 00:59:06.490
We have to use multiple backend machines. One, two, three, like this. And these are

00:59:07.030 --> 00:59:16.550
also referred as Booker nodes, worker or slave nodes. And these nodes are meant to

00:59:16.550 --> 00:59:21.330
run your application. So I have the applications running inside this. So I

00:59:21.330 --> 00:59:27.630
would be installing Docker on all the boxes. One, two and three and then I

00:59:27.630 --> 00:59:44.430
create containers. Is this better? Do you agree everyone? Now you are working in a company and it is not, so if you are supporting this application yourself, it is not a good practice to log in to these directly because this consists of sensitive information.

00:59:45.490 --> 00:59:57.610
So if you are a developer or if you are an infra, you cannot do like this. So you need to do any operations using one more interface called as a master.

00:59:57.610 --> 01:00:13.130
So when you want, for example, you would say that I want to do Docker run. What are commands? You would do it on the master. And this master also called as manager. It will have in containers, which is for management.

01:00:14.670 --> 01:00:17.630
And that will manage these backend machines.

01:00:18.670 --> 01:00:31.010
So even in this you have Docker. In this you have Docker, all these things. So this type of management in which you have a master and the backend machines is called as container orchestration.

01:00:31.070 --> 01:00:43.370
Getting it? Everyone makes sense? Container orchestration is something like this in which you have a master to which you would log in and do operations and the master is connected to the backend machines or slave machines.

01:00:43.370 --> 01:00:53.450
And each of the content engine, it means like Docker, Docker, Docker and Docker.

01:00:54.390 --> 01:01:05.090
And we'll have the applications or the containers inside these, these are the containers. So these are application containers and these are your management containers.

01:01:06.110 --> 01:01:15.810
And you would say Docker run or any operations on the master in master in turn decides where to create the backends.

01:01:17.170 --> 01:01:27.750
So this type of master slave using which you manage your live environments like load balancing, scaling for all these are required for your live workloads.

01:01:28.830 --> 01:01:40.870
So we use software, like example, Kubernetes, use Docker Swarm, use Vsauce or cloud native like ECS to do manage something like this.

01:01:42.690 --> 01:01:49.250
So Docker Swarm is native or Docker. It means an uncertainty Docker. If all are Docker, Docker, Docker, then you can use Docker Swarm.

01:01:50.270 --> 01:01:53.590
Or you can also use Kubernetes. Both you can use.

01:01:53.590 --> 01:01:56.630
But if this is using Docker, for example.

01:01:58.390 --> 01:02:00.890
And if this using container D.

01:02:01.830 --> 01:02:04.070
Using different platform when the containers rocket.

01:02:05.350 --> 01:02:11.090
I cannot use Docker Swarm. So Docker Swarm works only for everything using Docker.

01:02:12.190 --> 01:02:15.850
The mix of different platforms and containers, Docker Swarm cannot be used.

01:02:15.850 --> 01:02:17.110
Are we good?

01:02:18.910 --> 01:02:20.450
Why container orchestration?

01:02:21.690 --> 01:02:23.430
And how does it look? Any questions?

01:02:24.210 --> 01:02:27.510
So now let's go and check. If I do a Docker info.

01:02:28.230 --> 01:02:32.030
So Docker Swarm is native. We're not getting into it, but just showing you for Docker Swarm. What does it look?

01:02:33.250 --> 01:02:34.170
So now.

01:02:34.690 --> 01:02:39.290
If I do a Docker info and the info you would see a command.

01:02:40.910 --> 01:02:44.070
Or parameter call as Swarm.

01:02:44.070 --> 01:02:46.070
It says form inactive.

01:02:46.930 --> 01:02:48.470
So Docker Swarm.

01:02:48.770 --> 01:02:53.690
The orchestration software is already installed inside your Docker.

01:02:55.810 --> 01:02:56.830
Not activated.

01:02:58.150 --> 01:03:02.770
So now if you want to make this a manager, for example.

01:03:05.170 --> 01:03:09.310
I will go ahead and say Docker Swarm.

01:03:10.270 --> 01:03:11.450
And in it.

01:03:11.450 --> 01:03:14.270
So now this will become the manager.

01:03:16.090 --> 01:03:17.330
And it will give you a token.

01:03:18.130 --> 01:03:22.210
You have to run it on the other machines where you install Docker.

01:03:23.470 --> 01:03:25.650
And that will become the client machines.

01:03:26.150 --> 01:03:26.970
This is how we get started.

01:03:27.690 --> 01:03:29.330
So you generate a token.

01:03:29.630 --> 01:03:30.670
One of the machines.

01:03:31.610 --> 01:03:32.450
And we're going to master.

01:03:33.290 --> 01:03:35.930
It creates a configuration. For example, we do a Docker network.

01:03:35.930 --> 01:03:37.670
As you can see in the back end.

01:03:38.830 --> 01:03:39.270
Ingress.

01:03:39.690 --> 01:03:40.470
There are some bridges.

01:03:41.810 --> 01:03:42.890
They create some containers.

01:03:44.050 --> 01:03:45.070
Required to do some operations.

01:03:46.610 --> 01:03:48.290
As well as your networks.

01:03:49.850 --> 01:03:51.530
And they have connectivity to the back ends.

01:03:51.770 --> 01:03:54.250
So you need to go and run this token on the back end machines.

01:03:54.590 --> 01:03:55.230
They get connected.

01:03:56.610 --> 01:03:57.310
This is what we do.

01:03:57.830 --> 01:03:59.810
But Docker Swarm does not have much features.

01:04:00.410 --> 01:04:01.770
Not much scalability.

01:04:02.630 --> 01:04:04.570
And hence we use Kubernetes a lot.

01:04:04.570 --> 01:04:07.670
So Docker Swarm gives you very, very minimal capabilities.

01:04:08.350 --> 01:04:10.350
For managing and container orchestration.

01:04:10.570 --> 01:04:11.470
Not much capabilities.

01:04:12.530 --> 01:04:13.550
So you want to use Kubernetes.

01:04:16.950 --> 01:04:17.290
Okay.

01:04:17.510 --> 01:04:19.330
Team, I would like to understand.

01:04:19.330 --> 01:04:20.250
I'll be good.

01:04:21.650 --> 01:04:22.750
So I can proceed.

01:04:28.150 --> 01:04:30.690
I'm talking this one very generic right now.

01:04:30.790 --> 01:04:33.350
I'm not putting into any Kubernetes or Docker Swarm right now.

01:04:33.350 --> 01:04:35.070
In master.

01:04:35.510 --> 01:04:36.350
Or the manager.

01:04:37.050 --> 01:04:38.310
What are the important components?

01:04:39.810 --> 01:04:41.730
One important component is a database.

01:04:42.050 --> 01:04:42.650
Key value store.

01:04:43.610 --> 01:04:44.330
So in Amazon.

01:04:44.550 --> 01:04:45.490
We all use Amazon?

01:04:47.270 --> 01:04:48.270
Do you all work on Amazon cloud?

01:04:50.050 --> 01:04:50.430
Or no?

01:04:50.810 --> 01:04:51.250
Everyone?

01:04:52.270 --> 01:04:53.610
So do you all know what's DynamoDB?

01:04:55.650 --> 01:04:56.650
Do we know the DynamoDB?

01:04:57.850 --> 01:04:58.430
We don't?

01:04:58.610 --> 01:04:59.130
Or yes?

01:04:59.410 --> 01:04:59.770
Okay.

01:05:00.030 --> 01:05:01.730
Are you all aware of NoSQL database?

01:05:01.850 --> 01:05:02.650
NoSQL database?

01:05:02.650 --> 01:05:03.170
Yes.

01:05:03.690 --> 01:05:05.230
Like MongoDB.

01:05:05.870 --> 01:05:08.250
So in any of the masters.

01:05:08.430 --> 01:05:09.970
The database what we use.

01:05:10.330 --> 01:05:11.030
Would be a Mongo.

01:05:11.090 --> 01:05:12.970
Something like MongoDB.

01:05:13.630 --> 01:05:16.410
This database consists of all the configurations.

01:05:16.610 --> 01:05:18.250
Or metadata of a cluster.

01:05:19.790 --> 01:05:20.810
That's a key value store.

01:05:21.070 --> 01:05:23.090
In Amazon Kubernetes we use ETCT.

01:05:23.330 --> 01:05:24.430
So we're going to generate right now.

01:05:24.450 --> 01:05:25.810
So you'll be having a database.

01:05:26.230 --> 01:05:26.970
In your master.

01:05:27.290 --> 01:05:28.090
This one component.

01:05:28.270 --> 01:05:29.630
Which can consist of the metadata.

01:05:29.690 --> 01:05:30.350
Of the cluster.

01:05:30.990 --> 01:05:32.430
Not the actual metadata.

01:05:32.830 --> 01:05:33.170
But the data.

01:05:34.770 --> 01:05:36.750
And other important components of the master.

01:05:36.830 --> 01:05:37.650
Is the scheduler.

01:05:37.730 --> 01:05:38.310
For example.

01:05:38.330 --> 01:05:39.250
This is your schedule.

01:05:39.530 --> 01:05:40.310
Master component.

01:05:41.070 --> 01:05:42.610
These are your backend measures.

01:05:44.510 --> 01:05:45.290
We'll have one more.

01:05:45.450 --> 01:05:46.790
We'll talk about it in detail later.

01:05:46.950 --> 01:05:48.130
We'll also have an API.

01:05:50.530 --> 01:05:52.730
So now we'll use KSK errors.

01:05:54.110 --> 01:05:55.590
I have three working nodes.

01:05:57.090 --> 01:05:59.290
And you are a DevOps engineer.

01:05:59.290 --> 01:06:02.630
Now this is using SSD hard disk.

01:06:02.890 --> 01:06:05.350
This is using HDD.

01:06:05.570 --> 01:06:06.470
And using HDD.

01:06:06.610 --> 01:06:08.330
Now if you want to deploy.

01:06:09.270 --> 01:06:09.750
Database.

01:06:10.250 --> 01:06:11.510
Would you prefer one.

01:06:11.550 --> 01:06:11.950
Two.

01:06:12.150 --> 01:06:12.410
Or three.

01:06:12.650 --> 01:06:13.950
A question for you all.

01:06:14.250 --> 01:06:15.150
If you want to create.

01:06:15.390 --> 01:06:16.770
Deploy database container.

01:06:17.550 --> 01:06:18.230
On this.

01:06:18.670 --> 01:06:18.910
This.

01:06:18.990 --> 01:06:19.890
Which one you will choose.

01:06:20.470 --> 01:06:20.790
And buy.

01:06:20.890 --> 01:06:21.810
You'll agree.

01:06:22.810 --> 01:06:23.110
SSD.

01:06:23.830 --> 01:06:25.190
Because of the performance.

01:06:26.330 --> 01:06:27.530
So what you can do is.

01:06:27.530 --> 01:06:29.330
You can define a label in this.

01:06:29.350 --> 01:06:30.590
You define a label.

01:06:30.970 --> 01:06:33.010
This equal to SSD on this.

01:06:33.970 --> 01:06:35.750
And this label information.

01:06:36.270 --> 01:06:38.710
Would be remembered by the backend.

01:06:40.010 --> 01:06:40.530
One minute.

01:06:40.710 --> 01:06:41.850
I'm getting a call from managed.

01:06:41.970 --> 01:06:42.350
One second.

01:06:42.570 --> 01:06:43.130
Hi Shekhar.

01:06:45.770 --> 01:06:46.330
Shekhar.

01:06:46.670 --> 01:06:48.490
When are you back to Chennai.

01:06:48.790 --> 01:06:50.810
Till when are you in Chennai.

01:07:01.070 --> 01:07:02.190
All right.

01:07:02.290 --> 01:07:02.690
That's it.

01:07:02.810 --> 01:07:03.110
I got it.

01:07:03.130 --> 01:07:03.790
Thank you.

01:07:05.330 --> 01:07:05.710
Yeah.

01:07:06.690 --> 01:07:08.430
So I define the label in here.

01:07:09.230 --> 01:07:11.590
And this label would be remembered by the database.

01:07:11.670 --> 01:07:13.050
So now when you say.

01:07:13.530 --> 01:07:14.530
To run a container.

01:07:15.250 --> 01:07:16.570
Where DB SSD.

01:07:17.330 --> 01:07:18.850
The request goes to.

01:07:18.870 --> 01:07:20.110
The schedule API.

01:07:20.110 --> 01:07:20.790
The scheduler.

01:07:21.530 --> 01:07:24.230
The scheduler doesn't understand what is this.

01:07:24.230 --> 01:07:24.910
The metadata.

01:07:25.550 --> 01:07:27.310
So this metadata would be understood.

01:07:27.390 --> 01:07:28.670
By the key value database.

01:07:30.030 --> 01:07:31.970
And this key value would say that.

01:07:32.090 --> 01:07:32.950
There is a node.

01:07:33.850 --> 01:07:34.650
Of node one.

01:07:34.790 --> 01:07:36.370
Where you have in a label.

01:07:37.610 --> 01:07:38.950
And the scheduler will decide.

01:07:39.690 --> 01:07:40.430
They have agents.

01:07:40.890 --> 01:07:41.750
Inside this.

01:07:42.370 --> 01:07:44.610
That agent would create the container.

01:07:44.750 --> 01:07:45.710
In this node.

01:07:47.110 --> 01:07:48.270
So it means that.

01:07:48.450 --> 01:07:49.890
You can use some labels.

01:07:49.890 --> 01:07:51.270
Or you can do.

01:07:51.530 --> 01:07:52.490
Using some policies.

01:07:52.910 --> 01:07:53.710
Using which.

01:07:54.190 --> 01:07:55.170
You can define.

01:07:55.370 --> 01:07:57.150
Where you want to run your workloads.

01:07:57.870 --> 01:07:59.990
And that is defined by scheduler.

01:08:00.310 --> 01:08:00.990
And it works.

01:08:01.310 --> 01:08:02.450
With other components.

01:08:03.870 --> 01:08:04.370
Getting it.

01:08:04.490 --> 01:08:05.890
What about scheduler.

01:08:07.050 --> 01:08:07.630
In our presentation.

01:08:07.770 --> 01:08:08.350
Small example.

01:08:08.770 --> 01:08:09.890
This is one example.

01:08:10.110 --> 01:08:10.910
Of schedulers.

01:08:12.030 --> 01:08:12.670
Third one.

01:08:12.690 --> 01:08:13.550
Which is important.

01:08:13.970 --> 01:08:14.630
In a cluster.

01:08:14.810 --> 01:08:15.550
They are going to have.

01:08:15.630 --> 01:08:16.410
Three nodes.

01:08:18.090 --> 01:08:18.890
The network.

01:08:19.190 --> 01:08:19.550
Which we use.

01:08:19.710 --> 01:08:20.450
Bridge networks.

01:08:21.410 --> 01:08:22.150
Can we use.

01:08:22.150 --> 01:08:22.790
Bridge networks.

01:08:22.890 --> 01:08:23.450
To communicate.

01:08:23.490 --> 01:08:24.530
From this to this.

01:08:24.770 --> 01:08:25.250
This to this.

01:08:25.290 --> 01:08:25.930
Is it possible.

01:08:26.570 --> 01:08:27.190
Yes or no.

01:08:27.270 --> 01:08:27.830
Can I use.

01:08:27.850 --> 01:08:28.510
Bridge network.

01:08:28.630 --> 01:08:29.070
To communicate.

01:08:29.270 --> 01:08:29.830
From this container.

01:08:29.870 --> 01:08:30.530
To this container.

01:08:31.010 --> 01:08:31.750
And this to this.

01:08:32.510 --> 01:08:32.990
What do you think.

01:08:33.130 --> 01:08:33.930
This thing was answered.

01:08:37.150 --> 01:08:37.410
You see.

01:08:37.490 --> 01:08:38.110
What is scope.

01:08:38.250 --> 01:08:39.410
It is.

01:08:42.390 --> 01:08:42.790
Local.

01:08:43.470 --> 01:08:43.990
It means.

01:08:43.990 --> 01:08:45.050
I cannot use.

01:08:45.210 --> 01:08:45.830
The default.

01:08:46.090 --> 01:08:46.750
Docker network.

01:08:46.950 --> 01:08:47.530
Of bridge network.

01:08:47.610 --> 01:08:48.510
For this network.

01:08:48.710 --> 01:08:49.110
Are you getting it.

01:08:49.110 --> 01:08:49.970
I cannot use this.

01:08:50.010 --> 01:08:51.270
So we have to create.

01:08:51.330 --> 01:08:52.190
A layer 3 network.

01:08:53.650 --> 01:08:54.710
So what is OSI.

01:08:54.930 --> 01:08:55.970
Whatever OSI layer.

01:08:56.090 --> 01:08:56.990
What is OSI.

01:08:58.210 --> 01:08:59.390
What about OSI.

01:08:59.410 --> 01:08:59.790
Yes.

01:08:59.850 --> 01:09:00.270
No.

01:09:00.550 --> 01:09:01.210
If you know.

01:09:01.210 --> 01:09:01.910
You can say yes.

01:09:02.010 --> 01:09:02.450
If you do not know.

01:09:02.450 --> 01:09:02.970
You can say no.

01:09:02.990 --> 01:09:03.870
So that I can explain.

01:09:04.030 --> 01:09:05.310
Do you know what is OSI.

01:09:05.310 --> 01:09:05.870
In networking.

01:09:06.290 --> 01:09:06.410
Okay.

01:09:07.630 --> 01:09:08.770
So in OSI.

01:09:08.770 --> 01:09:09.550
In networking.

01:09:10.450 --> 01:09:11.490
We use seven layers.

01:09:11.490 --> 01:09:13.490
So start from physical.

01:09:15.130 --> 01:09:16.290
Then data link.

01:09:17.590 --> 01:09:18.670
Then user network.

01:09:19.810 --> 01:09:20.930
We use transport.

01:09:22.710 --> 01:09:24.590
Then you talking about session layer.

01:09:26.210 --> 01:09:27.650
Then use your presentation layer.

01:09:29.170 --> 01:09:30.750
And then user application layer.

01:09:32.410 --> 01:09:34.290
So if you have computer 1 in network.

01:09:34.850 --> 01:09:36.290
You will communicate to communicate 2.

01:09:36.870 --> 01:09:38.350
You will have a similar layer.

01:09:38.510 --> 01:09:39.290
In the other side.

01:09:39.290 --> 01:09:42.110
So this wants to communicate to second computer.

01:09:42.150 --> 01:09:44.170
It keeps on adding packets in every layer.

01:09:45.550 --> 01:09:47.830
And they exchange packets at the other side.

01:09:49.470 --> 01:09:51.370
So this is how they communicate.

01:09:51.490 --> 01:09:52.670
Using OSI layer.

01:09:53.590 --> 01:09:55.130
And layer 1 is your physical.

01:09:55.390 --> 01:09:56.910
This is called layer 1.

01:09:57.230 --> 01:09:58.890
This is layer 2.

01:09:59.150 --> 01:10:00.330
Layer 3.

01:10:00.850 --> 01:10:01.730
Layer 4.

01:10:02.330 --> 01:10:02.870
Layer 5.

01:10:03.010 --> 01:10:03.530
Layer 6.

01:10:03.630 --> 01:10:04.350
And layer 7.

01:10:05.210 --> 01:10:06.690
So example layer 7.

01:10:06.690 --> 01:10:08.030
We use these protocols.

01:10:08.150 --> 01:10:09.390
HTTP, HTTPS protocols.

01:10:10.470 --> 01:10:11.630
In transport layer and all.

01:10:11.810 --> 01:10:12.890
We use TCP protocols.

01:10:13.070 --> 01:10:13.890
GDP protocols.

01:10:15.210 --> 01:10:15.450
Network.

01:10:15.610 --> 01:10:17.250
We use your IPs.

01:10:17.390 --> 01:10:18.190
All these things.

01:10:19.450 --> 01:10:21.190
So we need to use a layer 3 network.

01:10:21.350 --> 01:10:23.150
It means you need a network of layer 3.

01:10:23.190 --> 01:10:25.110
Which will allow communication.

01:10:26.150 --> 01:10:27.710
Across multiple machines.

01:10:28.290 --> 01:10:29.970
So we need to have a layer 3 network.

01:10:30.150 --> 01:10:31.930
It is also called as overlay network.

01:10:32.010 --> 01:10:33.570
So you have to conflict with this.

01:10:33.570 --> 01:10:35.570
So that all these can communicate.

01:10:37.350 --> 01:10:39.410
So example when you did for Docker's form.

01:10:39.590 --> 01:10:41.190
You said it will get created automatically.

01:10:41.450 --> 01:10:42.490
It will create a whole network.

01:10:43.210 --> 01:10:44.310
And in Cubans you have to create it.

01:10:44.410 --> 01:10:46.730
So whole network is what is allowing them to communicate.

01:10:48.890 --> 01:10:49.570
Next concept.

01:10:51.250 --> 01:10:51.630
Now.

01:10:52.130 --> 01:10:53.630
When you create containers.

01:10:54.810 --> 01:10:56.730
Containers get dynamic IPs.

01:10:56.790 --> 01:10:58.310
So dynamic IPs means.

01:10:59.310 --> 01:11:00.490
These IPs would change.

01:11:00.550 --> 01:11:01.710
When you stop and start.

01:11:02.430 --> 01:11:04.310
Is it a good practice to use dynamic IP?

01:11:04.470 --> 01:11:04.950
What do you think?

01:11:05.070 --> 01:11:06.510
Is it a good practice to use dynamic IP?

01:11:06.810 --> 01:11:08.450
Normally not a good practice sometimes.

01:11:09.090 --> 01:11:10.910
Because if this is trying to communicate with this.

01:11:11.350 --> 01:11:12.930
And it is using an IP.

01:11:14.010 --> 01:11:15.090
Of this to communicate.

01:11:15.330 --> 01:11:16.990
If the IP changes then it will not work.

01:11:18.270 --> 01:11:19.110
So you have to be careful.

01:11:20.330 --> 01:11:22.950
And we cannot directly assign a static IP to this.

01:11:23.250 --> 01:11:24.330
Static means it will not change.

01:11:24.990 --> 01:11:26.050
So what you can do is.

01:11:26.170 --> 01:11:26.830
You create.

01:11:28.210 --> 01:11:29.870
And you map it to a service.

01:11:29.870 --> 01:11:31.090
And this service.

01:11:31.750 --> 01:11:32.730
Will get a static IP.

01:11:32.950 --> 01:11:33.630
For example.

01:11:36.190 --> 01:11:37.830
First go to.

01:11:37.830 --> 01:11:38.830
The static IP.

01:11:39.210 --> 01:11:40.470
And then beaches the backend.

01:11:41.490 --> 01:11:42.390
So for example.

01:11:42.630 --> 01:11:44.130
This is mapped to a service.

01:11:45.750 --> 01:11:47.370
And this is mapped to a service.

01:11:47.550 --> 01:11:49.010
And these get a static IP.

01:11:49.270 --> 01:11:52.310
So it could be 1,2,3.4.

01:11:52.790 --> 01:11:53.350
This could be.

01:11:53.790 --> 01:11:56.290
5,6,7.8.

01:11:56.590 --> 01:11:56.790
In turn.

01:11:56.790 --> 01:11:59.230
Now if this wants to communicate to DB service.

01:11:59.270 --> 01:11:59.850
What will it do?

01:11:59.990 --> 01:12:02.870
It will communicate to the DB service.

01:12:03.970 --> 01:12:05.710
And that is in the traffic to this one.

01:12:07.110 --> 01:12:08.990
If this wants to communicate with DB service.

01:12:09.210 --> 01:12:10.390
It will communicate to the service.

01:12:10.410 --> 01:12:11.470
And reach to the internal.

01:12:12.630 --> 01:12:14.250
This is what is the static method.

01:12:15.710 --> 01:12:16.630
This is for internal.

01:12:18.310 --> 01:12:19.510
Now if I have an external.

01:12:19.510 --> 01:12:20.370
For example.

01:12:21.310 --> 01:12:22.710
The traffic from load balancer.

01:12:22.930 --> 01:12:24.970
I want to reach to this from outside.

01:12:24.970 --> 01:12:26.430
From internet.

01:12:26.510 --> 01:12:28.090
Traffic will come from outside.

01:12:28.410 --> 01:12:30.450
It will go to the port.

01:12:31.090 --> 01:12:33.150
It will go to one of the server.

01:12:33.330 --> 01:12:34.330
Talk about internet service.

01:12:34.810 --> 01:12:36.130
And then reaches the first user.

01:12:36.510 --> 01:12:37.990
If again someone second comes in.

01:12:38.030 --> 01:12:39.030
It will go to load balancer.

01:12:39.130 --> 01:12:40.050
It will go to this one.

01:12:40.430 --> 01:12:42.010
It will again go to the service web.

01:12:42.150 --> 01:12:43.250
And then reaches in here.

01:12:44.570 --> 01:12:46.170
If the third user locks in.

01:12:46.250 --> 01:12:47.550
It will go to round robin.

01:12:47.610 --> 01:12:48.510
It will go to this.

01:12:48.510 --> 01:12:50.550
This and go to this.

01:12:50.870 --> 01:12:52.510
Fourth user will again come into this.

01:12:54.250 --> 01:12:55.270
This and this.

01:12:55.570 --> 01:12:56.430
Like this it happens.

01:12:58.710 --> 01:13:00.610
So service mappings are used.

01:13:00.950 --> 01:13:02.570
Because we have static

01:13:02.570 --> 01:13:03.870
communication internally.

01:13:04.690 --> 01:13:06.750
And that is what we call a service discovery.

01:13:06.990 --> 01:13:08.490
And you can use it for internal

01:13:08.490 --> 01:13:09.830
or external

01:13:10.610 --> 01:13:11.250
communication.

01:13:12.010 --> 01:13:14.470
And we talked about all the network.

01:13:14.590 --> 01:13:16.510
And we are also talking about schedulers.

01:13:18.510 --> 01:13:19.670
Key values.

01:13:20.270 --> 01:13:22.310
These are some important components

01:13:22.310 --> 01:13:23.850
of your orchestration.

01:13:23.850 --> 01:13:24.490
Take questions.

01:13:24.730 --> 01:13:28.830
Let me know if you have any questions

01:13:28.830 --> 01:13:29.550
on orchestration.

01:13:29.770 --> 01:13:31.130
I want you to understand this.

01:13:31.190 --> 01:13:32.830
Take some time.

01:13:33.290 --> 01:13:34.670
Do you want to go through for 5 minutes

01:13:34.670 --> 01:13:35.650
the orchestration part?

01:13:36.070 --> 01:13:38.830
Please read for 5 minutes.

01:13:39.770 --> 01:13:41.350
And any questions please ask me.

01:13:41.350 --> 01:13:42.270
Because this is important.

01:13:42.330 --> 01:13:44.270
Because without understanding this.

01:13:44.270 --> 01:13:46.670
It will be difficult for you to understand

01:13:46.670 --> 01:13:47.150
Kubernetes.

01:13:47.910 --> 01:13:50.670
Please understand the reason why I am giving more time.

01:13:50.750 --> 01:13:52.390
You need to be clear about what is

01:13:52.390 --> 01:13:53.750
container orchestration. Why?

01:13:54.490 --> 01:13:55.510
And what is the master?

01:13:56.050 --> 01:13:57.070
What are slaves?

01:13:57.830 --> 01:14:00.070
And why do you use this in the components?

01:14:00.790 --> 01:14:02.190
Then it will be easier for you to work

01:14:02.190 --> 01:14:02.750
with Kubernetes.

01:14:04.470 --> 01:14:06.170
I will be back in 5 minutes.

01:14:06.430 --> 01:14:08.270
In the meanwhile please read it and

01:14:09.390 --> 01:14:10.310
I won't

01:14:10.310 --> 01:14:11.770
request you to ask questions if you have.

01:14:11.770 --> 01:14:13.310
No data for the next round.

01:14:14.010 --> 01:14:14.830
I will be back in 5 minutes.

01:15:05.910 --> 01:15:07.270
Thank you.

01:15:11.770 --> 01:15:15.410
I will be back in 5 minutes.

01:15:15.410 --> 01:15:15.770
Thank you.

01:15:38.170 --> 01:15:39.850
Any questions

01:15:39.850 --> 01:15:41.390
please.

01:15:42.330 --> 01:15:43.190
Any questions?

01:15:44.530 --> 01:15:45.970
We assume we are good.

01:15:46.290 --> 01:15:47.670
Next topic now.

01:15:47.810 --> 01:15:48.530
We still have time.

01:15:49.150 --> 01:15:51.190
Have you heard about Kubernetes before?

01:15:52.430 --> 01:15:53.990
So Kubernetes is

01:15:53.990 --> 01:15:55.710
open source orchestration.

01:15:57.630 --> 01:15:57.990
And this

01:15:57.990 --> 01:15:59.950
was first found by

01:15:59.950 --> 01:16:00.870
Google Cloud.

01:16:02.590 --> 01:16:03.790
And later it became

01:16:03.790 --> 01:16:04.730
open source.

01:16:05.850 --> 01:16:07.530
Which is of CNCF.

01:16:07.530 --> 01:16:08.650
Cloud Net Foundation.

01:16:10.370 --> 01:16:10.770
And

01:16:12.070 --> 01:16:13.430
this is very very

01:16:13.430 --> 01:16:15.330
robust. You can install Kubernetes

01:16:15.330 --> 01:16:17.350
on on-premises.

01:16:17.730 --> 01:16:19.490
You can install on cloud.

01:16:21.350 --> 01:16:22.710
And this is highly scalable.

01:16:24.770 --> 01:16:25.630
Let me give you an example

01:16:25.630 --> 01:16:26.730
about why this works.

01:16:27.730 --> 01:16:29.050
You first understand a part.

01:16:30.110 --> 01:16:30.710
What is a part?

01:16:31.950 --> 01:16:33.290
Think of this vegetable.

01:16:34.230 --> 01:16:34.630
Yes.

01:16:34.630 --> 01:16:37.270
We all have this vegetable.

01:16:37.730 --> 01:16:38.530
This one.

01:16:38.750 --> 01:16:39.230
In Singapore.

01:16:42.130 --> 01:16:42.930
Yes.

01:16:43.430 --> 01:16:44.210
You all see this.

01:16:44.430 --> 01:16:45.950
Think about this.

01:16:46.970 --> 01:16:48.270
In Kubernetes

01:16:48.270 --> 01:16:50.190
I cannot create

01:16:50.190 --> 01:16:51.770
directly a container.

01:16:52.830 --> 01:16:54.770
So we cannot get a container

01:16:54.770 --> 01:16:56.750
directly. We have to create a

01:16:56.750 --> 01:16:58.570
part first.

01:16:59.230 --> 01:17:00.630
So part is

01:17:01.530 --> 01:17:03.030
single or

01:17:03.030 --> 01:17:04.910
multi-container. Look something like this.

01:17:05.030 --> 01:17:05.850
You create a part.

01:17:06.950 --> 01:17:08.650
Which you can have one container.

01:17:09.270 --> 01:17:09.910
This one part.

01:17:11.790 --> 01:17:12.950
It will have an IP address.

01:17:13.130 --> 01:17:14.190
Some IP address.

01:17:14.690 --> 01:17:16.850
That IP address will be used for the container.

01:17:17.830 --> 01:17:19.050
Or a part can

01:17:19.050 --> 01:17:21.250
have multiple containers.

01:17:21.610 --> 01:17:23.370
C1 and C2 like this.

01:17:24.290 --> 01:17:24.950
It will again have

01:17:24.950 --> 01:17:25.930
an IP address.

01:17:27.690 --> 01:17:29.050
Which should be shared by

01:17:29.050 --> 01:17:30.890
both the containers. When you work in

01:17:30.890 --> 01:17:32.730
Kubernetes, you need to create a part

01:17:32.730 --> 01:17:34.890
with a minimal component. And then you create

01:17:35.830 --> 01:17:37.090
containers inside it.

01:17:37.310 --> 01:17:39.270
Remember it.

01:17:39.510 --> 01:17:41.110
Kubernetes is also open source

01:17:41.110 --> 01:17:43.250
for automating, deployment, scaling

01:17:43.250 --> 01:17:44.970
and managing container applications.

01:17:46.450 --> 01:17:47.230
And if you have

01:17:47.230 --> 01:17:48.890
a part for example. Today I have one part.

01:17:48.930 --> 01:17:50.850
You can see that I want to scale up to 100 parts.

01:17:50.990 --> 01:17:53.070
It scales up to 100 parts in a

01:17:53.070 --> 01:17:54.170
minute. Very fast.

01:17:55.570 --> 01:17:56.850
And it is quite

01:17:56.850 --> 01:17:57.750
flexible.

01:17:57.750 --> 01:18:00.270
You can easily modify the

01:18:00.270 --> 01:18:01.970
configurations. You can

01:18:01.970 --> 01:18:04.250
run anywhere. It could be on-premises

01:18:04.250 --> 01:18:05.270
or hybrid.

01:18:06.330 --> 01:18:07.230
What do you mean by hybrid?

01:18:09.610 --> 01:18:10.390
What do you mean by hybrid?

01:18:10.550 --> 01:18:11.290
What could be hybrid?

01:18:18.830 --> 01:18:20.030
Hybrid means

01:18:20.030 --> 01:18:21.850
it is using both on-premises

01:18:21.850 --> 01:18:23.630
and your public cloud. Clear?

01:18:25.330 --> 01:18:26.950
So we can use this.

01:18:27.230 --> 01:18:28.590
And these are important reasons

01:18:28.590 --> 01:18:31.170
for using. First one is rollouts and

01:18:31.170 --> 01:18:31.650
rollbacks.

01:18:33.230 --> 01:18:34.030
What I am saying here.

01:18:35.610 --> 01:18:37.570
Now let's consider that

01:18:37.570 --> 01:18:39.410
this is. We have a

01:18:39.410 --> 01:18:40.650
pod. We have a pod.

01:18:42.470 --> 01:18:43.450
And this pod

01:18:43.450 --> 01:18:45.050
has an application.

01:18:45.970 --> 01:18:47.450
Which is

01:18:47.450 --> 01:18:49.370
like enginex which we did now.

01:18:49.570 --> 01:18:51.690
This is version number one.

01:18:52.530 --> 01:18:54.930
Now you want to

01:18:54.930 --> 01:18:56.110
update the application

01:18:56.110 --> 01:18:57.410
to version two.

01:18:57.510 --> 01:18:58.990
That is my use case.

01:18:59.430 --> 01:19:02.030
So what it will do. It will first create

01:19:02.030 --> 01:19:03.790
a new version in a

01:19:03.790 --> 01:19:05.750
different pod. It will create a new pod.

01:19:06.330 --> 01:19:07.850
It will create enginex version

01:19:07.850 --> 01:19:09.970
two. And after this comes up

01:19:09.970 --> 01:19:11.130
this will get terminated.

01:19:11.370 --> 01:19:13.710
If something happens in between, it will

01:19:13.710 --> 01:19:15.750
still be connected to it. It will be connected

01:19:15.750 --> 01:19:17.790
to this. A user connected to this.

01:19:18.630 --> 01:19:19.810
Still this is up and running.

01:19:20.530 --> 01:19:21.950
Once this is good

01:19:21.950 --> 01:19:24.070
then this will get turned away.

01:19:25.310 --> 01:19:25.870
And like this

01:19:25.870 --> 01:19:27.750
different methods we can update.

01:19:28.250 --> 01:19:29.230
We can do updates.

01:19:30.130 --> 01:19:31.690
We can do a rollback if something

01:19:31.690 --> 01:19:33.930
happens. If there are two pods I can

01:19:33.930 --> 01:19:35.990
say scale up to five pods. It will create

01:19:35.990 --> 01:19:37.970
one, two, three, four, five

01:19:37.970 --> 01:19:39.830
pods. Like this immediately.

01:19:40.990 --> 01:19:41.990
If I say that

01:19:41.990 --> 01:19:43.930
scale down to two, it will terminate

01:19:43.930 --> 01:19:45.410
these backends immediately.

01:19:47.030 --> 01:19:47.810
Any time if these

01:19:48.050 --> 01:19:50.050
pods go down, two of them

01:19:51.010 --> 01:19:52.010
without you

01:19:52.010 --> 01:19:54.030
doing anything, even if they go down

01:19:54.030 --> 01:19:56.230
they come up automatically. The pod comes

01:19:56.230 --> 01:19:58.370
up. Self-heating.

01:19:58.730 --> 01:20:00.150
So we have lots of configurations

01:20:00.150 --> 01:20:02.210
for these. One is you can

01:20:02.210 --> 01:20:03.930
define rollouts and rollbacks

01:20:03.930 --> 01:20:05.690
quite easily. We can extend the storage

01:20:05.690 --> 01:20:08.290
like Gordy talked about storage on your

01:20:08.290 --> 01:20:10.210
host. We can extend storage

01:20:10.210 --> 01:20:11.970
of Kubernetes pods

01:20:11.970 --> 01:20:13.870
outside on the host

01:20:13.870 --> 01:20:15.910
or NFS on the cloud.

01:20:16.990 --> 01:20:17.750
We can

01:20:17.750 --> 01:20:19.350
create the pods first.

01:20:19.470 --> 01:20:21.390
So in Kubernetes we

01:20:21.910 --> 01:20:23.530
use more of a YAML files.

01:20:24.710 --> 01:20:25.870
We don't use

01:20:25.870 --> 01:20:26.990
much of imperative.

01:20:27.970 --> 01:20:30.050
And everything is more of

01:20:30.050 --> 01:20:31.650
a code base in your Kubernetes.

01:20:32.010 --> 01:20:33.670
Everything will be like something like this

01:20:33.670 --> 01:20:35.550
in the backend. We use more of this.

01:20:35.730 --> 01:20:37.370
You write something like this. Example,

01:20:37.910 --> 01:20:38.550
example pod.

01:20:40.310 --> 01:20:41.910
You can do like this but don't recommend

01:20:41.910 --> 01:20:43.670
it. So this is how we

01:20:43.670 --> 01:20:46.230
talk about a pod. So this is your pod

01:20:46.230 --> 01:20:46.730
signed

01:20:47.450 --> 01:20:49.550
name of the pod and the continuous.

01:20:51.330 --> 01:20:51.830
So you

01:20:51.830 --> 01:20:53.590
can write everything like

01:20:53.590 --> 01:20:54.910
this in your Kubernetes.

01:20:55.570 --> 01:20:57.690
We normally not a good practice to put in

01:20:57.690 --> 01:20:59.750
the password in the main file. We put a

01:20:59.750 --> 01:21:01.190
password in different objects

01:21:01.710 --> 01:21:03.830
and then restore in the pod. So we

01:21:03.830 --> 01:21:05.810
separate the pods. We separate

01:21:05.810 --> 01:21:07.690
the passwords. We can separate

01:21:07.690 --> 01:21:09.830
the configurations. All of

01:21:09.830 --> 01:21:11.350
them. That's what we are talking about in here.

01:21:11.350 --> 01:21:13.650
Not a good practice to mix everything.

01:21:14.430 --> 01:21:15.610
We can run batch workloads.

01:21:15.850 --> 01:21:17.150
Then we talk about service discovery.

01:21:17.630 --> 01:21:19.350
We talk about service discovery. So we use

01:21:19.350 --> 01:21:21.230
service discovery for reaching the

01:21:21.230 --> 01:21:23.410
backends. We use load balancing method for service

01:21:23.410 --> 01:21:23.890
discovery.

01:21:25.090 --> 01:21:27.350
Self-healing. If the pod goes down

01:21:27.350 --> 01:21:29.610
they come up automatically. And you can define

01:21:29.610 --> 01:21:31.610
some policies like what did you put a label

01:21:31.610 --> 01:21:33.250
for scheduler. You can define some

01:21:33.250 --> 01:21:34.990
policies and say that run the open

01:21:34.990 --> 01:21:36.010
specific nodes.

01:21:37.950 --> 01:21:39.410
And to the open source

01:21:39.410 --> 01:21:41.570
auto-scaling. We use

01:21:41.570 --> 01:21:43.390
auto-scaling everyone.

01:21:44.110 --> 01:21:45.950
Cloud auto-scaling. Auto-scaling

01:21:45.950 --> 01:21:46.270
please.

01:21:48.750 --> 01:21:51.410
Auto-scaling. So example

01:21:52.030 --> 01:21:53.270
let's consider in Amazon

01:21:53.270 --> 01:21:55.310
you had two EC2 instances.

01:21:55.730 --> 01:21:57.410
Now assuming

01:21:57.410 --> 01:21:59.810
that there are 10 users

01:21:59.810 --> 01:22:01.410
who are accessing the application.

01:22:02.870 --> 01:22:04.030
They are able to access it.

01:22:04.910 --> 01:22:05.890
But now assume

01:22:05.890 --> 01:22:07.650
that if 100 users

01:22:07.650 --> 01:22:09.590
try to access the same time

01:22:10.170 --> 01:22:11.710
then these will get

01:22:11.710 --> 01:22:13.990
overloaded. They might go down.

01:22:14.990 --> 01:22:15.730
So in this time

01:22:15.730 --> 01:22:17.670
you might want to go ahead and create an

01:22:17.670 --> 01:22:19.270
EC2 instance in the backend manually.

01:22:19.390 --> 01:22:20.690
But this takes some time.

01:22:21.410 --> 01:22:23.330
So whenever the load increases

01:22:24.030 --> 01:22:25.230
or the resources

01:22:25.230 --> 01:22:27.330
increases or some conditions

01:22:27.330 --> 01:22:29.290
it can keep on adding

01:22:29.290 --> 01:22:31.550
the VMs or decrease

01:22:31.550 --> 01:22:33.170
the VMs. The load is less.

01:22:33.850 --> 01:22:35.530
And this would happen automatically.

01:22:35.530 --> 01:22:37.530
That is called auto-scaling.

01:22:38.330 --> 01:22:40.030
So in Kubernetes we can use it

01:22:40.030 --> 01:22:41.650
for both your nodes as

01:22:41.650 --> 01:22:43.530
a support into auto-scaling.

01:22:44.890 --> 01:22:45.590
And I can mention that

01:22:45.590 --> 01:22:47.570
CPU percentage level

01:22:47.570 --> 01:22:49.490
threshold you can have it to be done.

01:22:50.150 --> 01:22:51.610
And you can extend the Kubernetes

01:22:51.610 --> 01:22:53.810
to work with any tools. For example

01:22:53.810 --> 01:22:55.250
in your enterprise you are using the

01:22:55.250 --> 01:22:57.590
Clometheus, Grafana, Splunk

01:22:57.590 --> 01:22:59.510
or any other tools

01:22:59.510 --> 01:23:00.570
to which you want to integrate.

01:23:01.230 --> 01:23:03.070
You can easily integrate Kubernetes

01:23:03.070 --> 01:23:05.170
with any tool because it's open source.

01:23:05.250 --> 01:23:07.410
I recommend using open source for this.

01:23:09.190 --> 01:23:11.390
So example, we have

01:23:11.390 --> 01:23:12.950
CNCF. So when you see a

01:23:12.950 --> 01:23:15.110
CNCF landscape, they have

01:23:15.110 --> 01:23:17.070
huge services

01:23:17.070 --> 01:23:19.830
in CNCF which is Kubernetes one part of it.

01:23:21.350 --> 01:23:23.410
So you can integrate with Kubernetes

01:23:23.410 --> 01:23:25.070
like Helm for

01:23:25.590 --> 01:23:27.070
creating your

01:23:27.630 --> 01:23:27.990
charts.

01:23:28.950 --> 01:23:31.330
We can use Argo for your CICD

01:23:31.330 --> 01:23:31.990
for example.

01:23:32.930 --> 01:23:34.410
We can use

01:23:34.410 --> 01:23:36.870
Clometheus, Grafana for everything you see.

01:23:37.070 --> 01:23:38.090
We have some options

01:23:38.090 --> 01:23:40.010
using which you integrate with Kubernetes.

01:23:40.290 --> 01:23:41.550
Lots of tools you can integrate.

01:23:43.230 --> 01:23:45.010
And because of these advantages

01:23:45.010 --> 01:23:46.470
what I talked about, Kubernetes

01:23:46.470 --> 01:23:48.950
preferred more. We're talking mainly

01:23:48.950 --> 01:23:49.950
about scalability.

01:23:50.830 --> 01:23:52.470
Then we're talking about compliance.

01:23:53.030 --> 01:23:55.010
All these advantages why you want to

01:23:55.010 --> 01:23:55.610
use Kubernetes.

01:23:57.030 --> 01:23:58.570
I give the information in this to sample

01:23:58.570 --> 01:24:00.750
these cases. So where to use

01:24:00.750 --> 01:24:02.210
Kubernetes? Why Kubernetes?

01:24:02.930 --> 01:24:04.630
The first one, in Kubernetes

01:24:04.630 --> 01:24:05.930
we manage containers.

01:24:07.310 --> 01:24:08.490
And containers we understood

01:24:08.490 --> 01:24:09.670
it is a lightweight,

01:24:11.410 --> 01:24:12.530
easily portable

01:24:12.530 --> 01:24:13.950
cost savings.

01:24:15.170 --> 01:24:16.650
And second one is, anytime

01:24:16.650 --> 01:24:18.570
you can get in the code.

01:24:19.750 --> 01:24:20.710
So example, let's say

01:24:20.710 --> 01:24:21.510
you have a pod

01:24:23.050 --> 01:24:24.750
and you want to see the

01:24:24.750 --> 01:24:25.870
YAML file of it.

01:24:26.610 --> 01:24:28.630
I can get the YAML file of it.

01:24:28.650 --> 01:24:30.770
You can say, I have a pod

01:24:30.770 --> 01:24:32.250
and I would say

01:24:32.250 --> 01:24:34.170
get the pod, the pod name

01:24:34.170 --> 01:24:35.910
and hyphen on YAML.

01:24:36.150 --> 01:24:37.890
It will give you the configurations of it

01:24:37.890 --> 01:24:38.890
in a YAML format.

01:24:40.190 --> 01:24:41.970
So since you get it as a code, it's quite

01:24:41.970 --> 01:24:43.790
easy for it to understand what exactly is

01:24:43.790 --> 01:24:45.890
running inside it. So everything

01:24:45.890 --> 01:24:47.530
you can start using a code.

01:24:49.150 --> 01:24:49.930
That's one of the important

01:24:49.930 --> 01:24:51.670
reasons why enterprise preferred Kubernetes.

01:24:51.810 --> 01:24:54.150
Everything you can do it, modify it.

01:24:54.150 --> 01:24:55.990
Abstraction of infrastructure.

01:24:56.690 --> 01:24:58.150
You can integrate multiple

01:25:00.150 --> 01:25:01.190
microservice architectures.

01:25:01.530 --> 01:25:02.130
Cell feeding.

01:25:02.870 --> 01:25:04.570
It means if they go down the pod

01:25:04.570 --> 01:25:05.610
they come up automatically.

01:25:07.010 --> 01:25:08.350
You can integrate it with your CI-City

01:25:08.350 --> 01:25:09.850
like we are talking about TeamCity or something

01:25:09.850 --> 01:25:11.010
you can use for integration.

01:25:12.410 --> 01:25:14.110
They quickly make your

01:25:14.110 --> 01:25:15.330
self-application up and running.

01:25:16.310 --> 01:25:17.890
Which reduces the outages.

01:25:18.630 --> 01:25:20.050
They use very less resources.

01:25:20.730 --> 01:25:22.150
They are quite efficient and they are

01:25:22.390 --> 01:25:25.170
compliant. All these are reasons

01:25:25.170 --> 01:25:26.810
why Kubernetes is preferred.

01:25:28.090 --> 01:25:28.390
And many companies

01:25:28.910 --> 01:25:30.370
like Tinder, any company

01:25:30.370 --> 01:25:32.130
they always have scalability.

01:25:32.150 --> 01:25:33.970
It means no more users coming.

01:25:34.570 --> 01:25:36.390
Example, you are watching a football match.

01:25:38.030 --> 01:25:38.610
In Singapore

01:25:38.610 --> 01:25:39.710
which port is famous?

01:25:40.090 --> 01:25:42.330
Is it football or rugby?

01:25:43.730 --> 01:25:44.430
Which one is famous

01:25:44.430 --> 01:25:46.530
in Singapore? In Hong Kong.

01:25:46.930 --> 01:25:48.290
You all are from Singapore or Hong Kong?

01:25:50.810 --> 01:25:51.210
Singapore.

01:25:51.290 --> 01:25:53.330
Which port is famous in Singapore?

01:25:56.090 --> 01:25:57.870
Even if you don't play

01:25:57.870 --> 01:25:59.330
then it sounds quite famous.

01:25:59.910 --> 01:26:01.570
What is the national game of Singapore?

01:26:01.750 --> 01:26:02.890
I don't know. Others?

01:26:07.950 --> 01:26:09.110
When you watch for example

01:26:09.110 --> 01:26:11.510
football match, the end of the match is going to be

01:26:11.510 --> 01:26:14.130
so busy people are going to hook on the TV.

01:26:14.630 --> 01:26:15.690
So the load is going to increase.

01:26:16.170 --> 01:26:16.770
What do you do?

01:26:16.770 --> 01:26:18.550
So in this case you can use

01:26:18.550 --> 01:26:20.730
the Kubernetes backend in which you can

01:26:20.730 --> 01:26:23.230
just say that scale up to 100 applications.

01:26:24.650 --> 01:26:25.210
So the number of

01:26:25.210 --> 01:26:26.970
users they see

01:26:26.970 --> 01:26:28.470
the application load go down.

01:26:29.850 --> 01:26:30.930
So wherever you feed

01:26:30.930 --> 01:26:33.090
scalability and stability required

01:26:33.090 --> 01:26:34.930
then the answer is Kubernetes.

01:26:36.070 --> 01:26:37.150
And most enterprises

01:26:37.150 --> 01:26:39.470
these days are moving on to containers

01:26:39.470 --> 01:26:41.150
and Kubernetes because advantage

01:26:41.150 --> 01:26:42.170
we talked about in the morning.

01:26:42.790 --> 01:26:44.690
We are talking about

01:26:44.690 --> 01:26:46.770
stability, scalability, all these

01:26:46.770 --> 01:26:47.230
reasons.

01:26:48.570 --> 01:26:50.430
Any companies like newspapers

01:26:50.430 --> 01:26:52.550
newspapers could be some special

01:26:52.550 --> 01:26:54.750
news. People would open the website

01:26:54.750 --> 01:26:55.670
very frequently.

01:26:56.650 --> 01:26:58.610
It could go down. So Kubernetes

01:26:58.610 --> 01:27:00.690
helps you to manage self-feeding and other things

01:27:00.690 --> 01:27:02.770
using which you can quickly come up and run.

01:27:04.570 --> 01:27:06.890
In very brief, Kubernetes gives you advantage wherein

01:27:06.890 --> 01:27:08.550
you can use the creative.

01:27:08.710 --> 01:27:10.750
It means you can write in the configuration

01:27:10.750 --> 01:27:12.650
in YAML and you can see the configuration

01:27:12.650 --> 01:27:13.910
is easier to update.

01:27:14.730 --> 01:27:16.810
You can define where you want to run your workloads.

01:27:18.690 --> 01:27:20.610
And Kubernetes is open source. It means you can work

01:27:20.610 --> 01:27:22.770
with any other workloads quite easily.

01:27:23.670 --> 01:27:24.890
Containers are portable.

01:27:26.430 --> 01:27:26.890
Immutable.

01:27:27.410 --> 01:27:28.750
So we talked about version

01:27:28.750 --> 01:27:30.770
1, version 2. When I updated the

01:27:30.770 --> 01:27:32.650
version it doesn't affect the existing

01:27:32.650 --> 01:27:34.570
versions. It means

01:27:34.570 --> 01:27:36.550
the users are still locked in the existing

01:27:36.550 --> 01:27:37.650
version. They are not affected.

01:27:38.530 --> 01:27:40.690
Once the new version comes up then it switches.

01:27:40.690 --> 01:27:43.330
So this will not have any much

01:27:43.330 --> 01:27:44.690
effect on the users applications.

01:27:46.470 --> 01:27:47.030
Here template

01:27:47.030 --> 01:27:48.730
you can reproduce it.

01:27:49.050 --> 01:27:50.530
And YAML compared to

01:27:50.530 --> 01:27:52.630
JSON or XML which must be

01:27:52.630 --> 01:27:55.150
easier to understand and modify.

01:27:56.210 --> 01:27:57.230
So this is the snapshot

01:27:57.230 --> 01:27:57.690
of why

01:27:58.510 --> 01:27:59.390
Kubernetes is preferred.

01:27:59.790 --> 01:28:01.330
It is easier for you to understand.

01:28:02.090 --> 01:28:03.770
It is easier for you to make

01:28:03.770 --> 01:28:06.010
changes. It is easier for

01:28:06.010 --> 01:28:07.770
you to extend. It is also

01:28:07.770 --> 01:28:09.650
quite portable, immutable

01:28:09.650 --> 01:28:11.930
and reproducible.

01:28:12.270 --> 01:28:13.490
I talked about scalability.

01:28:13.930 --> 01:28:15.870
All these are reasons why

01:28:15.870 --> 01:28:16.850
Kubernetes is preferred.

01:28:17.490 --> 01:28:19.970
Now I am going back to the Kubernetes website.

01:28:20.590 --> 01:28:22.110
So kubernetes.io

01:28:22.110 --> 01:28:22.870
is the website.

01:28:23.750 --> 01:28:25.550
The latest version is

01:28:25.550 --> 01:28:26.610
1.32.

01:28:28.290 --> 01:28:29.690
And they have a very good community

01:28:29.690 --> 01:28:31.390
within which you can participate

01:28:31.390 --> 01:28:32.890
and even contribute.

01:28:34.250 --> 01:28:35.410
And their documentation

01:28:35.410 --> 01:28:36.610
all in one place.

01:28:37.530 --> 01:28:38.490
All documentation.

01:28:39.210 --> 01:28:40.850
And you want to learn more about

01:28:40.850 --> 01:28:42.710
case studies. For example, you want to know

01:28:42.710 --> 01:28:44.610
how does Babylon, what

01:28:44.610 --> 01:28:46.490
is use case, why they move onto Kubernetes

01:28:47.370 --> 01:28:48.610
for booking.com.

01:28:49.730 --> 01:28:50.490
It is the same.

01:28:50.690 --> 01:28:52.570
The reason would be that they are not able

01:28:52.570 --> 01:28:53.570
to scale up their workloads.

01:28:54.170 --> 01:28:56.430
For example, if I open Babylon

01:28:56.430 --> 01:28:58.230
they were using machine learning AI.

01:28:58.830 --> 01:29:00.610
And they did not have much

01:29:02.370 --> 01:29:02.850
resources

01:29:02.850 --> 01:29:04.270
for scaling up the workloads.

01:29:04.270 --> 01:29:07.050
So they are looking for a better

01:29:07.050 --> 01:29:08.870
mechanism wherein you are able to use

01:29:08.870 --> 01:29:10.510
for machine learning to work with

01:29:10.510 --> 01:29:12.590
scheduling and scalability.

01:29:12.910 --> 01:29:14.470
And they started deploying

01:29:14.470 --> 01:29:15.370
the Kubernetes.

01:29:16.010 --> 01:29:18.370
So it is quite easy to get started because we are talking

01:29:18.370 --> 01:29:20.270
about YAML.

01:29:22.330 --> 01:29:24.270
meant increased security,

01:29:25.810 --> 01:29:26.530
increased innovation

01:29:26.530 --> 01:29:28.270
and a more affordable

01:29:28.930 --> 01:29:30.270
health service.

01:29:32.470 --> 01:29:33.670
It means that

01:29:33.670 --> 01:29:35.370
it is a trustable platform.

01:29:36.410 --> 01:29:37.410
Many customers

01:29:37.410 --> 01:29:39.090
have used this. It is compliant.

01:29:40.190 --> 01:29:41.730
And if you start using this

01:29:41.730 --> 01:29:42.910
you will not have much of...

01:29:42.910 --> 01:29:44.690
You still have some issues. We don't count it

01:29:44.690 --> 01:29:46.810
properly. But it has been tested

01:29:46.810 --> 01:29:47.790
quite compliant.

01:29:49.610 --> 01:29:51.370
And hence, Kubernetes is much more preferred

01:29:51.370 --> 01:29:53.050
compared to other platforms.

01:29:54.550 --> 01:29:55.570
Any questions?

01:29:56.650 --> 01:29:58.130
So what is Kubernetes?

01:29:58.130 --> 01:29:59.130
By Kubernetes.

01:30:00.910 --> 01:30:02.130
All these are features of

01:30:02.130 --> 01:30:04.010
Kubernetes. Scheduling,

01:30:04.010 --> 01:30:05.970
automated, self-healing,

01:30:06.330 --> 01:30:07.470
loadouts and rollbacks,

01:30:08.210 --> 01:30:09.490
for the scaling and load balancing,

01:30:10.770 --> 01:30:11.970
infrastructure, loosely

01:30:11.970 --> 01:30:14.150
coupled, auto-scale,

01:30:14.310 --> 01:30:15.070
all these.

01:30:16.870 --> 01:30:17.610
So how does it work?

01:30:18.730 --> 01:30:20.530
Actuals in enterprises

01:30:20.530 --> 01:30:22.150
we create

01:30:22.150 --> 01:30:23.390
three masters.

01:30:25.050 --> 01:30:26.230
Because this goes down

01:30:26.230 --> 01:30:27.270
what will happen.

01:30:27.830 --> 01:30:30.370
But for testing, for playing around

01:30:30.370 --> 01:30:31.810
you would create

01:30:31.810 --> 01:30:33.570
something like a single master

01:30:33.570 --> 01:30:34.490
with two nodes.

01:30:35.650 --> 01:30:37.950
Now I'll explain this

01:30:37.950 --> 01:30:40.270
diagram and then I want you to watch a video

01:30:40.270 --> 01:30:41.510
to make the concept clear.

01:30:42.770 --> 01:30:44.210
Now let's consider that you want to

01:30:44.210 --> 01:30:46.210
set up a cluster of Kubernetes.

01:30:47.250 --> 01:30:48.370
Like a master in this.

01:30:48.870 --> 01:30:49.950
So you tell me now

01:30:49.950 --> 01:30:52.110
how many VMs have to create for this

01:30:52.110 --> 01:30:54.390
diagram. Everyone, how many VMs

01:30:54.390 --> 01:30:56.350
are required to set up this diagram?

01:30:56.530 --> 01:30:58.090
Please come on, you can immediately answer.

01:30:58.210 --> 01:30:59.830
How many VMs are required to set up this now?

01:30:59.990 --> 01:31:01.890
You can put the chat. You want to talk?

01:31:02.010 --> 01:31:03.670
You can put the chat to confirm.

01:31:04.010 --> 01:31:06.150
How many VMs are required? Yes, you're right.

01:31:06.590 --> 01:31:07.990
So this for a master

01:31:08.490 --> 01:31:09.150
and three.

01:31:09.930 --> 01:31:11.150
And who is this?

01:31:12.470 --> 01:31:13.450
Who are these developers?

01:31:14.190 --> 01:31:15.730
Is it you or your customers?

01:31:16.110 --> 01:31:17.450
It is your company.

01:31:19.150 --> 01:31:20.390
And these are your

01:31:21.330 --> 01:31:22.590
clients. Very clear till now?

01:31:22.590 --> 01:31:24.230
So what you do is

01:31:24.230 --> 01:31:26.390
you need to create three VMs

01:31:26.390 --> 01:31:28.310
and you have to allow specific ports

01:31:28.310 --> 01:31:30.610
on each of the VMs. And you need

01:31:30.610 --> 01:31:32.130
to first install

01:31:32.130 --> 01:31:34.310
a container platform like Docker.

01:31:34.730 --> 01:31:36.170
So you need to install Docker

01:31:36.170 --> 01:31:37.590
or Containerd

01:31:38.210 --> 01:31:40.710
on all the machines. You first need

01:31:40.710 --> 01:31:42.470
to have the VMs, the ports,

01:31:42.670 --> 01:31:44.550
then install Containerd or DockerD on all the

01:31:44.550 --> 01:31:44.870
machines.

01:31:46.450 --> 01:31:48.430
Then you have to install Kubernetes

01:31:48.430 --> 01:31:50.750
software on all of them.

01:31:50.750 --> 01:31:51.570
Install Kubernetes.

01:31:53.230 --> 01:31:54.870
And now you would make one

01:31:54.870 --> 01:31:56.630
machine as a master. The same one

01:31:56.630 --> 01:31:58.770
that your Docker swaps. So on which machine is the bigger

01:31:58.770 --> 01:32:00.730
one? You would say

01:32:02.390 --> 01:32:03.430
QADM space

01:32:03.430 --> 01:32:04.030
in it.

01:32:05.630 --> 01:32:07.150
So this will become the master.

01:32:07.430 --> 01:32:08.710
It means you're going to create

01:32:08.710 --> 01:32:10.370
all these ports.

01:32:12.210 --> 01:32:12.790
These are for

01:32:12.790 --> 01:32:14.790
management. And it gives

01:32:14.790 --> 01:32:16.690
you a token. You run the token

01:32:16.690 --> 01:32:18.950
on these machines. They get

01:32:18.950 --> 01:32:19.310
joined.

01:32:20.890 --> 01:32:22.950
And it will contain first three VMs

01:32:24.050 --> 01:32:24.850
with proper

01:32:24.850 --> 01:32:26.810
ports with access.

01:32:27.150 --> 01:32:29.170
Then install container software

01:32:30.610 --> 01:32:32.970
on it. Then

01:32:32.970 --> 01:32:33.890
install Kubernetes.

01:32:35.230 --> 01:32:36.810
You queue a QADM

01:32:36.810 --> 01:32:39.210
in it. It gives you a token.

01:32:39.470 --> 01:32:40.170
And then you join.

01:32:40.730 --> 01:32:42.970
This is how we join the cluster. Make a cluster.

01:32:43.190 --> 01:32:44.010
Initial steps.

01:32:45.010 --> 01:32:45.710
Do hands on.

01:32:46.370 --> 01:32:47.930
Now these customers

01:32:47.930 --> 01:32:49.710
this is you guys.

01:32:49.990 --> 01:32:51.670
As I talked about you're not supposed to

01:32:51.670 --> 01:32:53.230
directly log in. This is your frontend.

01:32:53.690 --> 01:32:55.610
This is your backend. These are

01:32:55.610 --> 01:32:57.610
the worker nodes. We're talking about slave nodes.

01:32:57.790 --> 01:32:58.470
Worker or slaves.

01:32:59.790 --> 01:33:01.710
This is going to run your applications

01:33:02.710 --> 01:33:03.250
ports.

01:33:04.190 --> 01:33:05.070
Not a management one.

01:33:05.450 --> 01:33:07.390
These are all the management ports.

01:33:07.590 --> 01:33:09.710
API, central manager, scheduler

01:33:10.370 --> 01:33:11.330
all these things.

01:33:12.430 --> 01:33:13.370
This is you.

01:33:14.130 --> 01:33:15.710
And these are customers.

01:33:16.310 --> 01:33:17.830
So customers they need

01:33:17.830 --> 01:33:18.950
not go through master.

01:33:20.310 --> 01:33:21.630
So example let's consider

01:33:21.630 --> 01:33:23.830
that some website like

01:33:23.830 --> 01:33:25.270
in Singapore not sure.

01:33:25.750 --> 01:33:27.690
Let's consider that booking.com.

01:33:27.850 --> 01:33:29.850
Some website we talked about.

01:33:29.850 --> 01:33:31.470
The booking.com is hosted

01:33:31.470 --> 01:33:32.370
on Kubernetes.

01:33:33.290 --> 01:33:35.610
They need not go through the master.

01:33:36.950 --> 01:33:37.490
You will have

01:33:37.490 --> 01:33:39.010
a load balancer in here.

01:33:39.450 --> 01:33:41.430
And they hit booking.com. The traffic

01:33:41.430 --> 01:33:43.390
goes to load balancer and reaches these

01:33:43.390 --> 01:33:45.650
backends which is hosting them.

01:33:46.050 --> 01:33:47.570
Master is just only for your

01:33:47.570 --> 01:33:49.050
use case not for your clients.

01:33:50.350 --> 01:33:51.370
So what are components?

01:33:51.830 --> 01:33:52.890
So when you say

01:33:53.430 --> 01:33:55.850
when you run any commands

01:33:55.850 --> 01:33:56.730
in Kubernetes

01:33:56.730 --> 01:33:59.430
we use a tool called as kubectl.

01:34:01.150 --> 01:34:02.270
kubectl means

01:34:02.270 --> 01:34:03.450
is your command line

01:34:03.450 --> 01:34:04.070
interface.

01:34:05.570 --> 01:34:07.590
And you can say that I want to create

01:34:07.590 --> 01:34:08.050
a pod.

01:34:09.090 --> 01:34:09.610
Run.

01:34:10.190 --> 01:34:12.050
And give a pod name like example.

01:34:13.650 --> 01:34:14.030
And then

01:34:14.030 --> 01:34:16.130
mention hyphen hyphen image

01:34:17.010 --> 01:34:18.050
equals nginx

01:34:18.050 --> 01:34:19.210
image name.

01:34:20.130 --> 01:34:21.890
So this will create a pod name

01:34:21.890 --> 01:34:24.290
example with one container nginx.

01:34:25.250 --> 01:34:26.050
So first the

01:34:26.050 --> 01:34:28.010
request would go to API. API

01:34:28.010 --> 01:34:28.990
is like a translator.

01:34:30.350 --> 01:34:32.190
So if you want to speak to someone you have to go through

01:34:32.190 --> 01:34:32.830
the API server.

01:34:34.250 --> 01:34:36.090
And the API will send the request to

01:34:37.630 --> 01:34:38.190
scheduler.

01:34:38.530 --> 01:34:40.210
And the ETCD is your

01:34:40.210 --> 01:34:42.290
database. So these both

01:34:42.290 --> 01:34:43.150
will work together.

01:34:43.890 --> 01:34:46.010
And then it will again decide which node

01:34:46.010 --> 01:34:48.130
it informed the API server which node.

01:34:48.810 --> 01:34:50.430
And API server would decide

01:34:50.430 --> 01:34:52.010
it will go and say as

01:34:52.010 --> 01:34:53.990
the rules it will go and say either this

01:34:53.990 --> 01:34:55.550
or this will have entry.

01:34:56.890 --> 01:34:58.150
And every node would

01:34:58.150 --> 01:35:00.430
have an agent called as kubectl.

01:35:00.650 --> 01:35:02.330
That is going to create the

01:35:02.330 --> 01:35:03.990
pod and inside the pod

01:35:03.990 --> 01:35:05.730
the container gets created.

01:35:06.370 --> 01:35:06.890
This is the pod.

01:35:07.870 --> 01:35:09.070
Request first go to API.

01:35:09.870 --> 01:35:11.830
Then go to scheduler.

01:35:11.930 --> 01:35:13.770
It will decide which node and it will inform

01:35:13.770 --> 01:35:15.770
API and API will go and say which node.

01:35:16.110 --> 01:35:17.950
And kubectl the agent is going to create

01:35:17.950 --> 01:35:19.990
the pod and the container inside it.

01:35:21.730 --> 01:35:22.350
This is what

01:35:22.350 --> 01:35:23.090
is the process.

01:35:24.830 --> 01:35:26.130
And whenever something is

01:35:26.130 --> 01:35:28.030
run in here it updates

01:35:28.030 --> 01:35:29.470
the database immediately.

01:35:29.610 --> 01:35:32.670
So this is for

01:35:32.670 --> 01:35:34.810
metadata. It has

01:35:34.810 --> 01:35:36.630
all the configurations of

01:35:36.630 --> 01:35:38.490
entire cluster like configuration of

01:35:38.490 --> 01:35:40.290
CPU, memory, those are

01:35:40.290 --> 01:35:42.410
the database. So API is for

01:35:42.410 --> 01:35:44.250
Fenton. This is for scheduling.

01:35:44.770 --> 01:35:46.610
This is for metadata. They take

01:35:46.610 --> 01:35:48.490
regular backups. Now what is this?

01:35:48.930 --> 01:35:50.550
So right now we have considered

01:35:50.550 --> 01:35:52.550
3 pods and 6. So current

01:35:52.550 --> 01:35:54.610
is 6 pods

01:35:54.610 --> 01:35:56.850
of application. And desired

01:35:56.850 --> 01:35:58.750
was 6. And current

01:35:58.750 --> 01:36:00.850
is 6. All good. So desired

01:36:00.850 --> 01:36:01.970
is going to current.

01:36:03.630 --> 01:36:05.190
Now this went down.

01:36:06.710 --> 01:36:07.250
Now what will happen

01:36:07.250 --> 01:36:08.870
this time? There is some

01:36:08.870 --> 01:36:10.830
problem. So kubectl

01:36:10.830 --> 01:36:12.810
which is monitoring this pod

01:36:14.130 --> 01:36:14.970
it will

01:36:14.970 --> 01:36:16.630
go to the API server.

01:36:16.870 --> 01:36:18.850
It will always let any community interface

01:36:18.850 --> 01:36:21.050
to the API server. It will

01:36:21.050 --> 01:36:22.810
inform to controller manager.

01:36:23.870 --> 01:36:24.870
The community control manager.

01:36:25.870 --> 01:36:26.950
So control manager is your

01:36:26.950 --> 01:36:28.870
component for operations. Now

01:36:28.870 --> 01:36:30.790
this has a component called replica

01:36:30.790 --> 01:36:31.730
set.

01:36:33.470 --> 01:36:34.030
Replicaset

01:36:35.250 --> 01:36:36.370
which would

01:36:36.370 --> 01:36:38.590
store this value before.

01:36:39.890 --> 01:36:40.630
The value will

01:36:40.630 --> 01:36:42.650
understand there is a problem. It is not

01:36:42.650 --> 01:36:44.810
equal because 6 was 6. It will understand

01:36:44.810 --> 01:36:46.570
there is a problem. Replicaset

01:36:46.570 --> 01:36:48.770
and it will help now.

01:36:48.850 --> 01:36:50.650
So what does it do? It will internally

01:36:50.650 --> 01:36:52.870
inform the API that we need help of scheduler.

01:36:53.570 --> 01:36:54.770
It will again decide

01:36:54.770 --> 01:36:56.750
and immediately go ahead and

01:36:56.750 --> 01:36:58.750
the new pod will get created immediately.

01:37:00.850 --> 01:37:02.570
This is how a control manager works.

01:37:03.330 --> 01:37:04.710
So any issues of operation

01:37:04.710 --> 01:37:06.870
comes in then the

01:37:06.870 --> 01:37:08.570
agent will inform to API

01:37:08.570 --> 01:37:09.830
and this will happen.

01:37:11.090 --> 01:37:12.710
Tomorrow if there is some load on it

01:37:12.710 --> 01:37:14.570
more it will create one more node. It can be

01:37:14.570 --> 01:37:15.330
a controller manager.

01:37:17.030 --> 01:37:18.170
Autoscaling is required.

01:37:18.670 --> 01:37:20.530
This will come in and help to create autoscaling.

01:37:20.810 --> 01:37:22.710
So this is for frontend.

01:37:22.750 --> 01:37:24.230
This is for operations.

01:37:24.230 --> 01:37:27.210
This is for

01:37:27.730 --> 01:37:28.210
scheduling.

01:37:29.230 --> 01:37:30.650
And this is for

01:37:30.650 --> 01:37:31.590
key value store.

01:37:32.290 --> 01:37:33.970
For metadata and configurations.

01:37:35.690 --> 01:37:36.670
And this is for agents.

01:37:37.130 --> 01:37:38.590
You will also have cubelets in here.

01:37:38.810 --> 01:37:39.650
They are not shown in the diagram.

01:37:39.890 --> 01:37:42.670
Cubelets are agents.

01:37:43.950 --> 01:37:44.930
So they are

01:37:44.930 --> 01:37:46.390
responsible for creating a pod

01:37:46.390 --> 01:37:48.250
and a container inside it. This is one.

01:37:49.350 --> 01:37:50.670
They also do health checks.

01:37:50.910 --> 01:37:52.530
Health check means are they working fine.

01:37:52.530 --> 01:37:54.910
So cubelet is for

01:37:54.910 --> 01:37:55.690
health checks.

01:37:57.370 --> 01:37:58.570
And creating

01:37:58.570 --> 01:38:00.410
the components.

01:38:01.930 --> 01:38:02.530
See advance

01:38:03.230 --> 01:38:04.150
health checks.

01:38:06.110 --> 01:38:06.610
Not much use.

01:38:06.970 --> 01:38:08.490
QProxy is what

01:38:08.490 --> 01:38:10.210
users can come. We are talking about

01:38:10.210 --> 01:38:12.770
firewall rules, network rules

01:38:12.770 --> 01:38:14.950
as to what traffic can reach

01:38:14.950 --> 01:38:17.010
from outside, from where the traffic can come.

01:38:17.090 --> 01:38:18.330
We define it as QProxy.

01:38:19.750 --> 01:38:20.430
You can also define

01:38:20.430 --> 01:38:22.510
QProxy rules that allow this

01:38:22.510 --> 01:38:24.670
to communicate or not to communicate.

01:38:24.850 --> 01:38:25.630
We define rules.

01:38:26.230 --> 01:38:28.390
So QProxy is for network

01:38:28.390 --> 01:38:30.370
rules what traffic can come

01:38:30.370 --> 01:38:32.350
from outside and how

01:38:32.350 --> 01:38:34.490
they can communicate internally. We define

01:38:34.490 --> 01:38:36.470
rules with QProxy. Last one, you see a

01:38:36.470 --> 01:38:38.250
plugin. So this is a layer 3

01:38:38.250 --> 01:38:40.510
network. So Q1S does

01:38:40.510 --> 01:38:42.230
not have an own network.

01:38:43.430 --> 01:38:44.130
And Flannel,

01:38:44.270 --> 01:38:46.090
Vimnet, these are third party

01:38:46.090 --> 01:38:48.310
companies. And they

01:38:48.310 --> 01:38:50.570
provide you some network from layer 3

01:38:50.570 --> 01:38:52.470
which you need to

01:38:52.470 --> 01:38:54.190
add it by creating your

01:38:54.190 --> 01:38:56.350
cluster. And using

01:38:56.350 --> 01:38:58.650
these networks, Pod gets IP addresses.

01:38:59.210 --> 01:39:00.210
So your masters,

01:39:00.910 --> 01:39:02.130
your worker nodes and all these

01:39:02.130 --> 01:39:02.770
components.

01:39:04.610 --> 01:39:05.370
Are you looking on it?

01:39:05.730 --> 01:39:07.690
So I wanted to watch a video.

01:39:08.530 --> 01:39:10.130
And then we summarize this.

01:39:10.790 --> 01:39:12.010
So video is good for you.

01:39:12.190 --> 01:39:13.750
Is it audible, everyone?

01:39:18.310 --> 01:39:20.630
Yes team, any questions in the diagram? Hope the flow

01:39:20.630 --> 01:39:22.490
is good. Are we clear? This diagram?

01:39:22.910 --> 01:39:23.430
The flow?

01:39:27.050 --> 01:39:28.410
So this is what we are talking about

01:39:28.410 --> 01:39:30.430
architecture. And in

01:39:30.430 --> 01:39:32.510
enterprise, we cannot just use one machine.

01:39:32.710 --> 01:39:33.930
We use multiple machines.

01:39:35.350 --> 01:39:36.710
We also have a dashboard

01:39:36.710 --> 01:39:38.430
but we don't use much

01:39:38.430 --> 01:39:39.310
interdependence.

01:39:41.930 --> 01:39:42.710
And actually

01:39:42.710 --> 01:39:44.850
we have multiple worker nodes we use.

01:39:45.830 --> 01:39:46.610
And ETCD

01:39:46.610 --> 01:39:48.990
could be part of, so control plane.

01:39:49.350 --> 01:39:50.410
What's control plane, remember?

01:39:50.430 --> 01:39:52.610
Control plane is APS server.

01:39:52.930 --> 01:39:53.830
Controller management is KDE.

01:39:55.930 --> 01:39:56.730
ETCD data

01:39:56.730 --> 01:39:58.870
component could be part of control plane

01:39:58.870 --> 01:40:00.710
or outside control plane. This is

01:40:00.710 --> 01:40:01.330
one method.

01:40:03.130 --> 01:40:04.470
Or we can also have

01:40:04.470 --> 01:40:06.590
ETCD could be

01:40:06.590 --> 01:40:07.590
outside also.

01:40:09.270 --> 01:40:10.850
Because these are very critical database.

01:40:11.730 --> 01:40:12.650
So either you can configure

01:40:12.650 --> 01:40:14.150
to be part of a control plane

01:40:14.150 --> 01:40:16.210
or outside control plane.

01:40:16.430 --> 01:40:18.110
Same in here.

01:40:18.490 --> 01:40:20.170
So let's see the last link

01:40:20.170 --> 01:40:22.210
and then close the day. So let's summarize

01:40:22.210 --> 01:40:25.290
what you learned of the components from this link.

01:40:26.490 --> 01:40:28.450
Open this link and let's look into this

01:40:28.450 --> 01:40:29.510
what does it have.

01:40:31.110 --> 01:40:32.350
This talks about components.

01:40:33.030 --> 01:40:34.270
The core components of

01:40:34.270 --> 01:40:36.570
cluster, control plane.

01:40:37.250 --> 01:40:38.630
Control plane, ETCD

01:40:38.630 --> 01:40:40.650
could be part of outside

01:40:41.710 --> 01:40:42.710
control plane.

01:40:43.030 --> 01:40:46.310
in traditional controller managers.

01:40:49.790 --> 01:40:50.650
One of my worker nodes.

01:40:52.510 --> 01:40:53.490
What node consists of?

01:40:53.510 --> 01:40:54.650
It consists of cubelets

01:40:57.010 --> 01:40:58.810
cubeproxy or network roles.

01:40:59.990 --> 01:41:00.770
Container runtime is

01:41:00.770 --> 01:41:02.190
like Docker software, Rocktober,

01:41:02.290 --> 01:41:04.750
for managing containers or container runtime.

01:41:07.730 --> 01:41:08.510
And we can configure

01:41:08.510 --> 01:41:10.390
additional components like

01:41:10.390 --> 01:41:12.950
DNS, Dashboard,

01:41:13.350 --> 01:41:13.770
Monitor.

01:41:14.750 --> 01:41:16.870
All these things we can do it of course.

01:41:16.990 --> 01:41:18.730
Next thing, I think I'm going to

01:41:18.730 --> 01:41:19.730
stop here.

01:41:20.090 --> 01:41:22.330
So we talked about what are

01:41:22.330 --> 01:41:23.630
Kubernetes and why Kubernetes.

01:41:24.410 --> 01:41:26.270
We also learned about different important

01:41:26.270 --> 01:41:28.450
components and the workflow

01:41:28.450 --> 01:41:29.330
of Kubernetes.

01:41:30.150 --> 01:41:32.010
So tomorrow we will still continue the same model

01:41:32.010 --> 01:41:34.030
we will talk about kubectl

01:41:34.030 --> 01:41:35.950
as to how to interact with cluster.

01:41:37.210 --> 01:41:38.330
And then

01:41:38.330 --> 01:41:40.130
we will talk about CNIs,

01:41:40.150 --> 01:41:41.250
network in detail.

01:41:41.470 --> 01:41:43.950
We will talk about more about network in very brief.

01:41:45.550 --> 01:41:46.250
So DrSWOM

01:41:46.250 --> 01:41:48.830
is very simple.

01:41:49.570 --> 01:41:49.990
Kubernetes

01:41:49.990 --> 01:41:51.110
is advanced.

01:41:51.790 --> 01:41:53.450
Looking for more advanced features,

01:41:53.930 --> 01:41:56.050
then we go for DrSWOM

01:41:56.050 --> 01:41:56.870
is has very less.

01:41:58.850 --> 01:42:00.510
I'm boring in here right now.

01:42:00.530 --> 01:42:02.310
Any questions on today's topic?

01:42:02.370 --> 01:42:03.250
If you want to ask,

01:42:03.250 --> 01:42:05.710
you can ask now. We talked about containers.

01:42:05.790 --> 01:42:07.550
We talked about Dockers.

01:42:07.810 --> 01:42:09.370
We talked about how to

01:42:09.370 --> 01:42:10.270
install Docker.

01:42:10.990 --> 01:42:13.270
How do we use Docker Hub.

01:42:13.550 --> 01:42:15.290
Learned about Docker File.

01:42:15.670 --> 01:42:16.870
Docker Compose.

01:42:17.850 --> 01:42:18.330
Networking.

01:42:18.690 --> 01:42:20.590
Any questions you have you can ask me now.

01:42:20.830 --> 01:42:21.690
We still have time.

01:42:22.490 --> 01:42:25.070
So when you access the labs,

01:42:25.850 --> 01:42:26.730
we're going to set it up.

01:42:26.770 --> 01:42:28.190
We're going to install it ourselves.

01:42:29.830 --> 01:42:31.490
We'll do it. Because you need to understand

01:42:31.490 --> 01:42:33.190
to do it correctly. We're going to do this.

01:42:33.250 --> 01:42:34.590
We're going to install Kubernetes.

01:42:35.210 --> 01:42:36.550
We're going to work on all the labs.

01:42:36.750 --> 01:42:37.570
We have lots of labs.

01:42:38.330 --> 01:42:41.490
We're going to install Kubernetes. We're going to create namespaces,

01:42:41.890 --> 01:42:43.430
ports, deployments,

01:42:43.710 --> 01:42:44.790
networking, storage.

01:42:44.930 --> 01:42:45.890
Lots of topics are there.

01:42:46.250 --> 01:42:47.910
We'll be using three nodes tomorrow.

01:42:48.830 --> 01:42:50.890
The third mission is the bigger size.

01:42:51.750 --> 01:42:53.250
The third one

01:42:53.250 --> 01:42:54.430
is medium.

01:42:54.630 --> 01:42:55.510
I'll talk about this tomorrow.

01:42:56.370 --> 01:42:57.710
What do I give the third one?

01:42:57.710 --> 01:43:00.030
The third IP, which I gave it to you,

01:43:00.090 --> 01:43:01.730
that's a medium. It's a bigger size.

01:43:02.550 --> 01:43:03.590
So in that we'll install

01:43:03.590 --> 01:43:05.530
for master. Master equals a bigger size.

01:43:06.270 --> 01:43:07.770
And these two nodes will

01:43:07.770 --> 01:43:09.650
not use Docker. We'll use

01:43:09.650 --> 01:43:11.810
the same missions. We'll use two

01:43:11.810 --> 01:43:13.570
for worker nodes and one for the master.

01:43:14.370 --> 01:43:15.970
So each one will have three missions.

01:43:16.490 --> 01:43:17.830
So one is for master and another

01:43:17.830 --> 01:43:20.050
two is for your worker nodes.

01:43:20.110 --> 01:43:21.850
Yes team. Hope you

01:43:21.850 --> 01:43:23.850
all have saved your IPs at the

01:43:23.850 --> 01:43:25.090
back end. The IPs everyone.

01:43:26.550 --> 01:43:28.230
You all have the list at your end

01:43:28.230 --> 01:43:29.950
of your VMs? Yes? No?

01:43:30.110 --> 01:43:32.430
Any questions? Okay. Very silent team.

01:43:32.550 --> 01:43:33.510
I'm not sure.

01:43:34.870 --> 01:43:35.390
Yes Gene.

01:43:37.750 --> 01:43:38.190
CK.

01:43:39.270 --> 01:43:40.050
Others? Charles?

01:43:40.210 --> 01:43:41.290
That'll be good. It's a read one D.

01:43:42.210 --> 01:43:43.970
You click on please read one D.

01:43:44.190 --> 01:43:45.570
If you click on it,

01:43:46.170 --> 01:43:47.330
it's a read one D. Do you understand?

01:43:48.850 --> 01:43:49.910
I think we're good today.

01:43:50.450 --> 01:43:51.710
We'll catch up tomorrow.

01:43:51.850 --> 01:43:53.770
I'll request you to, if possible,

01:43:53.770 --> 01:43:55.810
look into how we can use

01:43:55.810 --> 01:43:57.630
VI. Because

01:43:57.630 --> 01:43:59.770
tomorrow and day after, we are going to

01:43:59.770 --> 01:44:01.710
create lots of files using VI editors.

01:44:02.670 --> 01:44:03.970
So I want you to be comfortable

01:44:03.970 --> 01:44:06.070
about how to create a VF file.

01:44:06.470 --> 01:44:07.770
How do you update it?

01:44:08.010 --> 01:44:09.750
How do you save it and come back?

01:44:10.210 --> 01:44:11.870
And how you can use CAD command?

01:44:12.650 --> 01:44:14.030
So be comfortable

01:44:14.030 --> 01:44:15.810
with using Linux basic

01:44:15.810 --> 01:44:17.450
commands. How do you go inside it?

01:44:17.890 --> 01:44:19.730
If not, you're going to get stuck in the

01:44:19.730 --> 01:44:20.010
labs.

01:44:21.590 --> 01:44:22.850
Request you to

01:44:22.850 --> 01:44:24.410
read through the contents what we

01:44:24.410 --> 01:44:26.590
learned today. As well as

01:44:26.590 --> 01:44:28.270
the basics of VI editors.

01:44:28.970 --> 01:44:30.310
And how do you browse through Linux?

01:44:30.450 --> 01:44:32.010
You get lots of information

01:44:32.670 --> 01:44:34.410
and you can want to practice.

01:44:36.230 --> 01:44:38.090
Alright. Thank you team.

01:44:38.330 --> 01:44:39.170
See you tomorrow. Bye bye.

01:44:51.710 --> 01:44:52.830
Thanks, Charles.

01:44:53.130 --> 01:44:54.150
Thanks, June.

01:44:54.770 --> 01:44:56.190
Sorry, question is not clear.

01:44:56.430 --> 01:44:57.950
What's the question? Yeah, recording

01:44:57.950 --> 01:44:59.210
is being happening.

01:45:10.330 --> 01:45:10.810
Welcome.

01:45:13.030 --> 01:45:14.530
Uh, Charles?

01:45:19.230 --> 01:45:20.110
Any questions?

01:45:22.330 --> 01:45:23.410
Okay, thank you.

01:45:23.490 --> 01:45:25.550
If you're okay, you could

01:45:25.550 --> 01:45:27.210
log off for the session.

01:45:28.290 --> 01:45:29.270
Yeah, okay. Yes,

01:45:29.390 --> 01:45:30.330
Joan. How about the session?

01:45:30.850 --> 01:45:31.270
Sure.

01:45:32.970 --> 01:45:34.630
Okay. Okay. I think we can do

01:45:34.630 --> 01:45:36.550
one second. Is it okay

01:45:36.550 --> 01:45:38.570
that we can remove manually? Not sure we have

01:45:38.570 --> 01:45:40.690
option. Yeah, I think you might want

01:45:40.690 --> 01:45:41.570
to give your wish.

01:45:43.490 --> 01:45:44.070
Yes.

01:45:44.150 --> 01:45:46.030
Yes, Joan. You want to

01:45:46.030 --> 01:45:47.770
I think you have option to

01:45:47.770 --> 01:45:49.770
remove Charles from your

01:45:49.770 --> 01:45:50.190
post.

01:46:01.350 --> 01:46:03.650
Okay. How is it?

01:46:13.550 --> 01:46:13.950
Yeah,

01:46:13.950 --> 01:46:15.750
they didn't talk.

01:46:15.970 --> 01:46:17.750
I'm not sure why they don't talk.

01:46:17.970 --> 01:46:19.390
Any reason, I'm not sure. They don't talk.

01:46:19.730 --> 01:46:21.410
Yeah. Yes.

01:46:21.650 --> 01:46:23.810
Okay. No problem. No problem.

01:46:24.070 --> 01:46:25.650
Okay. Just want to understand. Okay. I think we're doing

01:46:25.650 --> 01:46:26.270
good.

01:46:27.190 --> 01:46:28.450
I think we're good.

01:46:30.130 --> 01:46:31.590
Yeah. I think we'll catch up

01:46:31.590 --> 01:46:33.370
tomorrow. Any inputs you want to give to me?

01:46:33.630 --> 01:46:35.330
That's fine. That's fine. Yeah.

01:46:35.750 --> 01:46:37.050
Any inputs you want to give to me?

01:46:37.590 --> 01:46:39.490
Yeah. Okay. Okay. Might be the reason.

01:46:39.490 --> 01:46:41.990
Yeah, Charles. Charles is very

01:46:41.990 --> 01:46:43.510
Charles is very similar. Okay.

01:46:43.670 --> 01:46:45.670
No problem. We'll catch up tomorrow.

01:46:46.030 --> 01:46:47.310
Thank you. Thank you. Bye-bye.