What Is Kubernetes - The Engine Behind Google's massive Container Systems | KodeKloud

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] we will now get a brief introduction to basic kubernetes concepts with docker you can run a single instance of the application with a simple docker run command in this case to run a node.js based application your only docker run nodejs command but that's just one instance of your application on one docker host what happens when the number of users increase and that instance is no longer able to handle the load you deploy additional instance of your application by running the docker run command multiple times so that's something you have to do yourself you have to keep a close watch on the load and performance of your application and deploy additional instances yourself and not just that you have to keep a close watch on the health of these applications and if a container was to fail you should be able to detect that and run the docker run command again to deploy another instance of that application what about the health of the docker host itself what if the host crashes and is inaccessible the containers hosted on that host become inaccessible too so what do you do in order to solve these issues you will need a dedicated engineer who can sit and monitor the state performance and health of the containers and take necessary actions to remediate the situation but when you have large applications deployed with tens of thousands of containers that's that's not a practical approach so you can build your own scripts and and that will help you tackle these issues to some extent container orchestration is just a solution for that it is a solution that consists of a set of tools and scripts that can help host containers in a production environment typically a container orchestration solution consists of multiple docker hosts that can host containers that way even if one fails the application is still accessible through the others the container orchestration solution easily allows you to deploy hundreds or thousands of instances of your application the single command this is a command used for docker swarm some orchestration solutions can help you automatically scale up the number of instances when users increase and scale down the number of instances when the demand decreases some solutions can even help you in automatically adding additional hosts to support the user load and not just clustering and scaling the container orchestration solutions also provide support for advanced networking between these containers across different hosts as well as load balancing user requests across different house they also provide support for sharing storage between the house as well as support for configuration management and security within the cluster there are multiple container orchestration solutions available today docker has docker swamp kubernetes from Google and mezzo mezz from patchy well docker swamp is really easy to set up and get started it lacks some of the advanced auto scaling features required for complex production grade applications mezzos on the other hand is quite difficult to set up and get started but supports many advanced features kubernetes arguably the most popular of it all is a bit difficult to set up and get started but provides a lot of options to customize deployments and has support for many different vendors kubernetes is now supported on all public cloud service providers like GCP azure and AWS and the kubernetes project is one of the top-ranked projects on github with docker you were able to run a single instance of an application using the docker CLI by running the docker run command which is great running an application has never been so easy before with kubernetes using the kubernetes CLI known as cube control you can run a thousand instance of the same application with a single command kubernetes can scale it up to 2,000 with another command kubernetes can be even configured to do this automatically so that instances and the infrastructure itself can scale up and down the user load kubernetes can upgrade these 2000 instances of the application in a rolling upgrade fashion one at a time with a single command if something goes wrong it can help you roll back these images will single command kubernetes can help you test new features of your application by only upgrading a percentage of these instances through a be testing methods the kubernetes open architecture provides support for many many different network and storage vendors any network or storage brand that you can think of has a plugin for kubernetes kubernetes supports a variety of authentication and authorization mechanisms all major cloud service providers have native support for kubernetes so what's the relation between docker and kubernetes well kubernetes uses docker host to host applications in the form of docker containers well it need not be docker all the time kubernetes supports alternatives to Dockers as well such as rocket or a cryo but let's take a quick look at the kubernetes architecture a kubernetes cluster consists of a set of nodes let us start with nodes a node is a machine physical or virtual on which a cobranet is the kubernetes software a set of tools are installed a node is a worker machine and that is where containers will be launched by kubernetes but what if the node on which the application is running fails well obviously our application goes down so you need to have more than one nodes a cluster is a set of nodes grouped together this way even if one node fails you have your application still accessible from the other nodes now we have a cluster but who is responsible for managing this cluster where is the information about the members of the cluster stored how are the nodes monitored when a node fails how do you move the workload of the failed nodes to another worker node that's where the master comes in the master is a note with the kubernetes control plane components installed the master watches over the notes in the cluster and is responsible for the actual orchestration of containers on the worker notes when you install kubernetes on a system you're actually installing the following components an API server and EDD server a cubelet service to contain a runtime engine like docker and a bunch of controllers and the scheduler the API server acts as the front end for kubernetes the users management devices command line interfaces all talk to the API server to interact with the kubernetes cluster next is the HCDA key value store the SED is a distributed reliable key value store used by kubernetes to store all data used to manage the cluster think of it this way when you have multiple nodes and multiple masters in your cluster let CD stores all that information on all the nodes in the cluster in a distributed manner NCD is responsible for implementing logs within the cluster to ensure there are no conflicts between the masters the scheduler is responsible for distributing work or containers across multiple nodes it looks for newly created containers and assigns them to notes the controllers are the brain behind orchestration they're responsible for noticing and responding when notes containers or endpoints goes down the controllers makes decisions to bring up new containers in such cases the container runtime is the underlying software that is used to run containers in our case it happens to be docker and finally cubelet is the agent that runs on each node in the cluster the agent is responsible for making sure that a containers are running on the notes as expected and finally we also need to learn a little bit about one of the command-line utilities known as the cube command-line tool or the cube control tool or your cuddle as it is also called the cube control tool is the kubernetes CLI which is used to deploy and manage applications on a governance cluster to get cluster related information to get the status with the nodes in the cluster many other things the cute control wrong command is used to deploy an application on the cluster the keep control cluster info command is used to view information about the cluster and the queue control get nodes command is used to list all the nodes part of the cluster so to run hundreds of instances of your application across hundreds of nodes all I need is a single kubernetes command like this well that's all we have for now a quick introduction to Panetta's and its architecture we currently have three courses on code cloud on kubernetes that will take you from the absolute beginner to a certified expert so have a look at it when you get a chance [Music]
Info
Channel: KodeKloud
Views: 719,058
Rating: undefined out of 5
Keywords: What is Kubernetes, Kubernetes, Kubernetes tutorial for beginners, intro to kubernetes, K8s, kubernetes for developers, kubernetes basic concepts, how kubernetes works, getting started with kubernetes, kubernetes concepts, kubernetes introduction, kubernetes for beginners, kubernetes in 10 minutes, kubernetes introduction video, container orchestration, Why kubernetes, kodekloud, what is kubernetes for beginners, what is kubernetes and how it works, what is kubernetes and docker
Id: QJ4fODH6DXI
Channel Id: undefined
Length: 9min 50sec (590 seconds)
Published: Thu Oct 31 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.