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--> try to do the same try to tag it and push it the same which I did before try to tag --> the image and push it to a docker hub so do a docker space tag no no no first you tag --> tag it docker space tag copy the repo name img01 0 2 sorry 0 2 and space your repo name in your --> docker hub the complete name which has your name docker hub yeah colon you need to have a --> name there so after this colon colon what name you want there you can say that latest --> something yes good press enter now use the app arrow instead of tag just use the push --> then you same command docker push yeah remove the word yeah there you need not even have the --> image name image is not required one more space delete it no no no not required not required --> delete one space delete one space yeah press enter so now wait for some time is going to --> push this image every layer getting pushed now go back to repo and check if you see a --> refresher repo and do you see a new image please confirm yes yes yes this is an example --> okay okay so now coming to gene the same yeah good colon colon gene the end just type in colon --> shift and semicolon button press that open colon yeah give some name yeah the name what --> you want so the image is local you want to see the image is a new name in the browser --> okay want to say no issues press enter yeah now do push use app arrow okay that's fine --> whichever you want yeah copy the complete after gene copy from gene copy and paste from gene --> yes enter this now refresh your repository in your docker hub you will be seeing a new image --> now you see this refresh yeah yeah so it means that others can start using the image which you --> tested yeah it's a simple process so able to create a image we saw that it worked in the --> browser and we shared with others the others can start using the image this is our enterprises --> your SMEs would create a image and give access to you all and then you start doing the same --> yeah the concept everyone the last SDK are we good okay okay a team so in case you feel --> that it's taking more time a lab you can also observe mine and ask questions because sometimes --> the time and your speed and because of the Linux issues you might be having so I want you --> to ask questions so I think we're good to talk to find out now next one is docker compose --> so what is docker compose let me give an example now have you heard about application --> wordpress wordpress what is wordpress anyone wordpress application what purpose we use this --> anyone want to try do you all work on do you all know what's a blog everyone what's a blog --> blog yes no a blog in which you would write in some content correct technical box website --> so this will have two services you can have wordpress and it uses mysql the blog the --> is wordpress container and the back end is mysql so both needs to work together --> so I have c1 and c2 so I can allow them to work together easily that is docker compose --> and understanding if a two containers and I want the two containers to work together --> then I can use docker compose make sense everyone --> so I can put in the concentrations of both these of web server mysql in one single file --> and they run together so this will make my application this is called docker compose --> so using docker compose you create templates and you can reuse the templates for different --> environment so example now if we go to contents we're talking about the lab --> I use simple lab lab four this is my use case so I have two containers running on so host --> me node means on your host mission I have two containers wordpress and mysql --> and I want them to work together and I also have a data dessert container for database I --> have a storage on my host so even if I lose my container I can still have the data on my --> host yeah so whenever you have something like this and we have multiple containers you want --> to work together then you talk a conference so for this I do install docker compose --> is docker install and we confirm docker compose version and then what I do is create --> a wordpress folder and inside that get a yaml file and I will call up the details of both --> the version of your docker compose file services and first defining my db details --> which db all the information and we also define volumes sorry --> please speak out oh okay the voice problem okay so I've stopped my bandwidth for some reason --> because using so much of bandwidth we're also having labs limiting mode bandwidth --> I've stopped my webcam okay okay did you understand till what I explained till here --> okay let's go step by step but first can you all open the document of lab four open lab four --> document to that now go down and run this command copy this complete command is going --> to download docker compose software for a terminal be under cd type in cd he's been --> default once and paste that command --> paste it --> and leave it it'll have something like this and now you want to run this command copy and paste --> now let me know the docker compose version --> yeah confirm the docker compose version once you're done --> the steps two commands first one is for look at paste in the chat please --> what a version you see in the chat everyone in 8.5 okay others so this is how we install so --> what happened in here this command downloaded the docker compose software from this location --> based on your architecture so your name is a command in linux to give you the kernel --> details so based on your os it went ahead and download the software into user local bin docker --> compose this location and it does not have execute permissions so we give execute permissions --> and hence we able to see docker compose now type in docker hyphen compose and press enter --> type in docker hyphen compose and press enter now these are the commands which you can use --> for docker compose you can use build config create down events exec all these are the --> commands which you can use for docker compose yeah so now create a directory so create a --> directory for wordpress for example or word simple create a new directory mkdir space word --> go inside this cd word and now copy the yaml file contents from the document --> so copy the contents to first your notepad copy this to a notepad it looks something --> like this let me explain see the double quotes --> could you please remove the double quotes word sometimes copied like this from the --> terminal so copy it remove it and add the double quotes manually copy the yaml file contents --> from version till the end to a notepad till here it's supposed to copy --> and after you copy it go back to doc and remove the double quotes --> and manually add the double quotes is it done okay i'll be aware of how to use yaml do you --> work on yaml or no have you used yaml before or no basically anything is okay if you want --> to use yaml file let me talk very brief so and when you go to contents in module one --> i give you yaml so yaml is a language like json using which you write in the --> configurations so yaml is for configuration language so we can use xml we can use json --> the latest one is yaml the yaml would look something like this so example you want to --> write yaml this is how you write xml this is how you write json and this is how we write --> yaml in yaml you would be having a heading and if these all belong to same level p --> one space and value key one space value key one space value to write something like this --> so all of the key value pairs using arrays it looks something like this --> actually it looks something like this --> so we have to write something like this in yaml docker compose requires yaml --> and indeed this is wrong because indonesia is wrong so you have to be very careful --> indonesia so with like this is what yaml looks so this now going to your --> document to copy to a notepad let me explain you what exactly is this happening this is a --> version number for docker compose a file version number docker services is a db service so this --> will go ahead and download the mysql image from docker hub and you go down you also --> see that a volume you're having so this volume would get created on the host --> and this volume was getting mapped into the container of database it means what a change --> you do in this location container is also get mapping on your host the first component is --> your host this is on your container restart always so restart always is a parameter --> in docker or container word technology in which it will restart the agent --> in case there's a problem the container and these are variables for your password --> username and these you're mapping your wordpressing here so you're mapping them --> because of your variables so calling up this in here and this in here something like this --> and then you're saying wordpress depends on so first this will get created a db --> then the second can get created depends on db it means once this is created it will get --> created a new container and which port you want to allow port 8000 on internet and port 80 is in --> a container so now i'm going to run this file copy the file run this and run a file in a --> put insert mode and then say i want to paste it --> i want to run it so now i'll escape colon wq and then i'll say doctor hyphen compose --> up up means run it hyphen d in the background detached mode so run it it goes ahead and --> runs all those commands to pull the images of your mysql first it runs it it sends --> it'll then it'll install your wordpress as per the lab it depends on --> and it'll create all the amount of variables in the back end --> so --> in a container so all steps have been done yeah just observing here so now if i do a docker --> images you see it downloaded the images of ubuntu and mysql --> and you see also wordpress all this got downloaded and if i do a docker ps --> this will be the containers of mysql and wordpress deploy instead of 8000 --> so now what i do is the same which i did before instead of 80 the default i'll say --> port number 8000 you see the applications coming up so front end is your wordpress if --> you do something it will also it will have a database in the back mysql in the back --> did you understand the lab everyone is the flow clear tomorrow if i want to recreate --> my application i have the template i can again rerun it i can make in some different --> images configurations so this is how i can use the same template to create multiple --> examples multiple use cases for a dev test and free trial yeah please do it and confirm --> once you're done the charge is working now on a new vm correct some yeah so so be careful --> when you do something because sometimes you run some command directly on the host or these --> it might get corrupted so when you before running any command be careful before on the --> commands okay okay thank you so junvi what i don't see a screen not sure i don't see --> see when they are white screen for him are you there okay what happened you're --> reporting a system or something okay do the lab confirm what the lab is done yes charles now --> access the public ip uh colon 8000 in the browser http i can do locally also http colon --> double slash public ip colon 8000 yeah yeah i'm talking to you so what i'm saying here is --> now --> that is flash public ip colon 8000 on your browser or on your local mission --> and do you see the workplace application --> so if you say the public ip minus for example --> the name local host also in here --> okay so i get ip --> current --> local host --> now i say local host colon so either you can do public ip or you can say --> uh local host on your local and then say it will not come because the word doesn't come up --> so you can see the browser are we good the lab okay now let's see some commands so now there --> are different commands using which you can work with docker compose we can use up we can use --> ps stop locks and down let's play around with this so let's do some operations so now --> do a docker compose so instead of using docker images i can see all those things using docker --> compose so if i can use docker compose images so these were created using docker compose --> you'd always want a docker ps but you're very specific want to understand --> what i can docker compose you can say docker compose images i can use ps --> so i can see all the information got created using docker compose --> so now for example once the logs of it so docker compose --> and say logs you can see all the logs of the environment --> are we clear everyone --> okay now the next one now let's do it down so i want i don't want this now i want to terminate --> i can say docker compose down --> it is stopping your containers now you go and refresh it is not that it's gone now just --> make it up just up observe it see just make now say up this time it will happen so quickly --> because it is having a copy on your host the volume --> because it had a copy of the data on this location a copy of the data on your host --> under db underscore data could tell me where would this folder get created in your host --> in which location which path we're not in the path where does it get created anyone --> the db underscore data on your host where did it get created in this location --> okay --> testing the db underscore data is going to get in which location what do you think --> this is your default directory of docker with the default directory of docker yes --> so go to location where docker and under that you have volumes --> and you see this here the word db data --> and under that you have data keep on going inside --> and you see this this is the contents of your container --> yeah so if deleted you see that wordpress contents are there inside this contents get --> mapped and if you don't want these contents also you can go to word --> and you can also do a docker compose down if you don't want even data in here you can say --> docker compose down i can have volumes determine everything will get terminated --> even the data in the back end yeah once i do a down last command the document --> i can volumes remove everything is done so now if i go to where live docker and if i --> wordpress you see here go to volumes and the volumes i don't see the wordpress folder dot --> com if we just make it down you will still have the data on a host if you don't want even --> that data on the host you need to use hyphenated volumes it will delete the volumes even so be --> good and so much you're done okay i think jun you're good any questions okay you're good --> charles are we good charles yeah because you came out a server you were in your window you --> had to log into server be careful so you have to again do ssh hyphen i the key and all are --> you getting it you're not inside the vm in which you did your docker lab we got it same --> steps how do you can do initially ssh hyphen i the key connect to a server --> log in a server no no no no one space space initially after ssh h space one space yeah yeah --> yeah yeah i think okay at public IP yeah now sudo su hyphen sudo su sudo su su su --> you face hyphen hyphen enter now do ls check whether you have word folder ls list --> enter where did you create the word folder which location i think it must be the project --> one go to project one cd project one i think it's in there enter deposit one --> enter why yes enter where is your folder of word very great didn't get you why again --> doing it others are good your next topic and you are looking different folder even different --> folder doing it wrong what is the word folder we created before it is not there create one --> mkdir mkdir space word can you convert no word yeah it's any name --> can you confirm docker compose install docker hyphen compose type in docker hyphen compose --> and version hyphen no space please not here after r no space hyphen space hyphen version --> space one space hyphen hyphen version where is docker compose i'm not sure what where --> do you very install docker compose okay can type in exit once again type in exit here --> type exit once only once please type in exit exit now run the command docker compose hyphen --> compose hyphen version center yes where did it create all the docker version before --> check the docker version check docker hyphen version in this location i charge --> charge very install docker which location do control c type in clear --> okay charge i'm not sure you need help us charge charge you need you need to let us know --> where you installed docker which machine which location others are good they proceed --> yes jone gene i think you're good yeah done it they're done no you must be in that folder --> the cd type in cd space word will be in your word folder wherever the docker compose file --> is there no no no cd space word w o r d yes there must be a location where you --> have written the yaml file here in this location now no no one second do ls --> do ls listed so you have to do any operation --> docker compose commands from this location with docker compose yes yes volumes --> yeah now it will terminate because because it needs to understand the location docker compose --> yaml either you're being the location or to copy the path of docker compose yaml so that --> it understands okay okay are we good whenever you have use case in enterprise in which you --> to create or integrate multiple containers to work together then you need to use docker compose --> but a single host is going to create all the single host machine the next topic so do you --> work on networking and volumes everyone do you work on volumes in storage in your projects --> yes now yeah yeah in your office do you work on volume storage generally not docker other --> knowledge of story do you work like so let me talk about volumes very please now there --> are different types of volumes so volumes means like a storage so you can have in the storage --> of the container right right now with it you can have the story the container outside the --> container on the force or you could have on the memory or other one is managed with docker --> so it means for example i can say to create a mapping onto a folder like tmp you define it --> this is called as a binary the other one what you write it created is your docker area so --> this will be under where the docker and the third one you could also take in a memory so --> to create the memory of the force so these are different options so tmpfs is temporary --> for memory and this is something which you cannot share between containers only for one container --> and this is only for docker linux it doesn't support docker for windows this is to have in --> the data outside the container on the host memory and this is only for temporary and --> you're going don't get additional charges for this because using memory of the force you --> mention the path on your host and this path would get mapped for example if you have mysql --> container and i can say to map it to a location like slash tmp on my host so what do you make --> changes in the container it could also get a copy in your tmp and even if we delete the --> container we still can delete the data from india it's a persistent this is based on --> docker volumes is what right now we saw an example it will create automatically under where --> lib docker and this is very much preferred because i can use the same volumes for windows --> or linux it doesn't depend on the file system and i can easily take backups manage because --> all docker base very easy to for you take a backup if you want to do a list of the volumes --> all these we can use docker commands so this is managed by docker very good it's as for --> both linux and windows you can share this volume with multiple containers --> and much more better performance rather than the bind what we talked about doing this --> you say docker volume create and give the name of the volume so docker volume create --> to create a docker volume and we want to use this same docker 1-19 --> name of the this name of the container which what do you want to use this is the volume --> on your host there is a bit docker and this is getting mapped your container under off --> data centers here so this is your name of the container container name this is the --> image name this is your shell and this is your mapping on the host and this is on your --> container so whatever change i do in the container under off data center will also get --> copied onto my data inside my where lib docker anytime you can see what is in docker you can --> do a docker inspect the container or docker inspect the volume name you can see what exactly --> the volume details where it's getting created all the information docker inspect the container --> name you see that it has a volume name this where there's a mapped driver local and the --> properties you can create list the same document here you cannot remove it if you're getting --> used you might want to remove the containers first and then you can do it and we can also --> so let's go to docker volumes --> so you can see this let me use the keyboard docker storage this is your --> documentation body mount bind mounts gfms mount all these are testing so do you feel that --> this hands-on is required for you on volume you feel that it's required then we can do --> if you feel that's not required you can skip the laps just for you because i want to --> standards are more important for you all do you need hands-on on this or no --> please confirm do you want to do a lab on this --> so that is yes or no please okay okay okay okay fine but is the concept clear did we get in --> theory of it everyone can assume the record fine networking next topic uh --> do you want to have a break or do to continue the next topic okay fine now let me now talk --> about docker networking so what is docker networking so when you install docker --> it creates default networks so now example --> example --> if i say docker network ls you see it creates the default networks --> and the first network is a bridge second host and none local it means this is used only --> within the same machine without networking not across the missions all these networks --> within your same mission and this is your network id so now if i say docker inspect --> and if i say bridge now this would give an ip address you see here 172 17 0.16 --> so this is the network from which containers get ip address so all the containers get attached --> to a gateway of this bridge the first one would get a gateway and all the containers would be --> attached to the same gateway and other container get 0 2 0 3 0 4 like this --> that is what the bridge network so in default we create your default networks or in your own --> networks in a bridge network so which we observed the network ranges 172 17 0.0 --> so this will get an ip of 172 17.0.1 the first one this will get the second ip third ip --> fourth ip like this and they all connect to this gateway so gateway is that connection --> to a network are we good so this bridge network gives ips mac addresses all these --> for your containers and now when i do a docker inspect bridge you see that i can see all the --> containers listed see one two three i have three containers now and all these three are --> connected to the network are we good please confirm any doubts you can ask me now let's --> inspect our container and say docker inspect the first container --> and you see the content gets ip address it gets a mac address and comes to a gateway --> so this is how what you're talking about using networking components so this is what --> your bridge network provides any questions if you feel that not clear you can ask me because --> we have to proceed silence sometimes doesn't make me understand if you're good or not --> which which format --> so docker space inspect space the container name or the id --> and in that i go and see the network portions --> yes so your question is can we modify network of network for containers is that a question --> it depends on your depends on your organization sometimes they say that if you want to this is --> but tomorrow you might get a requirement that your container application has to be on a specific --> network range that is they might ask that you need to have a container in this range for example --> getting it so tomorrow then you have to create a new network --> and then create a content in that network of 192 yeah if you don't change the default it gets --> 132 this range what i just showed you but in case if you want to contain us in different network --> then you have to say talker network create create a network in that frame and then get a --> container inside it that's my answer so in default is not required it comes automatically --> but still if you want you create a user defined network you create something like this --> i'll show you how to do it also so in default it looks something like this --> so docker zero is the network which does all these in the default --> and all these containers they can ping to each other because they all are connected the same --> gateway so example all these three can ping to each other because they all belong to same --> network so how do you do it you can check it for example i have in docker ps i'll log --> in the first container i'll so log into or i'll the first container docker exact hyper 19 --> and then hopeful so any first good ip of each one let's do the ip of each one --> so i'll do a docker inspect bridge for example and his ips so 17234 so hopeful is 4 from this --> 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 --> in here so i'll say docker exact hyper 19 hopeful underscore bore and i'm going to say bash --> i'm going to use apt update again with install ping utility at install ping utility --> and then i install ip utils hyphen ping so i'm ping in here --> and now i do a ping five times for example to 172 17 0.3 --> i'm going to ping because they are in the same network because they all connect the same gateway --> they have to ping to each other are we clear --> this is how the default works but sometimes you might want to get a own network might be you --> want to contain this different network that's a use case of your organization --> so for doing that we create networks what you create networks by yourself are called as user --> defined networks because create a network by default you can create a bridge network --> those are called as user defined networks let me show you how you do this so user defined --> networks is the network which you create to create a network so example if you want to --> network you can say docker network create and we can give a subnet screen you can subnet i can --> say subnet equals like 192 168.0 and you also need to put the gateway so get rid of the --> IP equals 192 168 the first IP in this 0.1 and then you need to mention network name network --> one so what will happen the clear network name network one with this subnet and this gateway --> really and then i can create continuous network let me show a small example so --> own networks i can say docker network create and i give a subnet --> and i can say 192 168.0.0 slash 16 and the first IP --> would be 192 168.0.1 and then i give a network name that network one --> network is created how do i confirm i do a docker network ls let me make this form become much --> more bigger are you able to see it clearly the font is good --> okay make it bigger still for the 16 i can make it to 18 and select okay --> so do network are created so i can now do a docker --> inspected network one and you see it got ip in this range --> okay so you want to continue this network what i do i would say docker run hyphen d --> and i can say give a name for the container new and i can mention network name --> as network one and then the image --> okay --> let me create a container with name new in this network and now i'll do a docker --> inspect the name of the container and you will see the container got ip in that range --> are we clear --> so we can create any networks any range i can contain them these are called as user defined --> networks others are we getting it what is defined and user defined networks --> we're going to do a lab i want to give some time for a lab just observe right now --> here we have a lab now just observe right now here at lab time what you can do it --> so what you can do it's up to you okay now the next one learned about what is user defined --> so now if i have two networks right now in your host can this and this communicate now --> this is my machine which have two networks this is network one and this is network two --> a container this c1 and c2 can they communicate can they ping each other what do you think --> in default okay clear everyone please try to answer the two networks network one and network --> two can they communicate each other and networks so in case if you want to allow them to --> communicate we have to use something called docker network connect so you can allow them --> to communicate by using docker network connect wherein you can mention that you want this --> container we have c1 and if you have c2 and c3 for example in this network you can say to --> c1 to these so once you save this c1 would get a secondary ip in this range --> so you say docker network connect c1 with this network network one --> the c1 would get a secondary ip in this range and they can connect to each other so what i'm --> saying let me draw and i'll explain and this is my host machine right now i have two networks --> network one and i have network two i have two containers in this c1 and c2 and i have c3 and --> c4 in this network to four containers this network range is 192 168 0.0 star 16 and this --> network range could be something like this but these two from this they communicate --> but this cannot communicate with this because we don't have a network --> but my use case is can i communicate from this to this yes you can do it for that --> you say a command docker network connect we cannot mention the complete bridge we have --> to mention the container name c1 and say that i want to enter network two --> rather than this command once you run this command c1 would also get an ip in this range --> so it'll have a secondary ip in this range of c3 and c4 and c1 c3 c4 they all can communicate --> each other that's what we're talking about docker network connect okay i want you to do the --> lab together now of can do a lab seven first everyone yourself to lab yes okay yes yes one --> by one then get you one by one see i cannot the docker network connect syntax does not have --> bridge you have to mention you cannot mention network name there permission syntax so you do --> a docker network connect okay example the just syntax so the syntax says you have to use --> a net one network other side container i cannot mention both network names getting it yes --> yes yes i can mention one container other it doesn't have a lot of network and network --> communication so so what will happen this container will get type in this and then we --> can connect it okay now i want to play around take some time do a lab seven first yourself --> the lab seven in which you create a network play around the lab seven first then you'll do --> a lot or if you're good at laughing you can add a lab eight are you good with basics --> do you understand what it is okay that into a lab eight everyone yeah let's do a lab eight --> as you'd love it okay so go ahead and create a network bridge bridge one it'll pick up some --> range and inside this you create two containers using run hyphen it and try to ping each other --> okay i want you to do this lab yes let's do this do this let me know any questions --> lab eight yourself the two network bridge one and bridge two and allowing container from --> network to communicate other containers in the other bridge network please do lab eight --> one more method to create container you'll be inside it you want to come out of it --> and try to play around yes thank you for which one share for sapienta same batch --> when is it --> 20th can we do this before because i might be in different training --> so dan 20th is monday yeah i think yes yeah we can yeah we can do it on monday because --> tuesday i have training so on monday i don't have is it confirmed --> sir we are looking for some things so much effort is required so they say --> minimum but they ask so much of questions others are awesome right told us at least --> look into now something we can i think last time we did for 30 correct 28 28 at least --> if you make 32 would be good sir so i can get you a business fee i'll do because the --> government this will take so much they ask for this is called understand but they ask for more --> thanks let's see yeah see what we can do 28 can you at least make it 32 see --> okay see the account you'll provide me in like last time --> yes look at the best one what if you can and let me know but i'm available is it confirmed --> now no yes okay that all right thank you so actually yeah are we good we're done --> yeah i think ck is done yes ck understood so c1 also this is the IP --> in the other network range and hence they have been to each other hope you're getting it --> you understand are you clear what to do with the lab you're understanding the problem --> sure thank you so after we're doing lab eight by five we can do offline we're doing lab eight --> after lab four the doctor composed we're doing lab eight we're understanding what the concept --> understood the lab okay thank you yes jun what about you ck yeah this is how --> we can use so you can either use the default network or we can create different networks --> you can also allow different networks to get communicated this is all the different things --> which you can use you know bridge network but all these containers must be on the same --> host you cannot use this across different host machines now what's --> the host network for example it doesn't have any specific network range so let me do --> instantly if i say docker network ls and if i say docker inspect --> the host it doesn't come with any network range so what exactly does it do so when --> you do any operations of containers they normally go through the host interface --> so example in linux we use if conflict to check a network in configurations --> so install it so i'll say apt install net hyphen tools --> so --> and now if i say if config so if config is a command in linux to see all the network --> configurations of a nick card so you will have the primary interface card which is --> the primary ip --> and you'd also would see docker zero it's a default network and you see lots of interfaces --> you go down --> you see interfaces one two three all these so host network is just like an interface on --> every host machine using the container gets communicated yeah so when you want to go to --> or something we have to put the host network that you're talking about in here it's just --> a network on the host through the traffic goes to outside world so what i'm saying --> in here let me draw that and explain this is your host machine and this is your container --> you will be having some ports exposed on a container and some ports on your host --> that's it that's what talking about is a host networks like the example which --> did by blocker one hyphen d hyphen b 8080 so mapping explicitly that it has to go through --> port number 80 and then reach the port number 80 or the container for that particular host --> networks not much use more non-network we use wherein you want to create a container --> which must not communicate with other containers in a network so for example i want to save --> some critical information some could be some critical image i want to save i don't want --> anyone else to access it directly so we can create a standalone container that is called --> as a non-network so in this you can mention network as none or net none so example if i --> network i say docker one hyphen d and i can do net short form like a net or i can use network --> and if i say none and then the image name so i'm getting a container the specific name --> i can also use a name from a container so let's say new or test so my name of the --> container is test okay in the back end network is none the image name is engineering it got --> created so now if i do a docker inspect of this container which is name is test --> this will not have any ips you see that it has no ips it has no gateway it means --> this is like a standalone yeah so now let's log into this so i'll say docker ps and i will say --> docker exit and then i would say docker exit hyphen it test and then i'll log in the --> because there's no network this is isolated are you getting it what's non-network --> everyone --> what is none --> so non-network the network in which containers cannot communicate to outside world --> completely isolated for that purpose we use a non-network --> so you want to do this step it's a small step you can do yourself so go ahead and run this --> command do yourself small example run this command like this it's get the container --> you can say docker run hyphen d the name of the container is test and give the network --> as this you can do none and engineering yes run this command get a container which is --> name is test log into it and see whether it do update not work because they put on that --> you have to use the shell the end ck docker exec hyphen i t the container name and the shell --> bash bash was missing space bash others have a good gene chance the chance what happens is --> when you do exit in a container it gets stopped so you have to properly come out by --> doing the control pq start the container --> gene ck and any questions okay thank you yes team this is our networking we talk about --> bridge network with the default ones we can use the default networks we can also create --> our own bridge networks we learned about how we can create your different user defined networks --> how we can connect between different networks also in very brief about what is host network --> the last one is non-network yeah this is our networking okay uh --> now you're good to continue team i won't so or you need a quick break or something --> misunderstanding for your end are you good do you need a coffee quick coffee break or --> what are you all saying anything is okay you decide yes june charles you need a break --> okay so you need a break now is that --> okay how much time you require 10 minutes okay so break for 10 minutes --> yes are you back okay thank you interesting or difficult --> so fast the reason i keep on asking is it okay we don't speak so how do i cannot see you all --> you hope you understand correct if you are able to respond if i see you they understand --> the reason i keep on asking questions okay okay --> uh but are you able to are you learning new things today okay okay others what do you feel --> how's it going for so good okay what about you charles okay okay okay so what happens is do --> you log into linux every day do log on do you work on linux machines on a daily basis --> okay you work more on windows is that might be that reason uh so for if you want to learn --> containers and kubernetes you need to be good with linux for sure yeah and my reason --> so i'm sure so once you start practicing the labs yourself later also you must be --> well good enough to for the speed also okay i think next topic about container orchestration --> so what could this tell me what could the meaning of container orchestration what do you think --> this would be anyone just trying this on the trial anyone okay now right now we are using --> one machine correct we have one docker host machine and in which we have in some containers --> now if this is a very it is running very critical application and if this machine goes --> on and the user trying to access the user is trying to access the application the user cannot --> access the application right now because it's down so what can you do you could done something --> better before it said before the application went down what what would you do in this case --> the host is down so user cannot access so what can you do so you could done something --> better before the application went down. What is the thing I am talking about? How would --> have you improved design of this? You could have done a much more better design. So we --> need to looking for HA is missing in here. So in enterprises we cannot just use one. --> We have to use multiple backend machines. One, two, three, like this. And these are --> also referred as Booker nodes, worker or slave nodes. And these nodes are meant to --> run your application. So I have the applications running inside this. So I --> would be installing Docker on all the boxes. One, two and three and then I --> 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. --> 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. --> 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. --> And that will manage these backend machines. --> 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. --> 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. --> And each of the content engine, it means like Docker, Docker, Docker and Docker. --> 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. --> And you would say Docker run or any operations on the master in master in turn decides where to create the backends. --> 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. --> So we use software, like example, Kubernetes, use Docker Swarm, use Vsauce or cloud native like ECS to do manage something like this. --> So Docker Swarm is native or Docker. It means an uncertainty Docker. If all are Docker, Docker, Docker, then you can use Docker Swarm. --> Or you can also use Kubernetes. Both you can use. --> But if this is using Docker, for example. --> And if this using container D. --> Using different platform when the containers rocket. --> I cannot use Docker Swarm. So Docker Swarm works only for everything using Docker. --> The mix of different platforms and containers, Docker Swarm cannot be used. --> Are we good? --> Why container orchestration? --> And how does it look? Any questions? --> So now let's go and check. If I do a Docker info. --> So Docker Swarm is native. We're not getting into it, but just showing you for Docker Swarm. What does it look? --> So now. --> If I do a Docker info and the info you would see a command. --> Or parameter call as Swarm. --> It says form inactive. --> So Docker Swarm. --> The orchestration software is already installed inside your Docker. --> Not activated. --> So now if you want to make this a manager, for example. --> I will go ahead and say Docker Swarm. --> And in it. --> So now this will become the manager. --> And it will give you a token. --> You have to run it on the other machines where you install Docker. --> And that will become the client machines. --> This is how we get started. --> So you generate a token. --> One of the machines. --> And we're going to master. --> It creates a configuration. For example, we do a Docker network. --> As you can see in the back end. --> Ingress. --> There are some bridges. --> They create some containers. --> Required to do some operations. --> As well as your networks. --> And they have connectivity to the back ends. --> So you need to go and run this token on the back end machines. --> They get connected. --> This is what we do. --> But Docker Swarm does not have much features. --> Not much scalability. --> And hence we use Kubernetes a lot. --> So Docker Swarm gives you very, very minimal capabilities. --> For managing and container orchestration. --> Not much capabilities. --> So you want to use Kubernetes. --> Okay. --> Team, I would like to understand. --> I'll be good. --> So I can proceed. --> I'm talking this one very generic right now. --> I'm not putting into any Kubernetes or Docker Swarm right now. --> In master. --> Or the manager. --> What are the important components? --> One important component is a database. --> Key value store. --> So in Amazon. --> We all use Amazon? --> Do you all work on Amazon cloud? --> Or no? --> Everyone? --> So do you all know what's DynamoDB? --> Do we know the DynamoDB? --> We don't? --> Or yes? --> Okay. --> Are you all aware of NoSQL database? --> NoSQL database? --> Yes. --> Like MongoDB. --> So in any of the masters. --> The database what we use. --> Would be a Mongo. --> Something like MongoDB. --> This database consists of all the configurations. --> Or metadata of a cluster. --> That's a key value store. --> In Amazon Kubernetes we use ETCT. --> So we're going to generate right now. --> So you'll be having a database. --> In your master. --> This one component. --> Which can consist of the metadata. --> Of the cluster. --> Not the actual metadata. --> But the data. --> And other important components of the master. --> Is the scheduler. --> For example. --> This is your schedule. --> Master component. --> These are your backend measures. --> We'll have one more. --> We'll talk about it in detail later. --> We'll also have an API. --> So now we'll use KSK errors. --> I have three working nodes. --> And you are a DevOps engineer. --> Now this is using SSD hard disk. --> This is using HDD. --> And using HDD. --> Now if you want to deploy. --> Database. --> Would you prefer one. --> Two. --> Or three. --> A question for you all. --> If you want to create. --> Deploy database container. --> On this. --> This. --> Which one you will choose. --> And buy. --> You'll agree. --> SSD. --> Because of the performance. --> So what you can do is. --> You can define a label in this. --> You define a label. --> This equal to SSD on this. --> And this label information. --> Would be remembered by the backend. --> One minute. --> I'm getting a call from managed. --> One second. --> Hi Shekhar. --> Shekhar. --> When are you back to Chennai. --> Till when are you in Chennai. --> All right. --> That's it. --> I got it. --> Thank you. --> Yeah. --> So I define the label in here. --> And this label would be remembered by the database. --> So now when you say. --> To run a container. --> Where DB SSD. --> The request goes to. --> The schedule API. --> The scheduler. --> The scheduler doesn't understand what is this. --> The metadata. --> So this metadata would be understood. --> By the key value database. --> And this key value would say that. --> There is a node. --> Of node one. --> Where you have in a label. --> And the scheduler will decide. --> They have agents. --> Inside this. --> That agent would create the container. --> In this node. --> So it means that. --> You can use some labels. --> Or you can do. --> Using some policies. --> Using which. --> You can define. --> Where you want to run your workloads. --> And that is defined by scheduler. --> And it works. --> With other components. --> Getting it. --> What about scheduler. --> In our presentation. --> Small example. --> This is one example. --> Of schedulers. --> Third one. --> Which is important. --> In a cluster. --> They are going to have. --> Three nodes. --> The network. --> Which we use. --> Bridge networks. --> Can we use. --> Bridge networks. --> To communicate. --> From this to this. --> This to this. --> Is it possible. --> Yes or no. --> Can I use. --> Bridge network. --> To communicate. --> From this container. --> To this container. --> And this to this. --> What do you think. --> This thing was answered. --> You see. --> What is scope. --> It is. --> Local. --> It means. --> I cannot use. --> The default. --> Docker network. --> Of bridge network. --> For this network. --> Are you getting it. --> I cannot use this. --> So we have to create. --> A layer 3 network. --> So what is OSI. --> Whatever OSI layer. --> What is OSI. --> What about OSI. --> Yes. --> No. --> If you know. --> You can say yes. --> If you do not know. --> You can say no. --> So that I can explain. --> Do you know what is OSI. --> In networking. --> Okay. --> So in OSI. --> In networking. --> We use seven layers. --> So start from physical. --> Then data link. --> Then user network. --> We use transport. --> Then you talking about session layer. --> Then use your presentation layer. --> And then user application layer. --> So if you have computer 1 in network. --> You will communicate to communicate 2. --> You will have a similar layer. --> In the other side. --> So this wants to communicate to second computer. --> It keeps on adding packets in every layer. --> And they exchange packets at the other side. --> So this is how they communicate. --> Using OSI layer. --> And layer 1 is your physical. --> This is called layer 1. --> This is layer 2. --> Layer 3. --> Layer 4. --> Layer 5. --> Layer 6. --> And layer 7. --> So example layer 7. --> We use these protocols. --> HTTP, HTTPS protocols. --> In transport layer and all. --> We use TCP protocols. --> GDP protocols. --> Network. --> We use your IPs. --> All these things. --> So we need to use a layer 3 network. --> It means you need a network of layer 3. --> Which will allow communication. --> Across multiple machines. --> So we need to have a layer 3 network. --> It is also called as overlay network. --> So you have to conflict with this. --> So that all these can communicate. --> So example when you did for Docker's form. --> You said it will get created automatically. --> It will create a whole network. --> And in Cubans you have to create it. --> So whole network is what is allowing them to communicate. --> Next concept. --> Now. --> When you create containers. --> Containers get dynamic IPs. --> So dynamic IPs means. --> These IPs would change. --> When you stop and start. --> Is it a good practice to use dynamic IP? --> What do you think? --> Is it a good practice to use dynamic IP? --> Normally not a good practice sometimes. --> Because if this is trying to communicate with this. --> And it is using an IP. --> Of this to communicate. --> If the IP changes then it will not work. --> So you have to be careful. --> And we cannot directly assign a static IP to this. --> Static means it will not change. --> So what you can do is. --> You create. --> And you map it to a service. --> And this service. --> Will get a static IP. --> For example. --> First go to. --> The static IP. --> And then beaches the backend. --> So for example. --> This is mapped to a service. --> And this is mapped to a service. --> And these get a static IP. --> So it could be 1,2,3.4. --> This could be. --> 5,6,7.8. --> In turn. --> Now if this wants to communicate to DB service. --> What will it do? --> It will communicate to the DB service. --> And that is in the traffic to this one. --> If this wants to communicate with DB service. --> It will communicate to the service. --> And reach to the internal. --> This is what is the static method. --> This is for internal. --> Now if I have an external. --> For example. --> The traffic from load balancer. --> I want to reach to this from outside. --> From internet. --> Traffic will come from outside. --> It will go to the port. --> It will go to one of the server. --> Talk about internet service. --> And then reaches the first user. --> If again someone second comes in. --> It will go to load balancer. --> It will go to this one. --> It will again go to the service web. --> And then reaches in here. --> If the third user locks in. --> It will go to round robin. --> It will go to this. --> This and go to this. --> Fourth user will again come into this. --> This and this. --> Like this it happens. --> So service mappings are used. --> Because we have static --> communication internally. --> And that is what we call a service discovery. --> And you can use it for internal --> or external --> communication. --> And we talked about all the network. --> And we are also talking about schedulers. --> Key values. --> These are some important components --> of your orchestration. --> Take questions. --> Let me know if you have any questions --> on orchestration. --> I want you to understand this. --> Take some time. --> Do you want to go through for 5 minutes --> the orchestration part? --> Please read for 5 minutes. --> And any questions please ask me. --> Because this is important. --> Because without understanding this. --> It will be difficult for you to understand --> Kubernetes. --> Please understand the reason why I am giving more time. --> You need to be clear about what is --> container orchestration. Why? --> And what is the master? --> What are slaves? --> And why do you use this in the components? --> Then it will be easier for you to work --> with Kubernetes. --> I will be back in 5 minutes. --> In the meanwhile please read it and --> I won't --> request you to ask questions if you have. --> No data for the next round. --> I will be back in 5 minutes. --> Thank you. --> I will be back in 5 minutes. --> Thank you. --> Any questions --> please. --> Any questions? --> We assume we are good. --> Next topic now. --> We still have time. --> Have you heard about Kubernetes before? --> So Kubernetes is --> open source orchestration. --> And this --> was first found by --> Google Cloud. --> And later it became --> open source. --> Which is of CNCF. --> Cloud Net Foundation. --> And --> this is very very --> robust. You can install Kubernetes --> on on-premises. --> You can install on cloud. --> And this is highly scalable. --> Let me give you an example --> about why this works. --> You first understand a part. --> What is a part? --> Think of this vegetable. --> Yes. --> We all have this vegetable. --> This one. --> In Singapore. --> Yes. --> You all see this. --> Think about this. --> In Kubernetes --> I cannot create --> directly a container. --> So we cannot get a container --> directly. We have to create a --> part first. --> So part is --> single or --> multi-container. Look something like this. --> You create a part. --> Which you can have one container. --> This one part. --> It will have an IP address. --> Some IP address. --> That IP address will be used for the container. --> Or a part can --> have multiple containers. --> C1 and C2 like this. --> It will again have --> an IP address. --> Which should be shared by --> both the containers. When you work in --> Kubernetes, you need to create a part --> with a minimal component. And then you create --> containers inside it. --> Remember it. --> Kubernetes is also open source --> for automating, deployment, scaling --> and managing container applications. --> And if you have --> a part for example. Today I have one part. --> You can see that I want to scale up to 100 parts. --> It scales up to 100 parts in a --> minute. Very fast. --> And it is quite --> flexible. --> You can easily modify the --> configurations. You can --> run anywhere. It could be on-premises --> or hybrid. --> What do you mean by hybrid? --> What do you mean by hybrid? --> What could be hybrid? --> Hybrid means --> it is using both on-premises --> and your public cloud. Clear? --> So we can use this. --> And these are important reasons --> for using. First one is rollouts and --> rollbacks. --> What I am saying here. --> Now let's consider that --> this is. We have a --> pod. We have a pod. --> And this pod --> has an application. --> Which is --> like enginex which we did now. --> This is version number one. --> Now you want to --> update the application --> to version two. --> That is my use case. --> So what it will do. It will first create --> a new version in a --> different pod. It will create a new pod. --> It will create enginex version --> two. And after this comes up --> this will get terminated. --> If something happens in between, it will --> still be connected to it. It will be connected --> to this. A user connected to this. --> Still this is up and running. --> Once this is good --> then this will get turned away. --> And like this --> different methods we can update. --> We can do updates. --> We can do a rollback if something --> happens. If there are two pods I can --> say scale up to five pods. It will create --> one, two, three, four, five --> pods. Like this immediately. --> If I say that --> scale down to two, it will terminate --> these backends immediately. --> Any time if these --> pods go down, two of them --> without you --> doing anything, even if they go down --> they come up automatically. The pod comes --> up. Self-heating. --> So we have lots of configurations --> for these. One is you can --> define rollouts and rollbacks --> quite easily. We can extend the storage --> like Gordy talked about storage on your --> host. We can extend storage --> of Kubernetes pods --> outside on the host --> or NFS on the cloud. --> We can --> create the pods first. --> So in Kubernetes we --> use more of a YAML files. --> We don't use --> much of imperative. --> And everything is more of --> a code base in your Kubernetes. --> Everything will be like something like this --> in the backend. We use more of this. --> You write something like this. Example, --> example pod. --> You can do like this but don't recommend --> it. So this is how we --> talk about a pod. So this is your pod --> signed --> name of the pod and the continuous. --> So you --> can write everything like --> this in your Kubernetes. --> We normally not a good practice to put in --> the password in the main file. We put a --> password in different objects --> and then restore in the pod. So we --> separate the pods. We separate --> the passwords. We can separate --> the configurations. All of --> them. That's what we are talking about in here. --> Not a good practice to mix everything. --> We can run batch workloads. --> Then we talk about service discovery. --> We talk about service discovery. So we use --> service discovery for reaching the --> backends. We use load balancing method for service --> discovery. --> Self-healing. If the pod goes down --> they come up automatically. And you can define --> some policies like what did you put a label --> for scheduler. You can define some --> policies and say that run the open --> specific nodes. --> And to the open source --> auto-scaling. We use --> auto-scaling everyone. --> Cloud auto-scaling. Auto-scaling --> please. --> Auto-scaling. So example --> let's consider in Amazon --> you had two EC2 instances. --> Now assuming --> that there are 10 users --> who are accessing the application. --> They are able to access it. --> But now assume --> that if 100 users --> try to access the same time --> then these will get --> overloaded. They might go down. --> So in this time --> you might want to go ahead and create an --> EC2 instance in the backend manually. --> But this takes some time. --> So whenever the load increases --> or the resources --> increases or some conditions --> it can keep on adding --> the VMs or decrease --> the VMs. The load is less. --> And this would happen automatically. --> That is called auto-scaling. --> So in Kubernetes we can use it --> for both your nodes as --> a support into auto-scaling. --> And I can mention that --> CPU percentage level --> threshold you can have it to be done. --> And you can extend the Kubernetes --> to work with any tools. For example --> in your enterprise you are using the --> Clometheus, Grafana, Splunk --> or any other tools --> to which you want to integrate. --> You can easily integrate Kubernetes --> with any tool because it's open source. --> I recommend using open source for this. --> So example, we have --> CNCF. So when you see a --> CNCF landscape, they have --> huge services --> in CNCF which is Kubernetes one part of it. --> So you can integrate with Kubernetes --> like Helm for --> creating your --> charts. --> We can use Argo for your CICD --> for example. --> We can use --> Clometheus, Grafana for everything you see. --> We have some options --> using which you integrate with Kubernetes. --> Lots of tools you can integrate. --> And because of these advantages --> what I talked about, Kubernetes --> preferred more. We're talking mainly --> about scalability. --> Then we're talking about compliance. --> All these advantages why you want to --> use Kubernetes. --> I give the information in this to sample --> these cases. So where to use --> Kubernetes? Why Kubernetes? --> The first one, in Kubernetes --> we manage containers. --> And containers we understood --> it is a lightweight, --> easily portable --> cost savings. --> And second one is, anytime --> you can get in the code. --> So example, let's say --> you have a pod --> and you want to see the --> YAML file of it. --> I can get the YAML file of it. --> You can say, I have a pod --> and I would say --> get the pod, the pod name --> and hyphen on YAML. --> It will give you the configurations of it --> in a YAML format. --> So since you get it as a code, it's quite --> easy for it to understand what exactly is --> running inside it. So everything --> you can start using a code. --> That's one of the important --> reasons why enterprise preferred Kubernetes. --> Everything you can do it, modify it. --> Abstraction of infrastructure. --> You can integrate multiple --> microservice architectures. --> Cell feeding. --> It means if they go down the pod --> they come up automatically. --> You can integrate it with your CI-City --> like we are talking about TeamCity or something --> you can use for integration. --> They quickly make your --> self-application up and running. --> Which reduces the outages. --> They use very less resources. --> They are quite efficient and they are --> compliant. All these are reasons --> why Kubernetes is preferred. --> And many companies --> like Tinder, any company --> they always have scalability. --> It means no more users coming. --> Example, you are watching a football match. --> In Singapore --> which port is famous? --> Is it football or rugby? --> Which one is famous --> in Singapore? In Hong Kong. --> You all are from Singapore or Hong Kong? --> Singapore. --> Which port is famous in Singapore? --> Even if you don't play --> then it sounds quite famous. --> What is the national game of Singapore? --> I don't know. Others? --> When you watch for example --> football match, the end of the match is going to be --> so busy people are going to hook on the TV. --> So the load is going to increase. --> What do you do? --> So in this case you can use --> the Kubernetes backend in which you can --> just say that scale up to 100 applications. --> So the number of --> users they see --> the application load go down. --> So wherever you feed --> scalability and stability required --> then the answer is Kubernetes. --> And most enterprises --> these days are moving on to containers --> and Kubernetes because advantage --> we talked about in the morning. --> We are talking about --> stability, scalability, all these --> reasons. --> Any companies like newspapers --> newspapers could be some special --> news. People would open the website --> very frequently. --> It could go down. So Kubernetes --> helps you to manage self-feeding and other things --> using which you can quickly come up and run. --> In very brief, Kubernetes gives you advantage wherein --> you can use the creative. --> It means you can write in the configuration --> in YAML and you can see the configuration --> is easier to update. --> You can define where you want to run your workloads. --> And Kubernetes is open source. It means you can work --> with any other workloads quite easily. --> Containers are portable. --> Immutable. --> So we talked about version --> 1, version 2. When I updated the --> version it doesn't affect the existing --> versions. It means --> the users are still locked in the existing --> version. They are not affected. --> Once the new version comes up then it switches. --> So this will not have any much --> effect on the users applications. --> Here template --> you can reproduce it. --> And YAML compared to --> JSON or XML which must be --> easier to understand and modify. --> So this is the snapshot --> of why --> Kubernetes is preferred. --> It is easier for you to understand. --> It is easier for you to make --> changes. It is easier for --> you to extend. It is also --> quite portable, immutable --> and reproducible. --> I talked about scalability. --> All these are reasons why --> Kubernetes is preferred. --> Now I am going back to the Kubernetes website. --> So kubernetes.io --> is the website. --> The latest version is --> 1.32. --> And they have a very good community --> within which you can participate --> and even contribute. --> And their documentation --> all in one place. --> All documentation. --> And you want to learn more about --> case studies. For example, you want to know --> how does Babylon, what --> is use case, why they move onto Kubernetes --> for booking.com. --> It is the same. --> The reason would be that they are not able --> to scale up their workloads. --> For example, if I open Babylon --> they were using machine learning AI. --> And they did not have much --> resources --> for scaling up the workloads. --> So they are looking for a better --> mechanism wherein you are able to use --> for machine learning to work with --> scheduling and scalability. --> And they started deploying --> the Kubernetes. --> So it is quite easy to get started because we are talking --> about YAML. --> meant increased security, --> increased innovation --> and a more affordable --> health service. --> It means that --> it is a trustable platform. --> Many customers --> have used this. It is compliant. --> And if you start using this --> you will not have much of... --> You still have some issues. We don't count it --> properly. But it has been tested --> quite compliant. --> And hence, Kubernetes is much more preferred --> compared to other platforms. --> Any questions? --> So what is Kubernetes? --> By Kubernetes. --> All these are features of --> Kubernetes. Scheduling, --> automated, self-healing, --> loadouts and rollbacks, --> for the scaling and load balancing, --> infrastructure, loosely --> coupled, auto-scale, --> all these. --> So how does it work? --> Actuals in enterprises --> we create --> three masters. --> Because this goes down --> what will happen. --> But for testing, for playing around --> you would create --> something like a single master --> with two nodes. --> Now I'll explain this --> diagram and then I want you to watch a video --> to make the concept clear. --> Now let's consider that you want to --> set up a cluster of Kubernetes. --> Like a master in this. --> So you tell me now --> how many VMs have to create for this --> diagram. Everyone, how many VMs --> are required to set up this diagram? --> Please come on, you can immediately answer. --> How many VMs are required to set up this now? --> You can put the chat. You want to talk? --> You can put the chat to confirm. --> How many VMs are required? Yes, you're right. --> So this for a master --> and three. --> And who is this? --> Who are these developers? --> Is it you or your customers? --> It is your company. --> And these are your --> clients. Very clear till now? --> So what you do is --> you need to create three VMs --> and you have to allow specific ports --> on each of the VMs. And you need --> to first install --> a container platform like Docker. --> So you need to install Docker --> or Containerd --> on all the machines. You first need --> to have the VMs, the ports, --> then install Containerd or DockerD on all the --> machines. --> Then you have to install Kubernetes --> software on all of them. --> Install Kubernetes. --> And now you would make one --> machine as a master. The same one --> that your Docker swaps. So on which machine is the bigger --> one? You would say --> QADM space --> in it. --> So this will become the master. --> It means you're going to create --> all these ports. --> These are for --> management. And it gives --> you a token. You run the token --> on these machines. They get --> joined. --> And it will contain first three VMs --> with proper --> ports with access. --> Then install container software --> on it. Then --> install Kubernetes. --> You queue a QADM --> in it. It gives you a token. --> And then you join. --> This is how we join the cluster. Make a cluster. --> Initial steps. --> Do hands on. --> Now these customers --> this is you guys. --> As I talked about you're not supposed to --> directly log in. This is your frontend. --> This is your backend. These are --> the worker nodes. We're talking about slave nodes. --> Worker or slaves. --> This is going to run your applications --> ports. --> Not a management one. --> These are all the management ports. --> API, central manager, scheduler --> all these things. --> This is you. --> And these are customers. --> So customers they need --> not go through master. --> So example let's consider --> that some website like --> in Singapore not sure. --> Let's consider that booking.com. --> Some website we talked about. --> The booking.com is hosted --> on Kubernetes. --> They need not go through the master. --> You will have --> a load balancer in here. --> And they hit booking.com. The traffic --> goes to load balancer and reaches these --> backends which is hosting them. --> Master is just only for your --> use case not for your clients. --> So what are components? --> So when you say --> when you run any commands --> in Kubernetes --> we use a tool called as kubectl. --> kubectl means --> is your command line --> interface. --> And you can say that I want to create --> a pod. --> Run. --> And give a pod name like example. --> And then --> mention hyphen hyphen image --> equals nginx --> image name. --> So this will create a pod name --> example with one container nginx. --> So first the --> request would go to API. API --> is like a translator. --> So if you want to speak to someone you have to go through --> the API server. --> And the API will send the request to --> scheduler. --> And the ETCD is your --> database. So these both --> will work together. --> And then it will again decide which node --> it informed the API server which node. --> And API server would decide --> it will go and say as --> the rules it will go and say either this --> or this will have entry. --> And every node would --> have an agent called as kubectl. --> That is going to create the --> pod and inside the pod --> the container gets created. --> This is the pod. --> Request first go to API. --> Then go to scheduler. --> It will decide which node and it will inform --> API and API will go and say which node. --> And kubectl the agent is going to create --> the pod and the container inside it. --> This is what --> is the process. --> And whenever something is --> run in here it updates --> the database immediately. --> So this is for --> metadata. It has --> all the configurations of --> entire cluster like configuration of --> CPU, memory, those are --> the database. So API is for --> Fenton. This is for scheduling. --> This is for metadata. They take --> regular backups. Now what is this? --> So right now we have considered --> 3 pods and 6. So current --> is 6 pods --> of application. And desired --> was 6. And current --> is 6. All good. So desired --> is going to current. --> Now this went down. --> Now what will happen --> this time? There is some --> problem. So kubectl --> which is monitoring this pod --> it will --> go to the API server. --> It will always let any community interface --> to the API server. It will --> inform to controller manager. --> The community control manager. --> So control manager is your --> component for operations. Now --> this has a component called replica --> set. --> Replicaset --> which would --> store this value before. --> The value will --> understand there is a problem. It is not --> equal because 6 was 6. It will understand --> there is a problem. Replicaset --> and it will help now. --> So what does it do? It will internally --> inform the API that we need help of scheduler. --> It will again decide --> and immediately go ahead and --> the new pod will get created immediately. --> This is how a control manager works. --> So any issues of operation --> comes in then the --> agent will inform to API --> and this will happen. --> Tomorrow if there is some load on it --> more it will create one more node. It can be --> a controller manager. --> Autoscaling is required. --> This will come in and help to create autoscaling. --> So this is for frontend. --> This is for operations. --> This is for --> scheduling. --> And this is for --> key value store. --> For metadata and configurations. --> And this is for agents. --> You will also have cubelets in here. --> They are not shown in the diagram. --> Cubelets are agents. --> So they are --> responsible for creating a pod --> and a container inside it. This is one. --> They also do health checks. --> Health check means are they working fine. --> So cubelet is for --> health checks. --> And creating --> the components. --> See advance --> health checks. --> Not much use. --> QProxy is what --> users can come. We are talking about --> firewall rules, network rules --> as to what traffic can reach --> from outside, from where the traffic can come. --> We define it as QProxy. --> You can also define --> QProxy rules that allow this --> to communicate or not to communicate. --> We define rules. --> So QProxy is for network --> rules what traffic can come --> from outside and how --> they can communicate internally. We define --> rules with QProxy. Last one, you see a --> plugin. So this is a layer 3 --> network. So Q1S does --> not have an own network. --> And Flannel, --> Vimnet, these are third party --> companies. And they --> provide you some network from layer 3 --> which you need to --> add it by creating your --> cluster. And using --> these networks, Pod gets IP addresses. --> So your masters, --> your worker nodes and all these --> components. --> Are you looking on it? --> So I wanted to watch a video. --> And then we summarize this. --> So video is good for you. --> Is it audible, everyone? --> Yes team, any questions in the diagram? Hope the flow --> is good. Are we clear? This diagram? --> The flow? --> So this is what we are talking about --> architecture. And in --> enterprise, we cannot just use one machine. --> We use multiple machines. --> We also have a dashboard --> but we don't use much --> interdependence. --> And actually --> we have multiple worker nodes we use. --> And ETCD --> could be part of, so control plane. --> What's control plane, remember? --> Control plane is APS server. --> Controller management is KDE. --> ETCD data --> component could be part of control plane --> or outside control plane. This is --> one method. --> Or we can also have --> ETCD could be --> outside also. --> Because these are very critical database. --> So either you can configure --> to be part of a control plane --> or outside control plane. --> Same in here. --> So let's see the last link --> and then close the day. So let's summarize --> what you learned of the components from this link. --> Open this link and let's look into this --> what does it have. --> This talks about components. --> The core components of --> cluster, control plane. --> Control plane, ETCD --> could be part of outside --> control plane. --> in traditional controller managers. --> One of my worker nodes. --> What node consists of? --> It consists of cubelets --> cubeproxy or network roles. --> Container runtime is --> like Docker software, Rocktober, --> for managing containers or container runtime. --> And we can configure --> additional components like --> DNS, Dashboard, --> Monitor. --> All these things we can do it of course. --> Next thing, I think I'm going to --> stop here. --> So we talked about what are --> Kubernetes and why Kubernetes. --> We also learned about different important --> components and the workflow --> of Kubernetes. --> So tomorrow we will still continue the same model --> we will talk about kubectl --> as to how to interact with cluster. --> And then --> we will talk about CNIs, --> network in detail. --> We will talk about more about network in very brief. --> So DrSWOM --> is very simple. --> Kubernetes --> is advanced. --> Looking for more advanced features, --> then we go for DrSWOM --> is has very less. --> I'm boring in here right now. --> Any questions on today's topic? --> If you want to ask, --> you can ask now. We talked about containers. --> We talked about Dockers. --> We talked about how to --> install Docker. --> How do we use Docker Hub. --> Learned about Docker File. --> Docker Compose. --> Networking. --> Any questions you have you can ask me now. --> We still have time. --> So when you access the labs, --> we're going to set it up. --> We're going to install it ourselves. --> We'll do it. Because you need to understand --> to do it correctly. We're going to do this. --> We're going to install Kubernetes. --> We're going to work on all the labs. --> We have lots of labs. --> We're going to install Kubernetes. We're going to create namespaces, --> ports, deployments, --> networking, storage. --> Lots of topics are there. --> We'll be using three nodes tomorrow. --> The third mission is the bigger size. --> The third one --> is medium. --> I'll talk about this tomorrow. --> What do I give the third one? --> The third IP, which I gave it to you, --> that's a medium. It's a bigger size. --> So in that we'll install --> for master. Master equals a bigger size. --> And these two nodes will --> not use Docker. We'll use --> the same missions. We'll use two --> for worker nodes and one for the master. --> So each one will have three missions. --> So one is for master and another --> two is for your worker nodes. --> Yes team. Hope you --> all have saved your IPs at the --> back end. The IPs everyone. --> You all have the list at your end --> of your VMs? Yes? No? --> Any questions? Okay. Very silent team. --> I'm not sure. --> Yes Gene. --> CK. --> Others? Charles? --> That'll be good. It's a read one D. --> You click on please read one D. --> If you click on it, --> it's a read one D. Do you understand? --> I think we're good today. --> We'll catch up tomorrow. --> I'll request you to, if possible, --> look into how we can use --> VI. Because --> tomorrow and day after, we are going to --> create lots of files using VI editors. --> So I want you to be comfortable --> about how to create a VF file. --> How do you update it? --> How do you save it and come back? --> And how you can use CAD command? --> So be comfortable --> with using Linux basic --> commands. How do you go inside it? --> If not, you're going to get stuck in the --> labs. --> Request you to --> read through the contents what we --> learned today. As well as --> the basics of VI editors. --> And how do you browse through Linux? --> You get lots of information --> and you can want to practice. --> Alright. Thank you team. --> See you tomorrow. Bye bye. --> Thanks, Charles. --> Thanks, June. --> Sorry, question is not clear. --> What's the question? Yeah, recording --> is being happening. --> Welcome. --> Uh, Charles? --> Any questions? --> Okay, thank you. --> If you're okay, you could --> log off for the session. --> Yeah, okay. Yes, --> Joan. How about the session? --> Sure. --> Okay. Okay. I think we can do --> one second. Is it okay --> that we can remove manually? Not sure we have --> option. Yeah, I think you might want --> to give your wish. --> Yes. --> Yes, Joan. You want to --> I think you have option to --> remove Charles from your --> post. --> Okay. How is it? --> Yeah, --> they didn't talk. --> I'm not sure why they don't talk. --> Any reason, I'm not sure. They don't talk. --> Yeah. Yes. --> Okay. No problem. No problem. --> Okay. Just want to understand. Okay. I think we're doing --> good. --> I think we're good. --> Yeah. I think we'll catch up --> tomorrow. Any inputs you want to give to me? --> That's fine. That's fine. Yeah. --> Any inputs you want to give to me? --> Yeah. Okay. Okay. Might be the reason. --> Yeah, Charles. Charles is very --> Charles is very similar. Okay. --> No problem. We'll catch up tomorrow. --> Thank you. Thank you. Bye-bye.