title
Kubernetes Course - Full Beginners Tutorial (Containerize Your Apps!)

description
Learn how to use Kubernetes in this complete course. Kubernetes makes it possible to containerize applications and simplifies app deployment to production. ✏️ Course developed by Bogdan Stashchuk. Check out his channel: https://www.youtube.com/c/CodingTutorials ⭐️ Course Contents ⭐️ ⌨️ (0:00:00) Kubernetes for Beginners Introduction ⌨️ (0:02:40) What is Kubernetes ⌨️ (0:06:46) What is Pod ⌨️ (0:08:22) Kubernetes Cluster and Nodes ⌨️ (0:10:40) Kubernetes Services ⌨️ (0:14:17) What is kubectl ⌨️ (0:17:23) Software required for this course ⌨️ (0:21:49) Installing kubectl ⌨️ (0:25:03) Installing Minikube ⌨️ (0:29:38) Cleating Kubernetes cluster using Minikube ⌨️ (0:33:50) Exploring the Kubernetes node ⌨️ (0:40:36) Creating just single Pod ⌨️ (0:45:57) Exploring Kubernetes Pod ⌨️ (0:52:44) Creating alias for the kubectl command ⌨️ (0:55:17) Creating and exploring Deployment ⌨️ (1:07:00) Connecting to one of the Pods using its IP address ⌨️ (1:09:23) What is Service ⌨️ (1:11:18) Creating and exploring ClusterIP Service ⌨️ (1:16:38) Connecting to the Deployment using ClusterIP Service ⌨️ (1:20:55) Deleting Deployment and Service ⌨️ (1:22:20) Creating Node web application ⌨️ (1:30:05) Dockerizing Node application ⌨️ (1:38:28) Pushing custom image to the Docker Hub ⌨️ (1:40:26) Creating deployment based on the custom Docker image ⌨️ (1:45:49) Scaling custom image deployment ⌨️ (1:49:14) Creating NodePort Service ⌨️ (1:53:51) Creating LoadBalancer Service ⌨️ (1:56:49) Rolling update of the deployment ⌨️ (2:05:30) What happens when one of the pods is deleted ⌨️ (2:06:31) Kubernetes Dashboard ⌨️ (2:10:49) Creating YAML deployment specification file ⌨️ (2:17:04) How to use Kubernetes documentation ⌨️ (2:20:35) Applying YAML deployment file ⌨️ (2:24:13) Creating YAML service specification file ⌨️ (2:27:59) Plan for the creation of the two deployments ⌨️ (2:31:16) Creating another web app with two endpoints ⌨️ (2:35:15) Building custom Docker image for the second web app ⌨️ (2:36:38) Creating YAML specification for the second web app ⌨️ (2:39:02) Creating YAML specification for the NGINX app ⌨️ (2:42:07) Applying specifications for both apps ⌨️ (2:44:09) Verifying connectivity between different deployments ⌨️ (2:47:05) Resolving Service name to IP address ⌨️ (2:49:52) Deleting both applications ⌨️ (2:51:00) Changing Container Runtime from Docker to CRI-O ⌨️ (2:54:49) Deploying apps using CRI-O container runtime ⌨️ (2:56:08) Verifying connectivity between deployments ⌨️ (2:57:11) Wrap-Up 🎉 Thanks to our Champion and Sponsor supporters: 👾 Raymond Odero 👾 Agustín Kussrow 👾 aldo ferretti 👾 Otis Morgan 👾 DeezMaster -- Learn to code for free and get a developer job: https://www.freecodecamp.org Read hundreds of articles on programming: https://freecodecamp.org/news

detail
{'title': 'Kubernetes Course - Full Beginners Tutorial (Containerize Your Apps!)', 'heatmap': [{'end': 10668.448, 'start': 10568.375, 'weight': 1}], 'summary': 'This kubernetes course provides a comprehensive introduction to kubernetes fundamentals, cluster architecture, minikube installation, managing clusters, git bash terminal usage, deployment and services, custom docker images, and configuration. it covers topics like automated deployment, load distribution, scaling, monitoring, and support for container runtimes like docker, cri o, and container d.', 'chapters': [{'end': 474.245, 'segs': [{'end': 72.368, 'src': 'embed', 'start': 0.149, 'weight': 0, 'content': [{'end': 6.113, 'text': 'Kubernetes makes it possible to containerize applications and simplifies deployment to production.', 'start': 0.149, 'duration': 5.964}, {'end': 10.095, 'text': 'Bogdan Stasyuk will teach you everything you need to know to get started with Kubernetes.', 'start': 6.313, 'duration': 3.782}, {'end': 13.517, 'text': 'Welcome to the Kubernetes for Beginners.', 'start': 11.816, 'duration': 1.701}, {'end': 20.661, 'text': 'Kubernetes is de facto standard for deployment of the containerized applications into production.', 'start': 14.458, 'duration': 6.203}, {'end': 25.044, 'text': 'Kubernetes is open source and therefore it is free for use.', 'start': 21.362, 'duration': 3.682}, {'end': 29.207, 'text': 'Let me first introduce myself before we will start this course.', 'start': 26.485, 'duration': 2.722}, {'end': 41.253, 'text': "My name is Bogdan Staschuk and I've been using Docker and Kubernetes multiple years on practice and I deployed real world applications into production using Kubernetes.", 'start': 29.867, 'duration': 11.386}, {'end': 48.196, 'text': "Also, I'm teaching online and on my personal website, Staschuk.com, you could find all courses which I teach.", 'start': 42.033, 'duration': 6.163}, {'end': 51.298, 'text': "Now let's get started with Kubernetes for beginners.", 'start': 48.997, 'duration': 2.301}, {'end': 54.559, 'text': 'And I would like to start with course plan.', 'start': 52.158, 'duration': 2.401}, {'end': 63.564, 'text': 'So what is included in this course? We will start by talking about terminology and the key features of the Kubernetes.', 'start': 54.9, 'duration': 8.664}, {'end': 72.368, 'text': "And you'll learn what is Kubernetes cluster, what is node and what a spot and what Kubernetes essentially does.", 'start': 64.184, 'duration': 8.184}], 'summary': 'Kubernetes simplifies app deployment; instructor has practical experience with real-world applications and offers courses.', 'duration': 72.219, 'max_score': 0.149, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM149.jpg'}, {'end': 153.947, 'src': 'embed', 'start': 129.44, 'weight': 5, 'content': [{'end': 138.703, 'text': 'And also finally, we will change container runtime from the Docker to CRI all because Kubernetes is not bound to Docker.', 'start': 129.44, 'duration': 9.263}, {'end': 145.124, 'text': 'It also supports other container runtimes like CRI O and container D.', 'start': 139.023, 'duration': 6.101}, {'end': 148.365, 'text': 'And you could use Kubernetes absolutely without Docker.', 'start': 145.124, 'duration': 3.241}, {'end': 153.947, 'text': 'One single prerequisite for this course is your familiarity with Docker.', 'start': 149.826, 'duration': 4.121}], 'summary': 'Kubernetes supports various container runtimes like cri-o and containerd, not bound to docker.', 'duration': 24.507, 'max_score': 129.44, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM129440.jpg'}, {'end': 201.884, 'src': 'embed', 'start': 176.008, 'weight': 4, 'content': [{'end': 184.215, 'text': 'But of course, if you want to create multiple containers on different computers on different servers, you could get into the troubles.', 'start': 176.008, 'duration': 8.207}, {'end': 191.01, 'text': 'Kubernetes allows you to create containers on different servers, either physical or virtual.', 'start': 185.282, 'duration': 5.728}, {'end': 195.135, 'text': 'And all of that is done automatically without your intervention.', 'start': 191.53, 'duration': 3.605}, {'end': 201.884, 'text': 'You just tell Kubernetes how many containers you would like to create based on a specific image.', 'start': 195.596, 'duration': 6.288}], 'summary': 'Kubernetes automates creation of containers on different servers, without manual intervention.', 'duration': 25.876, 'max_score': 176.008, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM176008.jpg'}, {'end': 302.265, 'src': 'embed', 'start': 275.717, 'weight': 1, 'content': [{'end': 284.1, 'text': 'So Kubernetes allows you to perform automated deployments across different servers that could be located even in different parts of the world.', 'start': 275.717, 'duration': 8.383}, {'end': 292.162, 'text': 'Other than that, Kubernetes also takes care of distribution of the load across those multiple servers.', 'start': 285.66, 'duration': 6.502}, {'end': 302.265, 'text': 'And this allows you to use your resources efficiently and avoid underutilization or overutilization of the resources.', 'start': 293.342, 'duration': 8.923}], 'summary': 'Kubernetes enables automated deployments across servers worldwide, optimizing resource utilization.', 'duration': 26.548, 'max_score': 275.717, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM275717.jpg'}, {'end': 417.881, 'src': 'embed', 'start': 357.263, 'weight': 6, 'content': [{'end': 365.03, 'text': 'Kubernetes nowadays supports such container runtimes, Docker, CRI all and container D.', 'start': 357.263, 'duration': 7.767}, {'end': 375.929, 'text': 'And such container runtime, for example, as Docker or CIO must be running on each of the servers which are included in the Kubernetes cluster.', 'start': 365.951, 'duration': 9.978}, {'end': 383.19, 'text': 'And the main outcome here is that Kubernetes could be utilized even without Docker at all.', 'start': 377.208, 'duration': 5.982}, {'end': 388.951, 'text': 'It supports other container runtimes like CRI O and container D.', 'start': 383.79, 'duration': 5.161}, {'end': 398.454, 'text': "And at the end of this course, I'll demonstrate to you how to change container runtime and move from Docker, for example, to CRI O.", 'start': 388.951, 'duration': 9.503}, {'end': 402.775, 'text': "So now let's get started with terminology and architecture of Kubernetes.", 'start': 398.454, 'duration': 4.321}, {'end': 405.915, 'text': "And let's start with pod.", 'start': 404.389, 'duration': 1.526}, {'end': 409.609, 'text': 'Pod is the smallest unit in the Kubernetes world.', 'start': 406.598, 'duration': 3.011}, {'end': 417.881, 'text': 'In Docker world container is smallest unit in Kubernetes port is the smallest possible unit.', 'start': 410.615, 'duration': 7.266}], 'summary': 'Kubernetes supports various container runtimes, such as docker and cri o, and can operate without docker. it will demonstrate transitioning from docker to cri o.', 'duration': 60.618, 'max_score': 357.263, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM357263.jpg'}], 'start': 0.149, 'title': 'Kubernetes fundamentals', 'summary': 'Provides an introduction to the kubernetes for beginners course, covering the basics of kubernetes, including its terminology, cluster setup, deployment, container runtime, and prerequisites. it also discusses the features of kubernetes such as automated deployment, load distribution, auto scaling, monitoring, and support for container runtimes like docker, cri o, and container d.', 'chapters': [{'end': 201.884, 'start': 0.149, 'title': 'Kubernetes for beginners', 'summary': 'Introduces the kubernetes for beginners course, covering the basics of kubernetes, including terminology, cluster setup, deployment, container runtime, and prerequisites, taught by bogdan stasyuk who has practical experience in deploying real-world applications using kubernetes.', 'duration': 201.735, 'highlights': ['Kubernetes is the de facto standard for deployment of containerized applications into production, and it is open source and free for use.', 'The course covers terminology, key features, cluster setup, deployment, container runtime, and prerequisites, with a focus on practical application and building a small Kubernetes cluster locally.', 'Kubernetes allows for the creation and scaling of different deployments, building custom Docker images, pushing to Docker Hub, creating Kubernetes deployment based on the custom image, and connecting different deployments together over their network.', 'Kubernetes is a container orchestration system that enables the creation of containers on different servers, either physical or virtual, automatically without manual intervention.', "The course requires familiarity with Docker containers and their creation as a prerequisite, and it also covers changing the container runtime from Docker to CRI-O, showcasing Kubernetes' support for other container runtimes.", 'Bogdan Stasyuk, the instructor, has practical experience in deploying real-world applications using Kubernetes and is teaching the course on his personal website, Staschuk.com.']}, {'end': 474.245, 'start': 202.665, 'title': 'Kubernetes overview and features', 'summary': "Discusses the abbreviation of the word 'kubernetes' to 'k8s', and details the features of kubernetes such as automated deployment, load distribution, auto scaling, monitoring, and support for container runtimes like docker, cri o, and container d.", 'duration': 271.58, 'highlights': ['Kubernetes allows for automated deployment of containerized applications across different servers, including virtual servers, with a focus on load distribution, auto scaling, and monitoring. Kubernetes enables automated deployment of containerized applications across servers, including virtual servers, and facilitates load distribution and auto scaling.', 'Kubernetes supports container runtimes like Docker, CRI O, and container D, and can be utilized without Docker, enabling the change of container runtime to options like CRI O. Kubernetes supports container runtimes like Docker, CRI O, and container D, and can be utilized even without Docker, allowing for the change of container runtime to options like CRI O.', 'A pod is the smallest unit in the Kubernetes world, where containers are created inside it and share volumes and network resources, while supporting the creation of multiple containers within the same pod. A pod is the smallest unit in Kubernetes, with containers created inside it and sharing volumes and network resources, enabling the creation of multiple containers within the same pod.']}], 'duration': 474.096, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM149.jpg', 'highlights': ['Kubernetes is the de facto standard for deployment of containerized applications into production, and it is open source and free for use.', 'Kubernetes allows for automated deployment of containerized applications across different servers, including virtual servers, with a focus on load distribution, auto scaling, and monitoring.', 'The course covers terminology, key features, cluster setup, deployment, container runtime, and prerequisites, with a focus on practical application and building a small Kubernetes cluster locally.', 'Kubernetes allows for the creation and scaling of different deployments, building custom Docker images, pushing to Docker Hub, creating Kubernetes deployment based on the custom image, and connecting different deployments together over their network.', 'Kubernetes is a container orchestration system that enables the creation of containers on different servers, either physical or virtual, automatically without manual intervention.', "The course requires familiarity with Docker containers and their creation as a prerequisite, and it also covers changing the container runtime from Docker to CRI-O, showcasing Kubernetes' support for other container runtimes.", 'Kubernetes supports container runtimes like Docker, CRI O, and container D, and can be utilized without Docker, enabling the change of container runtime to options like CRI O.', 'A pod is the smallest unit in the Kubernetes world, where containers are created inside it and share volumes and network resources, while supporting the creation of multiple containers within the same pod.', 'Bogdan Stasyuk, the instructor, has practical experience in deploying real-world applications using Kubernetes and is teaching the course on his personal website, Staschuk.com.']}, {'end': 1190.766, 'segs': [{'end': 570.038, 'src': 'embed', 'start': 538.74, 'weight': 1, 'content': [{'end': 540.741, 'text': 'Inside of the node, there are pods.', 'start': 538.74, 'duration': 2.001}, {'end': 544.905, 'text': 'Pod is again the smallest possible unit in the Kubernetes.', 'start': 541.522, 'duration': 3.383}, {'end': 551.33, 'text': 'And inside of each pod, there are containers usually single container per pod.', 'start': 546.266, 'duration': 5.064}, {'end': 556.197, 'text': 'And such pods are created on different nodes.', 'start': 552.952, 'duration': 3.245}, {'end': 559.843, 'text': 'And all of that is done automatically for you.', 'start': 556.959, 'duration': 2.884}, {'end': 562.047, 'text': 'Kubernetes does this job.', 'start': 559.864, 'duration': 2.183}, {'end': 570.038, 'text': 'But of course, your job is to create such nodes and create cluster based on those nodes.', 'start': 563.154, 'duration': 6.884}], 'summary': 'Kubernetes automatically creates pods with single containers on different nodes, your job is to create nodes and cluster.', 'duration': 31.298, 'max_score': 538.74, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM538740.jpg'}, {'end': 659.687, 'src': 'embed', 'start': 600.795, 'weight': 0, 'content': [{'end': 604.176, 'text': 'And master node actually manages worker nodes.', 'start': 600.795, 'duration': 3.381}, {'end': 612.598, 'text': "And it's master node's job to distribute, for example, load across other worker nodes.", 'start': 605.236, 'duration': 7.362}, {'end': 618.74, 'text': 'And all pods which are related to your applications are deployed on worker nodes.', 'start': 612.618, 'duration': 6.122}, {'end': 627.727, 'text': 'master node runs only system bots, which are responsible for actual work of the Kubernetes cluster.', 'start': 619.719, 'duration': 8.008}, {'end': 638.918, 'text': 'In general, we could also say that master node in the Kubernetes cluster is actually control plane, and it does not run your client applications.', 'start': 627.807, 'duration': 11.111}, {'end': 647.544, 'text': "So, which services actually run on different nodes? Let's have a look at this diagram.", 'start': 640.683, 'duration': 6.861}, {'end': 653.786, 'text': 'There are such services as kubelet, kube proxy and container runtime.', 'start': 648.485, 'duration': 5.301}, {'end': 659.687, 'text': 'And those services are present on each node in the Kubernetes cluster.', 'start': 654.386, 'duration': 5.301}], 'summary': 'Master node manages worker nodes, runs system bots, control plane in kubernetes cluster.', 'duration': 58.892, 'max_score': 600.795, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM600795.jpg'}, {'end': 871.862, 'src': 'embed', 'start': 824.725, 'weight': 3, 'content': [{'end': 831.37, 'text': 'for example DNS service which is responsible for names resolution in entire Kubernetes cluster.', 'start': 824.725, 'duration': 6.645}, {'end': 840.836, 'text': 'And for instance, using a DNS service, you could connect to specific deployment by the name of the corresponding deployment service.', 'start': 831.73, 'duration': 9.106}, {'end': 845.059, 'text': 'And in such a way, you could connect different deployments with each other.', 'start': 841.196, 'duration': 3.863}, {'end': 852.432, 'text': "That's our different services which are running on different nodes in the Kubernetes cluster.", 'start': 846.929, 'duration': 5.503}, {'end': 856.834, 'text': 'And the main service on the master node is API server.', 'start': 852.992, 'duration': 3.842}, {'end': 864.938, 'text': 'And by the way, using this API server service, you could actually manage entire Kubernetes cluster.', 'start': 857.775, 'duration': 7.163}, {'end': 871.862, 'text': 'How is it done? It is done by using cube CTL or cube control.', 'start': 865.939, 'duration': 5.923}], 'summary': 'Dns service resolves names in kubernetes cluster, connecting deployments using api server for cluster management via cube ctl.', 'duration': 47.137, 'max_score': 824.725, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM824725.jpg'}, {'end': 1080.353, 'src': 'embed', 'start': 1054.134, 'weight': 4, 'content': [{'end': 1059.758, 'text': 'And first we have to create actual Kubernetes cluster where we will create different deployments.', 'start': 1054.134, 'duration': 5.624}, {'end': 1068.644, 'text': 'Of course, you could create cluster using services from one of the cloud providers like Amazon Web Services or Google Cloud.', 'start': 1060.678, 'duration': 7.966}, {'end': 1071.766, 'text': 'But you have to pay for such service.', 'start': 1069.224, 'duration': 2.542}, {'end': 1077.35, 'text': 'If you want free solution, you could create cluster locally on your computer.', 'start': 1072.587, 'duration': 4.763}, {'end': 1080.353, 'text': 'And for that there was such tool as mini cube.', 'start': 1077.771, 'duration': 2.582}], 'summary': 'Create a kubernetes cluster to deploy applications, using cloud services or locally with tools like mini cube.', 'duration': 26.219, 'max_score': 1054.134, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1054134.jpg'}], 'start': 476.447, 'title': 'Kubernetes cluster and architecture overview', 'summary': 'Provides an overview of kubernetes cluster, explaining its components such as nodes, pods, containers, and the roles of master and worker nodes. it also discusses the services present on both master and worker nodes, emphasizing the communication and management within the cluster. additionally, the chapter covers kubernetes architecture, including services, nodes, and communication, emphasizing the role of api server and cube ctl tool in managing the cluster remotely. it also includes setting up a kubernetes cluster locally using minikube, creating deployments, services, and utilizing virtual machine or container managers like hyper-v for windows and virtualbox for macos.', 'chapters': [{'end': 824.725, 'start': 476.447, 'title': 'Kubernetes cluster overview', 'summary': 'Provides an overview of a kubernetes cluster, explaining its components such as nodes, pods, containers, and the roles of master and worker nodes. it also discusses the services present on both master and worker nodes, emphasizing the communication and management within the cluster.', 'duration': 348.278, 'highlights': ['A Kubernetes cluster consists of nodes, which are servers located in different data centers, and pods, the smallest unit in Kubernetes, with each pod containing usually a single container. The explanation provides an overview of the components of a Kubernetes cluster, emphasizing the structure of nodes and the role of pods, including the typical configuration of containers within pods.', 'The master node in a Kubernetes cluster manages the worker nodes, distributing load across them, while the worker nodes run the actual applications related to the deployed pods. This highlight details the key roles of the master and worker nodes, highlighting the management and workload distribution within the cluster.', 'The services present on each node in a Kubernetes cluster include kubelet, kube proxy, container runtime, and other services such as the scheduler, cube controller manager, and cloud controller manager. This provides a comprehensive list of the services present on each node in a Kubernetes cluster, including their roles in communication, workload distribution, and interaction with cloud service providers.']}, {'end': 1006.235, 'start': 824.725, 'title': 'Kubernetes architecture overview', 'summary': 'Provides an overview of kubernetes architecture, including services, nodes, and communication, emphasizing the role of api server and cube ctl tool in managing the cluster remotely.', 'duration': 181.51, 'highlights': ['The API server service on the master node allows remote management of the entire Kubernetes cluster using the cube CTL tool, facilitating communication over HTTPS.', 'Kubernetes cluster consists of master and worker nodes, with the master node managing the worker nodes and their ports, each containing single containers sharing namespaces like volumes and network IP address.', 'Pods, the smallest units in Kubernetes, can be created, removed, or moved between nodes automatically, necessitating application design considerations for such dynamic behavior.', 'DNS service enables connectivity to specific deployments by their corresponding deployment service names within the Kubernetes cluster, facilitating inter-deployment communication.']}, {'end': 1190.766, 'start': 1006.235, 'title': 'Setting up kubernetes cluster locally', 'summary': 'Covers setting up a kubernetes cluster locally using minikube, including creating deployments, services, and utilizing virtual machine or container managers like hyper-v for windows and virtualbox for macos.', 'duration': 184.531, 'highlights': ['In order to create a Kubernetes cluster locally, one can use the tool Minikube, which essentially creates a single node cluster for free and runs on the local computer.', 'Utilizing virtual machine or container managers like Hyper-V for Windows and VirtualBox for macOS is recommended to successfully run Minikube.', 'An alternative to running Minikube as a container inside Docker is available, but it comes with limitations such as the inability to change container runtime inside the Docker container to CRI or container D.']}], 'duration': 714.319, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM476447.jpg', 'highlights': ['The master node in a Kubernetes cluster manages the worker nodes, distributing load across them, while the worker nodes run the actual applications related to the deployed pods.', 'A Kubernetes cluster consists of nodes, which are servers located in different data centers, and pods, the smallest unit in Kubernetes, with each pod containing usually a single container.', 'The services present on each node in a Kubernetes cluster include kubelet, kube proxy, container runtime, and other services such as the scheduler, cube controller manager, and cloud controller manager.', 'The API server service on the master node allows remote management of the entire Kubernetes cluster using the cube CTL tool, facilitating communication over HTTPS.', 'In order to create a Kubernetes cluster locally, one can use the tool Minikube, which essentially creates a single node cluster for free and runs on the local computer.', 'DNS service enables connectivity to specific deployments by their corresponding deployment service names within the Kubernetes cluster, facilitating inter-deployment communication.']}, {'end': 1890.304, 'segs': [{'end': 1292.975, 'src': 'embed', 'start': 1263.106, 'weight': 2, 'content': [{'end': 1271.25, 'text': 'And for that you have to use one of the code editors and I recommend to you to install Visual Studio code.', 'start': 1263.106, 'duration': 8.144}, {'end': 1273.85, 'text': 'It is open source and free for use.', 'start': 1271.65, 'duration': 2.2}, {'end': 1277.951, 'text': "And if you haven't yet installed it, please go ahead and install it.", 'start': 1274.27, 'duration': 3.681}, {'end': 1281.132, 'text': 'Also, it has many different extensions.', 'start': 1278.531, 'duration': 2.601}, {'end': 1283.953, 'text': 'And one of them is Kubernetes extension.', 'start': 1281.532, 'duration': 2.421}, {'end': 1292.975, 'text': 'And using such extension, you could very fast create for instance, YAML configuration files for your deployments and services in Kubernetes.', 'start': 1284.293, 'duration': 8.682}], 'summary': 'Visual studio code is recommended for fast creation of kubernetes yaml files.', 'duration': 29.869, 'max_score': 1263.106, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1263106.jpg'}, {'end': 1333.995, 'src': 'embed', 'start': 1309.594, 'weight': 0, 'content': [{'end': 1317.941, 'text': "All right, guys, now let's get started with practical part of the course, and we will start by installing Minikube along with kubectl.", 'start': 1309.594, 'duration': 8.347}, {'end': 1323.166, 'text': 'But first, I would like to ask you to navigate to kubernetics.io.', 'start': 1318.622, 'duration': 4.544}, {'end': 1332.253, 'text': 'This is the main site dedicated to Kubernetes in general, and it has all documentation related to configuration of the Minikube clusters,', 'start': 1323.626, 'duration': 8.627}, {'end': 1333.995, 'text': 'creation of deployments, et cetera.', 'start': 1332.253, 'duration': 1.742}], 'summary': 'Get started with minikube and kubectl, visit kubernetes.io for documentation.', 'duration': 24.401, 'max_score': 1309.594, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1309594.jpg'}, {'end': 1635.693, 'src': 'embed', 'start': 1606.471, 'weight': 1, 'content': [{'end': 1613.536, 'text': 'And all what you need in order to create such a cluster is just single command mini cube start simple as that.', 'start': 1606.471, 'duration': 7.065}, {'end': 1624.345, 'text': 'But in order to successfully create the mini cube cluster, you have to install one of the container or virtual machine managers, such as Docker,', 'start': 1614.317, 'duration': 10.028}, {'end': 1627.187, 'text': 'hyperkit, hyper V parallels and so on.', 'start': 1624.345, 'duration': 2.842}, {'end': 1635.693, 'text': "I told you before that if you're a Windows user, I recommend to you to utilize hyper V because it is available on Windows out of the box.", 'start': 1628.228, 'duration': 7.465}], 'summary': 'Creating a mini cube cluster requires a single command, but it needs a container or virtual machine manager like docker, hyperkit, hyper v, or parallels. hyper v is recommended for windows users.', 'duration': 29.222, 'max_score': 1606.471, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1606471.jpg'}], 'start': 1190.766, 'title': 'Installing minikube and creating cluster', 'summary': 'Covers the installation of minikube and kubectl, recommending separate installation of kubectl, providing specific instructions for macos and windows users, emphasizing the use of mini cube for creating a local kubernetes cluster, and guiding through the process of creating a kubernetes cluster using commands like minikube start and specifying the virtual machine or container manager.', 'chapters': [{'end': 1479.41, 'start': 1190.766, 'title': 'Installation of minikube and kubectl', 'summary': 'Explains the installation process of minikube and kubectl, recommending separate installation of kubectl, and providing specific instructions for macos and windows users, with emphasis on using homebrew for macos and chocolatey for windows.', 'duration': 288.644, 'highlights': ['The chapter explains the installation process of Minikube and kubectl, recommending separate installation of kubectl, and providing specific instructions for macOS and Windows users, with emphasis on using Homebrew for macOS and Chocolatey for Windows.', 'Hyper V is available on Windows computers out of the box, and it could be utilized as a virtual machine manager for running a mini cube node, creating a single node Kubernetes cluster.', 'Visual Studio code is recommended for use, being open source and free, with many extensions available, including a Kubernetes extension for fast creation of YAML configuration files for deployments and services in Kubernetes.', 'The chapter also mentions the use of cube CDL as a specific tool to manage the Kubernetes cluster, emphasizing the inconvenience of using the included version and recommending a separate installation for managing other Kubernetes clusters.', 'Instructions for installing kubectl using Homebrew on macOS and Chocolatey on Windows are provided, with clear demonstrations and commands for each operating system.']}, {'end': 1654.732, 'start': 1480.41, 'title': 'Installing mini cube and cube ctl on windows', 'summary': 'Discusses the installation of cube ctl and mini cube on windows, emphasizing the use of mini cube for creating a local kubernetes cluster, which requires one of the virtual machine managers like hyper v parallels or docker.', 'duration': 174.322, 'highlights': ['The chapter emphasizes the installation of Mini Cube for creating a local Kubernetes cluster, which requires one of the virtual machine managers like hyper V parallels or Docker.', "Mini Cube will create a Kubernetes cluster locally on the computer, containing a single node acting as both master and worker node, with the cluster creation process initiated by a single command 'mini cube start'.", 'The recommended virtual machine managers for Windows users are hyper V, available out of the box, while Mac users are suggested to utilize options like VirtualBox, Parallels, or VMware Fusion, with VirtualBox being free for use.', 'The chapter also mentions other tools like kind and cube Adam for creating Kubernetes clusters locally, but states a preference for Mini Cube throughout the course.']}, {'end': 1890.304, 'start': 1655.712, 'title': 'Installing mini cube and creating kubernetes cluster', 'summary': 'Explains how to install mini cube on different operating systems, including windows and macos, using commands like choco install mini cube and brew install mini cube, and then proceeds to guide through the process of creating a kubernetes cluster using commands like minikube start and specifying the virtual machine or container manager.', 'duration': 234.592, 'highlights': ['The chapter explains how to install Mini Cube on different operating systems, including Windows and macOS, using commands like choco install mini cube and brew install mini cube. It provides a clear guide on how to install Mini Cube on different operating systems, offering specific commands for Windows and macOS users.', 'The chapter proceeds to guide through the process of creating a Kubernetes cluster using commands like minikube start and specifying the virtual machine or container manager. It provides step-by-step instructions for creating a Kubernetes cluster, including specifying the virtual machine or container manager, which is crucial for setting up the cluster.']}], 'duration': 699.538, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1190766.jpg', 'highlights': ['The chapter provides clear instructions for installing Minikube and kubectl on macOS and Windows, emphasizing the use of Homebrew for macOS and Chocolatey for Windows.', 'Mini Cube is recommended for creating a local Kubernetes cluster, with specific emphasis on using virtual machine managers like Hyper V for Windows and options like VirtualBox, Parallels, or VMware Fusion for Mac.', 'Visual Studio code is recommended for use, with many extensions available, including a Kubernetes extension for fast creation of YAML configuration files for deployments and services in Kubernetes.', 'The chapter guides through the process of creating a Kubernetes cluster using commands like minikube start and specifying the virtual machine or container manager, providing step-by-step instructions for this crucial setup.']}, {'end': 3254.802, 'segs': [{'end': 1915.415, 'src': 'embed', 'start': 1890.464, 'weight': 0, 'content': [{'end': 1895.926, 'text': "That's why I will simply specify it as a value for the driver option here.", 'start': 1890.464, 'duration': 5.462}, {'end': 1899.307, 'text': 'So I will type VirtualBox.', 'start': 1896.506, 'duration': 2.801}, {'end': 1906.169, 'text': "Let's go ahead and create mini cube cluster inside of the VirtualBox virtual machine in my case.", 'start': 1900.327, 'duration': 5.842}, {'end': 1912.473, 'text': 'Creating virtual box, virtual machine, quantity of CPUs, memory and disk.', 'start': 1907.11, 'duration': 5.363}, {'end': 1914.254, 'text': 'It will take a while.', 'start': 1913.254, 'duration': 1}, {'end': 1915.415, 'text': 'Let me wait a bit.', 'start': 1914.595, 'duration': 0.82}], 'summary': 'Creating minikube cluster with virtualbox virtual machine, specifying cpus, memory, and disk.', 'duration': 24.951, 'max_score': 1890.464, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1890464.jpg'}, {'end': 2145.976, 'src': 'embed', 'start': 2112.725, 'weight': 3, 'content': [{'end': 2114.787, 'text': 'Please go ahead and type it here.', 'start': 2112.725, 'duration': 2.062}, {'end': 2118.671, 'text': 'So username is Docker and password is DC user.', 'start': 2115.207, 'duration': 3.464}, {'end': 2120.802, 'text': 'password was entered.', 'start': 2119.741, 'duration': 1.061}, {'end': 2124.384, 'text': 'And now I see welcome prompt from the mini cube server.', 'start': 2121.102, 'duration': 3.282}, {'end': 2127.926, 'text': 'Now I am inside of the Kubernetes node.', 'start': 2124.924, 'duration': 3.002}, {'end': 2134.649, 'text': 'And first command which I would like to ask you to enter here is Docker PS.', 'start': 2129.546, 'duration': 5.103}, {'end': 2139.132, 'text': 'Such command will list you all running Docker containers.', 'start': 2135.33, 'duration': 3.802}, {'end': 2145.976, 'text': 'And here are a bunch of different containers which were created inside of the Kubernetes node.', 'start': 2140.092, 'duration': 5.884}], 'summary': 'Logged into kubernetes node with docker username, saw containers running.', 'duration': 33.251, 'max_score': 2112.725, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM2112725.jpg'}, {'end': 2254.432, 'src': 'embed', 'start': 2223.258, 'weight': 2, 'content': [{'end': 2227.96, 'text': "This way, let's now go out of this SSH connection connection was closed.", 'start': 2223.258, 'duration': 4.702}, {'end': 2231.202, 'text': "And now let's utilize kubectl command here.", 'start': 2228.441, 'duration': 2.761}, {'end': 2237.706, 'text': 'Of course, kubectl is available locally on our computers because we have installed kubectl before.', 'start': 2231.642, 'duration': 6.064}, {'end': 2243.609, 'text': "Let's first check cluster info kubectl cluster dash info.", 'start': 2238.506, 'duration': 5.103}, {'end': 2248.31, 'text': 'And I get following output Kubernetes control plane is running.', 'start': 2244.489, 'duration': 3.821}, {'end': 2254.432, 'text': 'And here I see IP address, which we just saw after entering mini cube IP command.', 'start': 2248.71, 'duration': 5.722}], 'summary': 'Utilized kubectl command to check cluster info, with kubernetes control plane running.', 'duration': 31.174, 'max_score': 2223.258, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM2223258.jpg'}, {'end': 2356.742, 'src': 'embed', 'start': 2329.491, 'weight': 4, 'content': [{'end': 2341.296, 'text': "Let's list all namespaces which are available now in this Kubernetes cluster for that please enter command cube CTL get name spaces like that.", 'start': 2329.491, 'duration': 11.805}, {'end': 2349.539, 'text': 'And I see several namespaces like default cube node lease cube public and cube system.', 'start': 2341.836, 'duration': 7.703}, {'end': 2356.742, 'text': 'namespaces are used in Kubernetes in order to group different resources and configuration objects.', 'start': 2350.459, 'duration': 6.283}], 'summary': 'There are currently 5 namespaces available in the kubernetes cluster: default, cube, node, lease, public, and system.', 'duration': 27.251, 'max_score': 2329.491, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM2329491.jpg'}, {'end': 3113.117, 'src': 'embed', 'start': 3080.838, 'weight': 1, 'content': [{'end': 3086.961, 'text': 'And in our example, NGNX image was pulled and new container was created based on that image.', 'start': 3080.838, 'duration': 6.123}, {'end': 3094.605, 'text': 'Also, we went inside of the container and verified that NGNX web server is now actually running.', 'start': 3087.802, 'duration': 6.803}, {'end': 3103.25, 'text': 'But we are not able to connect to such port from the outside, because now it has only internal IP address, which was assigned by the Docker.', 'start': 3095.206, 'duration': 8.044}, {'end': 3113.117, 'text': "But, of course, creation of the ports using cube CTL run command is not really convenient because you're not able to scale and, for example,", 'start': 3103.69, 'duration': 9.427}], 'summary': 'Ngnx image pulled, container created, web server verified, unable to connect to the port from outside due to internal ip address.', 'duration': 32.279, 'max_score': 3080.838, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM3080838.jpg'}], 'start': 1890.464, 'title': 'Managing minikube and kubernetes cluster', 'summary': 'Covers setting up minikube cluster with virtualbox, verifying kubernetes cluster and accessing docker inside minikube node, managing kubernetes cluster with kubectl, and connecting to containers and managing kubernetes pods, providing step-by-step instructions for each process and specifying the options and configurations involved.', 'chapters': [{'end': 1966.688, 'start': 1890.464, 'title': 'Setting up minikube cluster with virtualbox', 'summary': 'Details the process of creating a minikube cluster using virtualbox, specifying the driver option, creating a virtual machine with specified cpu, memory, and disk, and configuring minikube cluster automatically, which takes some time.', 'duration': 76.224, 'highlights': ["The chapter highlights the process of creating a MiniKube cluster using VirtualBox and specifying the driver option as 'VirtualBox', followed by creating a virtual machine with specified CPU, memory, and disk. This process takes some time.", "After creating the virtual machine, the chapter discusses the message 'preparing Kubernetes on Docker', indicating the utilization of Docker container runtime for running actual containers inside the Kubernetes cluster.", "The chapter also emphasizes the automatic configuration of 'mini cube cluster' to be used by 'cube CTL', eliminating the need for manual connection setup."]}, {'end': 2195.406, 'start': 1966.688, 'title': 'Verifying kubernetes cluster and accessing docker inside minikube node', 'summary': 'Demonstrates how to verify the status of a minikube kubernetes cluster, access docker inside the minikube node, and lists the running docker containers, illustrating how minikube utilizes docker as the default container runtime for kubernetes.', 'duration': 228.718, 'highlights': ["MiniKube status can be verified using the 'minikube status' command, and it should display the normal status of the MiniKube cluster, including the running host, API server, and configured cube config. Command: 'minikube status'; Expected output: Running host, API server, and configured cube config", "By using the 'minikube IP' command, the IP address assigned to the virtual machine running the Kubernetes node can be obtained, allowing SSH access to the MiniKube node. Command: 'minikube IP'; Action: Obtain IP address for SSH access", "Accessing the MiniKube node via SSH by using the default username 'Docker' and password 'DC user', and then listing all running Docker containers using the 'Docker PS' command. Action: Access MiniKube node via SSH; Command: 'Docker PS'; Result: List of running Docker containers"]}, {'end': 2889.66, 'start': 2196.266, 'title': 'Managing kubernetes cluster with kubectl', 'summary': 'Explains how to manage a kubernetes cluster using kubectl, including checking cluster info, listing nodes and namespaces, creating pods manually, and managing containers inside the pods.', 'duration': 693.394, 'highlights': ["The kubectl command is used to manage the Kubernetes cluster, and by checking the cluster info with 'kubectl cluster-info', it is confirmed that the Kubernetes control plane is running. The 'kubectl cluster-info' command confirms the Kubernetes control plane is running and provides the IP address of the control plane, indicating the cluster's operational status.", "Using 'kubectl get nodes' command, it is observed that a single node with the roles control plane and master is present in the cluster, signifying the current state of the cluster. The 'kubectl get nodes' command reveals the single node with the roles control plane and master, providing an insight into the cluster's configuration and status.", "The 'kubectl get pods' command in the default namespace returns 'no resources found', indicating the absence of running pods in the default namespace. Executing 'kubectl get pods' in the default namespace returns 'no resources found', signaling the absence of running pods in the default namespace.", "Using 'kubectl get namespaces', several namespaces like default, kube-system, and cube-public are listed, demonstrating the usage of namespaces to group resources and configuration objects in Kubernetes. The 'kubectl get namespaces' command lists several namespaces, such as default, kube-system, and cube-public, showcasing the grouping of resources and configuration objects in Kubernetes.", "By creating a pod using the 'kubectl run' command with the nginx Docker image, it is observed that the pod is successfully created and running inside the Kubernetes cluster. The successful creation and running status of the nginx pod inside the Kubernetes cluster using the 'kubectl run' command with the nginx Docker image is observed, demonstrating the creation of pods in the cluster."]}, {'end': 3254.802, 'start': 2890.34, 'title': 'Connecting to containers and managing kubernetes pods', 'summary': 'Details the process of connecting to a container, checking its details, and verifying the operation of an nginx web server within the container, also including the creation and deletion of a kubernetes pod with nginx image.', 'duration': 364.462, 'highlights': ["The NGINX web server is up and running inside the container, as verified by accessing its welcome page using the container's internal IP address.", 'The process of creating a Kubernetes pod with NGINX image is explained, including the steps to connect to it, check its details, and the inability to access it from outside the cluster due to its internal IP address.', "The creation of a Kubernetes pod using 'kubectl run' command is discussed, along with the subsequent deletion of the created pod using 'kubectl delete' command.", "The suggestion to create an alias for the 'kubectl' command to save time in the future is mentioned, with instructions for creating the alias on Linux operating systems and a recommendation to use Git Bash on Windows for a similar command line experience."]}], 'duration': 1364.338, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM1890464.jpg', 'highlights': ["The chapter covers setting up MiniKube cluster with VirtualBox, specifying driver option as 'VirtualBox', creating virtual machine with specified CPU, memory, and disk", 'The process of creating a Kubernetes pod with NGINX image is explained, including the steps to connect to it, check its details, and the inability to access it from outside the cluster', "The kubectl command is used to manage the Kubernetes cluster, and by checking the cluster info with 'kubectl cluster-info', it is confirmed that the Kubernetes control plane is running", "Accessing the MiniKube node via SSH by using the default username 'Docker' and password 'DC user', and then listing all running Docker containers using the 'Docker PS' command", "Using 'kubectl get namespaces', several namespaces like default, kube-system, and cube-public are listed, demonstrating the usage of namespaces to group resources and configuration objects in Kubernetes"]}, {'end': 4018.924, 'segs': [{'end': 3282.384, 'src': 'embed', 'start': 3255.362, 'weight': 2, 'content': [{'end': 3260.507, 'text': 'And after installation, please open Git Bash terminal instead of the PowerShell.', 'start': 3255.362, 'duration': 5.145}, {'end': 3266.594, 'text': 'So I already have alias command available in this terminal on my course.', 'start': 3261.428, 'duration': 5.166}, {'end': 3269.818, 'text': 'Therefore, I will be able to create such an alias.', 'start': 3266.955, 'duration': 2.863}, {'end': 3272.762, 'text': "Let's create alias alias was created.", 'start': 3270.359, 'duration': 2.403}, {'end': 3276.206, 'text': "And now I'm able to utilize just short version of the command.", 'start': 3272.882, 'duration': 3.324}, {'end': 3277.687, 'text': 'Okay, get boats.', 'start': 3276.446, 'duration': 1.241}, {'end': 3282.384, 'text': 'And now I see output no resources found in default namespace.', 'start': 3278.823, 'duration': 3.561}], 'summary': 'Using git bash terminal to create alias for command shortcuts, enabling efficient utilization.', 'duration': 27.022, 'max_score': 3255.362, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM3255362.jpg'}, {'end': 3338.226, 'src': 'embed', 'start': 3303.789, 'weight': 0, 'content': [{'end': 3308.35, 'text': 'in order to perform such a task, you have to edit your shell configuration profile.', 'start': 3303.789, 'duration': 4.561}, {'end': 3311.072, 'text': 'But I will not do that right now.', 'start': 3308.81, 'duration': 2.262}, {'end': 3313.755, 'text': "It's enough to have just temporal alias.", 'start': 3311.353, 'duration': 2.402}, {'end': 3316.376, 'text': "Great Now let's continue.", 'start': 3314.775, 'duration': 1.601}, {'end': 3318.417, 'text': 'As I mentioned before,', 'start': 3316.976, 'duration': 1.441}, {'end': 3326.881, 'text': "it is not convenient to create separate ports inside of the Kubernetes cluster because you're not able to scale and increase quantity of the ports.", 'start': 3318.417, 'duration': 8.464}, {'end': 3338.226, 'text': 'Therefore, the most common way to create multiple ports, when you are able to increase quantity of the ports, decrease quantity, modify configuration,', 'start': 3327.741, 'duration': 10.485}], 'summary': 'To create multiple ports in kubernetes, use a temporal alias instead of editing the shell configuration profile.', 'duration': 34.437, 'max_score': 3303.789, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM3303789.jpg'}, {'end': 3376.501, 'src': 'embed', 'start': 3352.691, 'weight': 4, 'content': [{'end': 3360.597, 'text': 'But you could create multiple copies of the same port and distribute load across different nodes in the Kubernetes cluster.', 'start': 3352.691, 'duration': 7.906}, {'end': 3362.319, 'text': "That's purpose of the deployment.", 'start': 3360.898, 'duration': 1.421}, {'end': 3365.955, 'text': "Now let's go ahead and create deployment.", 'start': 3363.593, 'duration': 2.362}, {'end': 3371.378, 'text': 'And we will utilize same image which we utilized before it is nginx image.', 'start': 3366.315, 'duration': 5.063}, {'end': 3376.501, 'text': 'And also afterwards, we will increase quantity of the ports in this deployment.', 'start': 3372.099, 'duration': 4.402}], 'summary': 'Creating multiple copies of a port to distribute load in a kubernetes cluster using nginx image, and increasing port quantity.', 'duration': 23.81, 'max_score': 3352.691, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM3352691.jpg'}, {'end': 3903.446, 'src': 'embed', 'start': 3874.019, 'weight': 1, 'content': [{'end': 3884.074, 'text': 'In order to specify desired quantity of the replicas, we could add here option replicas And after equal sign specify quantity of the replicas.', 'start': 3874.019, 'duration': 10.055}, {'end': 3887.556, 'text': "Let's say we want to scale to five replicas.", 'start': 3884.554, 'duration': 3.002}, {'end': 3889.237, 'text': "Let's enter five here.", 'start': 3888.097, 'duration': 1.14}, {'end': 3891.579, 'text': "And let's scale our deployment.", 'start': 3889.618, 'duration': 1.961}, {'end': 3893.7, 'text': 'Deployment was scaled.', 'start': 3892.479, 'duration': 1.221}, {'end': 3896.682, 'text': "And now let's enter command K get bots.", 'start': 3893.84, 'duration': 2.842}, {'end': 3903.446, 'text': 'And I see that there are four new containers which are currently being created.', 'start': 3897.722, 'duration': 5.724}], 'summary': 'Scaled deployment to five replicas, resulting in four new containers being created.', 'duration': 29.427, 'max_score': 3874.019, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM3874019.jpg'}], 'start': 3255.362, 'title': 'Git bash terminal, aliases, and kubernetes deployments', 'summary': 'Covers the use of git bash terminal for creating aliases in kubernetes, emphasizing the process of managing and scaling deployments, with a focus on creating permanent aliases and showcasing the automatic scaling and distribution of pods.', 'chapters': [{'end': 3303.789, 'start': 3255.362, 'title': 'Git bash terminal and creating aliases', 'summary': 'Emphasizes the use of git bash terminal over powershell to create and utilize aliases for commands in kubernetes, with a reminder that aliases will leave after the session and guidance on creating permanent aliases.', 'duration': 48.427, 'highlights': ['Creating and utilizing aliases in Git Bash terminal for commands in Kubernetes, with a reminder that aliases will only exist during the session.', 'Emphasizing the use of Git Bash terminal over PowerShell for creating aliases and the temporary nature of the aliases created in the terminal session.', 'Guidance on creating permanent aliases for commands in Kubernetes, ensuring their existence beyond the session.']}, {'end': 4018.924, 'start': 3303.789, 'title': 'Managing kubernetes deployments', 'summary': 'Explains the process of creating and scaling deployments in kubernetes, emphasizing the use of deployments to manage and scale multiple replicas of the same pod, demonstrating the creation and scaling of a deployment, and highlighting the automatic scaling and distribution of pods across nodes in the cluster.', 'duration': 715.135, 'highlights': ['The chapter explains the use of deployments to manage and scale multiple replicas of the same pod, emphasizing the benefits of using deployments for scaling and modifying configurations (e.g., increasing quantity of ports, distribution of load across different nodes).', "Demonstrates the creation and scaling of a deployment using the 'kubectl create deployment' and 'kubectl scale deployment' commands, showcasing the automatic creation and scaling of multiple replicas of the same pod within the Kubernetes cluster.", 'Highlights the automatic scaling and distribution of pods across nodes in the cluster, showcasing the automatic creation and distribution of multiple pods across a single node in the cluster.']}], 'duration': 763.562, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM3255362.jpg', 'highlights': ['Guidance on creating permanent aliases for commands in Kubernetes, ensuring their existence beyond the session.', "Demonstrates the creation and scaling of a deployment using the 'kubectl create deployment' and 'kubectl scale deployment' commands, showcasing the automatic creation and scaling of multiple replicas of the same pod within the Kubernetes cluster.", 'Emphasizing the use of Git Bash terminal over PowerShell for creating aliases and the temporary nature of the aliases created in the terminal session.', 'Covers the use of git bash terminal for creating aliases in Kubernetes, with a focus on creating permanent aliases and showcasing the automatic scaling and distribution of pods.', 'The chapter explains the use of deployments to manage and scale multiple replicas of the same pod, emphasizing the benefits of using deployments for scaling and modifying configurations (e.g., increasing quantity of ports, distribution of load across different nodes).']}, {'end': 5712.679, 'segs': [{'end': 4175.179, 'src': 'embed', 'start': 4148.001, 'weight': 0, 'content': [{'end': 4159.627, 'text': 'And you should utilize some sort of other IP addresses which are managed by Kubernetes and which allow you to connect to any of the ports inside of the deployment.', 'start': 4148.001, 'duration': 11.626}, {'end': 4162.787, 'text': 'Let me show you how to do that.', 'start': 4161.607, 'duration': 1.18}, {'end': 4171.856, 'text': 'In Kubernetes, you have to create so called services, if you would like to connect to specific deployments using specific IP addresses.', 'start': 4163.429, 'duration': 8.427}, {'end': 4175.179, 'text': 'And there are different options available.', 'start': 4172.617, 'duration': 2.562}], 'summary': 'In kubernetes, create services for managing ip addresses to connect to ports inside deployments.', 'duration': 27.178, 'max_score': 4148.001, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM4148001.jpg'}, {'end': 4356.6, 'src': 'embed', 'start': 4330.162, 'weight': 1, 'content': [{'end': 4339.567, 'text': 'It means that we have to expose internal port 80 from the containers to any other port outside of the deployment.', 'start': 4330.162, 'duration': 9.405}, {'end': 4343.734, 'text': 'And we could choose for instance, port 8080.', 'start': 4340.993, 'duration': 2.741}, {'end': 4352.658, 'text': 'For this particular example, in order to expose internal port from the deployment ports, you should utilize command expose.', 'start': 4343.734, 'duration': 8.924}, {'end': 4356.6, 'text': "Let's enter a key expose deployment.", 'start': 4353.379, 'duration': 3.221}], 'summary': "Expose internal port 80 to port 8080 using the command 'expose deployment'.", 'duration': 26.438, 'max_score': 4330.162, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM4330162.jpg'}, {'end': 5007.448, 'src': 'embed', 'start': 4980.956, 'weight': 3, 'content': [{'end': 4986.759, 'text': "You could find all final project files in the GitHub repository, you'll find link to it right now here.", 'start': 4980.956, 'duration': 5.803}, {'end': 4990.961, 'text': 'But I highly recommend to you to create such an application yourself.', 'start': 4987.459, 'duration': 3.502}, {'end': 4994.803, 'text': "Even if you don't know much about NodeJS and Express.", 'start': 4991.321, 'duration': 3.482}, {'end': 5001.566, 'text': 'And, of course, I recommend to you to build your custom image and push it to your Docker Hub account.', 'start': 4995.303, 'duration': 6.263}, {'end': 5007.448, 'text': "Of course, you could utilize images available under my account, they are public, it's up to you.", 'start': 5001.906, 'duration': 5.542}], 'summary': 'Recommend creating a custom application using nodejs and express, and pushing it to docker hub account.', 'duration': 26.492, 'max_score': 4980.956, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM4980956.jpg'}, {'end': 5187.669, 'src': 'embed', 'start': 5157.461, 'weight': 2, 'content': [{'end': 5163.162, 'text': 'we will run application inside of the container in the Kubernetes cluster instead.', 'start': 5157.461, 'duration': 5.701}, {'end': 5170.804, 'text': 'But in order to initialize project locally, and install dependencies, you have to use NPM.', 'start': 5163.842, 'duration': 6.962}, {'end': 5174.865, 'text': 'So therefore, please install NodeJS along with NPM.', 'start': 5171.284, 'duration': 3.581}, {'end': 5178.525, 'text': 'Afterwards, NPM should become available on your computer.', 'start': 5175.405, 'duration': 3.12}, {'end': 5180.706, 'text': "I'll hide this back pane.", 'start': 5179.046, 'duration': 1.66}, {'end': 5184.726, 'text': 'And now here, let me npm init.', 'start': 5181.883, 'duration': 2.843}, {'end': 5187.669, 'text': "And I'll initialize this project.", 'start': 5185.307, 'duration': 2.362}], 'summary': 'Run application in kubernetes, install nodejs and npm, initialize project with npm init.', 'duration': 30.208, 'max_score': 5157.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM5157461.jpg'}], 'start': 4020.802, 'title': 'Kubernetes deployment and services', 'summary': 'Covers connecting to kubernetes ports, creating services, and exposing nginx deployment with cluster ip, while also focusing on creating custom web servers with express and dockerizing applications, providing step-by-step instructions for setting up projects.', 'chapters': [{'end': 4420.702, 'start': 4020.802, 'title': 'Connecting to kubernetes ports and creating services', 'summary': 'Focuses on connecting to kubernetes ports and demonstrates creating services, highlighting the importance of utilizing kubernetes-managed ip addresses over specific port ip addresses for convenient and flexible access, and explains the process of creating services and exposing ports in a kubernetes deployment.', 'duration': 399.9, 'highlights': ['Creating services in Kubernetes allows for the management of IP addresses and facilitates convenient access to deployments, such as utilizing cluster IP or load balancer IP addresses. Creating services in Kubernetes, such as cluster IP or load balancer IP addresses, facilitates convenient access to deployments and efficient management of IP addresses.', 'Emphasizes the inconvenience and unreliability of relying on specific IP addresses of ports within a Kubernetes cluster and encourages the use of Kubernetes-managed IP addresses for connecting to deployments. Highlighting the inconvenience and unreliability of relying on specific IP addresses of ports within a Kubernetes cluster, emphasizing the importance of utilizing Kubernetes-managed IP addresses for connecting to deployments.', "Demonstrates the process of creating a service for a specific deployment and exposing internal ports, showcasing the command 'expose deployment' with specified external and target ports for convenient access to the deployment. Demonstrating the process of creating a service for a specific deployment, showcasing the command 'expose deployment' with specified external and target ports for convenient access to the deployment."]}, {'end': 4933.009, 'start': 4420.702, 'title': 'Exposing nginx deployment with cluster ip', 'summary': 'Explains the concept of cluster ip for nginx deployment, including its usage within a kubernetes cluster, its limitations in accessing it from outside the cluster, and the details of creating and managing services for deployments.', 'duration': 512.307, 'highlights': ['Cluster IP allows connections to specific deployment within the Kubernetes cluster. Cluster IP service enables connections to specific deployments within the Kubernetes cluster, such as database deployments, and hides them from the outside world.', 'Cluster IP address is not available outside of the Kubernetes cluster. The Cluster IP address is not accessible outside the Kubernetes cluster, restricting external access to the services.', "Details of a specific service can be retrieved using 'K get SVC' and 'describe service' commands. Specific service details, including cluster IP, external port, target port, and endpoints, can be obtained using 'K get SVC' and 'describe service' commands."]}, {'end': 5396.628, 'start': 4933.449, 'title': 'Creating custom web server with express', 'summary': 'Covers creating a custom web server using express, dockerizing the application, and deploying it to a kubernetes cluster, emphasizing the importance of creating the application and custom image, as well as providing step-by-step instructions for setting up the project.', 'duration': 463.179, 'highlights': ['Creating custom web server using Express and dockerizing the application The chapter covers creating a custom web server using Express and dockerizing the application, emphasizing the importance of creating the application and custom image.', 'Deploying the custom image to a Kubernetes cluster The chapter provides step-by-step instructions for deploying the custom image to a Kubernetes cluster.', 'Emphasizing the importance of creating the application and custom image The chapter emphasizes the importance of creating the application and custom image, recommending the audience to create the application themselves and push it to their Docker Hub account.']}, {'end': 5712.679, 'start': 5397.429, 'title': 'Dockerizing application & installing docker', 'summary': 'Covers the process of dockerizing an application, including creating a docker file, installing docker and kubernetes extensions, and modifying the package.json file to enable running the application using npm start command.', 'duration': 315.25, 'highlights': ['The chapter covers the process of dockerizing an application, including creating a Docker file, installing Docker and Kubernetes extensions, and modifying the package.json file to enable running the application using npm start command. The detailed process of dockerizing an application, including creating a Docker file, installing Docker and Kubernetes extensions, and modifying the package.json file to enable running the application using npm start command.', 'Instructions for building custom Docker image using node Alpine as a base image, setting the working directory, exposing port 3000, and copying files before running npm install to build the custom image. The detailed instructions for building a custom Docker image, including using node Alpine as a base image, setting the working directory, exposing port 3000, and copying files before running npm install to build the custom image.', 'Guidance on modifying the package.json file to include a start script for running the Express web server on port 3000. Guidance on modifying the package.json file to include a start script for running the Express web server on port 3000.']}], 'duration': 1691.877, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM4020802.jpg', 'highlights': ['Creating services in Kubernetes allows for the management of IP addresses and facilitates convenient access to deployments, such as utilizing cluster IP or load balancer IP addresses.', "Demonstrating the process of creating a service for a specific deployment, showcasing the command 'expose deployment' with specified external and target ports for convenient access to the deployment.", 'The detailed process of dockerizing an application, including creating a Docker file, installing Docker and Kubernetes extensions, and modifying the package.json file to enable running the application using npm start command.', 'The chapter covers creating a custom web server using Express and dockerizing the application, emphasizing the importance of creating the application and custom image.']}, {'end': 6384.651, 'segs': [{'end': 5834.128, 'src': 'embed', 'start': 5805.53, 'weight': 3, 'content': [{'end': 5809.141, 'text': "And here, let's build custom image for our application.", 'start': 5805.53, 'duration': 3.611}, {'end': 5812.788, 'text': "Let's use command Docker build.", 'start': 5810.205, 'duration': 2.583}, {'end': 5821.856, 'text': "Next will be path to Docker file, I'll use simply dot because now I'm inside of the folder where Docker file was created.", 'start': 5813.468, 'duration': 8.388}, {'end': 5823.277, 'text': 'So Docker build dot.', 'start': 5822.076, 'duration': 1.201}, {'end': 5831.946, 'text': "Next, let's add tag to our image using dash t option, then will be username of your GitHub account.", 'start': 5823.998, 'duration': 7.948}, {'end': 5834.128, 'text': "In my case, I'll type mine.", 'start': 5832.506, 'duration': 1.622}], 'summary': 'Create a custom image using docker build command with a github username tag.', 'duration': 28.598, 'max_score': 5805.53, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM5805530.jpg'}, {'end': 5898.594, 'src': 'embed', 'start': 5868.411, 'weight': 5, 'content': [{'end': 5877.809, 'text': 'Now, if I enter command Docker images and add grab, And here will be K eight s web,', 'start': 5868.411, 'duration': 9.398}, {'end': 5883.35, 'text': "I'll find image that is now available in our local images repository.", 'start': 5877.809, 'duration': 5.541}, {'end': 5887.271, 'text': 'Here was name of the image, which we just built.', 'start': 5884.03, 'duration': 3.241}, {'end': 5895.793, 'text': 'Tag is latest because in this command, which I just entered, I did not specify a tag, which you are able to specify after colon here.', 'start': 5887.851, 'duration': 7.942}, {'end': 5898.594, 'text': 'But I built image with latest tech.', 'start': 5896.474, 'duration': 2.12}], 'summary': "Using 'docker images' command, the latest image in the local repository is found with the tag 'latest'.", 'duration': 30.183, 'max_score': 5868.411, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM5868411.jpg'}, {'end': 5953.04, 'src': 'embed', 'start': 5929.822, 'weight': 4, 'content': [{'end': 5936.845, 'text': 'In your case, if you enter Docker login for the first time, you will be prompted to enter Docker Hub login and password.', 'start': 5929.822, 'duration': 7.023}, {'end': 5942.148, 'text': "Now I'm able to push this build image to Docker Hub.", 'start': 5938.346, 'duration': 3.802}, {'end': 5946.014, 'text': "For that, I'll utilize command Docker push.", 'start': 5943.032, 'duration': 2.982}, {'end': 5953.04, 'text': 'And here will be name of the image which I would like to push to remote repository hosting service.', 'start': 5946.575, 'duration': 6.465}], 'summary': "First-time docker login prompts for docker hub credentials. successfully pushed build image to docker hub using 'docker push' command.", 'duration': 23.218, 'max_score': 5929.822, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM5929822.jpg'}, {'end': 6014.56, 'src': 'embed', 'start': 5990.084, 'weight': 2, 'content': [{'end': 5997.366, 'text': "Wonderful This image by the way is public and you're able to utilize it as well for your Kubernetes deployments.", 'start': 5990.084, 'duration': 7.282}, {'end': 6001.052, 'text': 'image is ready and available at Docker Hub.', 'start': 5998.59, 'duration': 2.462}, {'end': 6006.055, 'text': 'And now we are able to create the Kubernetes deployment based on this image.', 'start': 6001.392, 'duration': 4.663}, {'end': 6007.296, 'text': "Let's do that.", 'start': 6006.855, 'duration': 0.441}, {'end': 6009.497, 'text': "Let's go to terminal here.", 'start': 6007.796, 'duration': 1.701}, {'end': 6011.538, 'text': "And let's create a new deployment.", 'start': 6010.017, 'duration': 1.521}, {'end': 6014.56, 'text': 'By the way, now there are no deployments K get deploy.', 'start': 6011.959, 'duration': 2.601}], 'summary': 'Public image available for kubernetes deployment on docker hub.', 'duration': 24.476, 'max_score': 5990.084, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM5990084.jpg'}, {'end': 6104.447, 'src': 'embed', 'start': 6076.893, 'weight': 0, 'content': [{'end': 6086.339, 'text': 'Of course, if you performed all steps yourself and pushed customly built image to Docker Hub under your account, you could utilize here your username.', 'start': 6076.893, 'duration': 9.446}, {'end': 6090.161, 'text': "So let's go ahead and create new deployment.", 'start': 6087.519, 'duration': 2.642}, {'end': 6092.422, 'text': 'Deployment was created.', 'start': 6091.222, 'duration': 1.2}, {'end': 6094.243, 'text': "Let's K get pods.", 'start': 6092.903, 'duration': 1.34}, {'end': 6103.245, 'text': 'Now I see that container creating status is status of the spot which was created for this deployment.', 'start': 6096.658, 'duration': 6.587}, {'end': 6104.447, 'text': "Let's check again.", 'start': 6103.626, 'duration': 0.821}], 'summary': 'Created new deployment, checked container status, and verified deployment.', 'duration': 27.554, 'max_score': 6076.893, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6076893.jpg'}, {'end': 6162.776, 'src': 'embed', 'start': 6129.494, 'weight': 1, 'content': [{'end': 6142.145, 'text': "Now let's create service using cluster IP and try to connect afterwards to our web server which is running using NodeJS Express.", 'start': 6129.494, 'duration': 12.651}, {'end': 6154.213, 'text': "So let's create a service for that we will expose port K expose deployment Here will be name of the deployment K eight s web.", 'start': 6142.886, 'duration': 11.327}, {'end': 6162.776, 'text': "Hello Next, let's add option port and recap that our Express web server is running at port 3000.", 'start': 6155.073, 'duration': 7.703}], 'summary': 'Creating a service using cluster ip to connect to a nodejs express web server running at port 3000.', 'duration': 33.282, 'max_score': 6129.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6129494.jpg'}], 'start': 5712.679, 'title': 'Creating and deploying custom docker images', 'summary': 'Covers building a custom docker image, adding a tag, and pushing it to docker hub. it also includes deploying kubernetes with the custom image, creating a deployment, exposing it as a service, and verifying the connection to the web server.', 'chapters': [{'end': 5953.04, 'start': 5712.679, 'title': 'Building and pushing custom docker image', 'summary': 'Discusses building a custom docker image, adding a tag, and pushing the image to docker hub, including details on using docker build command, adding a tag to the image, and pushing the image to docker hub.', 'duration': 240.361, 'highlights': ['Building a custom Docker image using the Docker build command and adding a tag to the image with the username of the GitHub account, followed by pushing the image to the Docker Hub repository. Custom Docker image build process, adding a tag to the image, and pushing the image to Docker Hub.', 'Discussing the process of logging in to Docker Hub, including utilizing cached credentials for successful login and prompting first-time users to enter login and password. Logging in to Docker Hub, utilizing cached credentials, and providing login and password for first-time users.', 'Explaining the availability of the newly built image in the local images repository, featuring the image name, tag, ID, and size. Availability of the newly built image in the local repository, image details such as name, tag, ID, and size.']}, {'end': 6384.651, 'start': 5954.301, 'title': 'Deploying kubernetes with custom image', 'summary': 'Demonstrates pushing a custom image to docker hub, creating a kubernetes deployment based on the image, exposing the deployment as a service, and verifying the successful connection to the web server running on the deployment.', 'duration': 430.35, 'highlights': ['The custom image is pushed to Docker Hub, making it publicly available for Kubernetes deployments. The image is pushed to Docker Hub and is made publicly available for Kubernetes deployments.', 'A Kubernetes deployment is created based on the customly built image, and the status of the container creation is verified. A Kubernetes deployment is created based on the customly built image, and the status of the container creation is verified.', 'A service is created to expose the deployment, and the cluster IP is generated for connecting to the web server running on the deployment. A service is created to expose the deployment, and the cluster IP is generated for connecting to the web server running on the deployment.']}], 'duration': 671.972, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM5712679.jpg', 'highlights': ['Creating a Kubernetes deployment based on the customly built image and verifying container creation status', 'Creating a service to expose the deployment and generating cluster IP for connecting to the web server', 'Pushing the custom Docker image to Docker Hub and making it publicly available for Kubernetes deployments', 'Building a custom Docker image, adding a tag, and pushing it to the Docker Hub repository', 'Logging in to Docker Hub, utilizing cached credentials, and providing login and password for first-time users', 'Explaining the availability of the newly built image in the local repository, featuring image details such as name, tag, ID, and size']}, {'end': 8711.306, 'segs': [{'end': 6511.001, 'src': 'embed', 'start': 6476.013, 'weight': 4, 'content': [{'end': 6482.078, 'text': 'And here as before, we see cluster IP for K eight s web Hello service.', 'start': 6476.013, 'duration': 6.065}, {'end': 6489.529, 'text': 'And each of those ports is now available via this cluster IP.', 'start': 6483.385, 'duration': 6.144}, {'end': 6496.052, 'text': 'And Kubernetes will decide which port to choose for each particular request.', 'start': 6490.109, 'duration': 5.943}, {'end': 6506.978, 'text': "Let's now go back to this step where we are inside of the Kubernetes node and try to make connections to this cluster IP and this port again.", 'start': 6497.213, 'duration': 9.765}, {'end': 6511.001, 'text': "Let's clear terminal here and see URL.", 'start': 6508.619, 'duration': 2.382}], 'summary': 'Kubernetes routes requests to ports via cluster ip.', 'duration': 34.988, 'max_score': 6476.013, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6476013.jpg'}, {'end': 6660.713, 'src': 'embed', 'start': 6631.072, 'weight': 9, 'content': [{'end': 6640.118, 'text': 'Same port as we utilized before it is that port where our containers actually run Express NodeJS application.', 'start': 6631.072, 'duration': 9.046}, {'end': 6646.402, 'text': "Let's go ahead and create such service of type node port deployment was exposed.", 'start': 6640.638, 'duration': 5.764}, {'end': 6649.024, 'text': "Let's list services k get SVC.", 'start': 6646.542, 'duration': 2.482}, {'end': 6656.41, 'text': "And now there was again service with name K eight s web Hello, it's type now is node port.", 'start': 6649.904, 'duration': 6.506}, {'end': 6660.713, 'text': 'Here was again cluster IP and port.', 'start': 6657.33, 'duration': 3.383}], 'summary': 'Nodejs application runs on the same port as before, exposed as a node port service.', 'duration': 29.641, 'max_score': 6631.072, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6631072.jpg'}, {'end': 6863.102, 'src': 'embed', 'start': 6831.903, 'weight': 1, 'content': [{'end': 6838.247, 'text': 'And the one more option, which I would like to show you in terms of creation of the service is a load balancer.', 'start': 6831.903, 'duration': 6.344}, {'end': 6841.209, 'text': "Let's create a load balancer service.", 'start': 6838.767, 'duration': 2.442}, {'end': 6849.334, 'text': "And for that first, let's delete existing service gate delete SVC service gate as web Hello.", 'start': 6841.429, 'duration': 7.905}, {'end': 6852.718, 'text': 'service was removed.', 'start': 6851.678, 'duration': 1.04}, {'end': 6854.299, 'text': 'Okay, get SVC.', 'start': 6852.738, 'duration': 1.561}, {'end': 6856.179, 'text': 'There was no more such service.', 'start': 6854.879, 'duration': 1.3}, {'end': 6859.7, 'text': "And let's create a service of type load balancer.", 'start': 6856.58, 'duration': 3.12}, {'end': 6863.102, 'text': 'Okay, expose deployment.', 'start': 6859.721, 'duration': 3.381}], 'summary': 'Creating a load balancer service, deleting existing service, and exposing deployment.', 'duration': 31.199, 'max_score': 6831.903, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6831903.jpg'}, {'end': 7008.586, 'src': 'embed', 'start': 6978.59, 'weight': 2, 'content': [{'end': 6980.491, 'text': 'And here are the details of this deployment.', 'start': 6978.59, 'duration': 1.901}, {'end': 6985.353, 'text': 'By the way, at the end here, I see logs related to scaling of replica set.', 'start': 6980.931, 'duration': 4.422}, {'end': 6991.315, 'text': 'Initially, quantity of the replicas was one and later we scaled it to four.', 'start': 6985.853, 'duration': 5.462}, {'end': 6995.577, 'text': 'If you want, you could try to scale it to any other number if you want to do so.', 'start': 6991.835, 'duration': 3.742}, {'end': 7000.84, 'text': 'Above. I see that this deployment has name k8swebhello.', 'start': 6996.497, 'duration': 4.343}, {'end': 7008.586, 'text': 'namespace is default labels annotations selector replicas desired for updated for available for.', 'start': 7000.84, 'duration': 7.746}], 'summary': 'Deployment scaled from 1 to 4 replicas in k8swebhello.', 'duration': 29.996, 'max_score': 6978.59, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6978590.jpg'}, {'end': 7057.555, 'src': 'embed', 'start': 7027.733, 'weight': 0, 'content': [{'end': 7034.496, 'text': 'of course you want to roll out this new version in production smoothly without any interruption of service.', 'start': 7027.733, 'duration': 6.763}, {'end': 7037.437, 'text': 'And Kubernetes allows that out of the box.', 'start': 7035.176, 'duration': 2.261}, {'end': 7039.198, 'text': 'And this is very easy.', 'start': 7037.837, 'duration': 1.361}, {'end': 7052.943, 'text': 'And this strategy type rolling update means that new pods will be created with new image while previous pods will be still running.', 'start': 7040.398, 'duration': 12.545}, {'end': 7057.555, 'text': 'supports will be replaced one by one.', 'start': 7054.554, 'duration': 3.001}], 'summary': 'Kubernetes enables smooth, interruption-free production updates with rolling update strategy.', 'duration': 29.822, 'max_score': 7027.733, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM7027733.jpg'}, {'end': 7151.593, 'src': 'embed', 'start': 7122.036, 'weight': 5, 'content': [{'end': 7124.059, 'text': "Now, let's modify this string.", 'start': 7122.036, 'duration': 2.023}, {'end': 7128.005, 'text': "For instance, let's add here prefix version two like that.", 'start': 7124.319, 'duration': 3.686}, {'end': 7137.826, 'text': "And let's now build new image with a new tag, push it to Docker Hub, and afterwards modify image in our deployment.", 'start': 7129.562, 'duration': 8.264}, {'end': 7141.808, 'text': "Let's save changes in this file, open up embedded terminal.", 'start': 7138.486, 'duration': 3.322}, {'end': 7146.31, 'text': "And let's build image and assign another tech to it.", 'start': 7142.328, 'duration': 3.982}, {'end': 7149.692, 'text': 'Now image has only single tech it is latest.', 'start': 7147.091, 'duration': 2.601}, {'end': 7151.593, 'text': "So let's build new image.", 'start': 7150.172, 'duration': 1.421}], 'summary': 'Modify string, build new image, push to docker hub, and update deployment.', 'duration': 29.557, 'max_score': 7122.036, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM7122036.jpg'}, {'end': 7624.058, 'src': 'embed', 'start': 7597.102, 'weight': 3, 'content': [{'end': 7600.945, 'text': 'And now let me demonstrate to you how to launch Kubernetes dashboard.', 'start': 7597.102, 'duration': 3.843}, {'end': 7605.228, 'text': 'If you are using community cube, it is very easy, just single command.', 'start': 7601.705, 'duration': 3.523}, {'end': 7612.814, 'text': "But if you're running Kubernetes on your own premises or somewhere in the cloud, it could be a bit more difficult,", 'start': 7605.888, 'duration': 6.926}, {'end': 7617.037, 'text': 'because you need to secure web access to dashboard.', 'start': 7612.814, 'duration': 4.223}, {'end': 7624.058, 'text': "But here again, it's just single command mini cube, dashboard like that.", 'start': 7617.538, 'duration': 6.52}], 'summary': 'Launching kubernetes dashboard is easy with a single command, especially with mini cube.', 'duration': 26.956, 'max_score': 7597.102, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM7597102.jpg'}, {'end': 7902.853, 'src': 'embed', 'start': 7874.955, 'weight': 6, 'content': [{'end': 7888.185, 'text': 'you have to create YAML configuration files which describe all the details for deployments and services and afterwards apply those configuration files using kubectl apply command.', 'start': 7874.955, 'duration': 13.23}, {'end': 7895.689, 'text': "And that's actually declarative approach of creation of different resources and objects in Kubernetes.", 'start': 7889.105, 'duration': 6.584}, {'end': 7898.11, 'text': "And that's what we will do right now.", 'start': 7896.209, 'duration': 1.901}, {'end': 7902.853, 'text': "Let's now delete both deployment and service which we created before.", 'start': 7898.671, 'duration': 4.182}], 'summary': 'Creating yaml config for k8s deployments and services. using declarative approach.', 'duration': 27.898, 'max_score': 7874.955, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM7874955.jpg'}, {'end': 8044.274, 'src': 'embed', 'start': 8013.849, 'weight': 7, 'content': [{'end': 8017.59, 'text': "Let's first fill in deployment dot yaml file.", 'start': 8013.849, 'duration': 3.741}, {'end': 8028.693, 'text': 'If you installed Kubernetes extension here in VS code, what I asked you to do before you could create such configuration files very fast.', 'start': 8018.591, 'duration': 10.102}, {'end': 8029.913, 'text': 'Let me show you.', 'start': 8029.333, 'duration': 0.58}, {'end': 8036.58, 'text': 'So type here simply deployment you will see suggestion Kubernetes deployment.', 'start': 8030.433, 'duration': 6.147}, {'end': 8038.424, 'text': "Let's select it.", 'start': 8037.602, 'duration': 0.822}, {'end': 8044.274, 'text': 'And you will see that Yamo configuration file will be created automatically for you.', 'start': 8039.165, 'duration': 5.109}], 'summary': 'Creating deployment.yaml file using vs code kubernetes extension for faster configuration file creation.', 'duration': 30.425, 'max_score': 8013.849, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM8013849.jpg'}, {'end': 8447.943, 'src': 'embed', 'start': 8425.041, 'weight': 8, 'content': [{'end': 8434.469, 'text': 'And I just demonstrated to you how you could dig through documentation and find out how to fill different sections of the configuration file.', 'start': 8425.041, 'duration': 9.428}, {'end': 8439.76, 'text': 'Alright, we are done with creation of the configuration file for deployment.', 'start': 8435.458, 'duration': 4.302}, {'end': 8441.961, 'text': 'So kind here is deployment.', 'start': 8440.32, 'duration': 1.641}, {'end': 8447.943, 'text': "And let's now apply this configuration file using declarative approach.", 'start': 8442.801, 'duration': 5.142}], 'summary': 'Demonstrated configuring a deployment file and applying it declaratively.', 'duration': 22.902, 'max_score': 8425.041, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM8425041.jpg'}], 'start': 6384.931, 'title': 'Kubernetes deployment and management', 'summary': 'Covers creating, scaling, and accessing kubernetes deployments, service types and load balancing, rolling updates, launching the kubernetes dashboard, and creating yaml configuration files for deployment and service, with specific examples such as scaling a deployment to four replicas, connecting to deployments using node port, performing a rolling update, and exploring cluster details and namespaces.', 'chapters': [{'end': 6540.287, 'start': 6384.931, 'title': 'Kubernetes deployment and scaling', 'summary': 'Discusses creating, scaling, and accessing kubernetes deployments, with an example of scaling a deployment to four replicas and accessing each replica via the cluster ip.', 'duration': 155.356, 'highlights': ['Scaling the deployment to four replicas The deployment was successfully scaled to four replicas, with all four pods running.', 'Accessing different ports via cluster IP Accessing the cluster IP allows for load balancing across different ports, as each port serves different requests.', 'Removing double quotes from the command Double quotes can be omitted from single-word commands, simplifying the process.']}, {'end': 7000.84, 'start': 6541.161, 'title': 'Kubernetes service types and load balancing', 'summary': 'Demonstrates how to create and modify kubernetes services, including creating node port and load balancer services, connecting to deployments using node port, and scaling the deployment to four replicas.', 'duration': 459.679, 'highlights': ["Creating a node port service to connect to deployment The chapter explains how to modify a service to the type node port, setting the port to 3000, enabling connection to the deployment from outside the cluster, and demonstrating the connection using the node's IP address and the specified port.", "Creating a load balancer service for cloud deployment The process of creating a load balancer service is detailed, including setting the port to 3000, and the difference in behavior when using mini cube versus cloud providers, and demonstrating the connection to the deployment using the node's IP address and the assigned random port.", 'Scaling the deployment to four replicas The chapter demonstrates scaling the deployment to four replicas, with the option to scale to any desired number, and provides details about the deployment, including the name, available ports, and logs related to scaling of the replica set.']}, {'end': 7596.641, 'start': 7000.84, 'title': 'Kubernetes rolling update', 'summary': 'Explains the process of performing a rolling update in kubernetes, where new pods with updated images are gradually replaced with the previous pods, resulting in a seamless deployment, as shown through modifying, building, and deploying a new image and verifying the rolling update process.', 'duration': 595.801, 'highlights': ['Kubernetes rolling update process The chapter demonstrates the Kubernetes rolling update process, where new pods with updated images are gradually replaced with the previous pods, resulting in a seamless deployment.', 'Modifying, building, and deploying a new image The process involves modifying the application, building a new image with a new tag, pushing it to Docker Hub, and modifying the image in the deployment, showcasing the steps involved in updating the application.', 'Verifying the rolling update process After the rolling update, the chapter showcases the verification process by accessing the deployment through a service, confirming the successful deployment of the new application version to all pods.']}, {'end': 7962.983, 'start': 7597.102, 'title': 'Launching kubernetes dashboard', 'summary': 'Demonstrates the process of launching the kubernetes dashboard using minikube, exploring cluster details, namespaces, and declarative approach to creation and deletion of deployments and services in kubernetes.', 'duration': 365.881, 'highlights': ['Launching Kubernetes Dashboard using MiniKube The process of launching the Kubernetes dashboard using MiniKube is demonstrated, highlighting the ease of the process with a single command.', 'Exploring Kubernetes Cluster Details Details about the Kubernetes cluster, including deployments, replica sets, ports, services, and namespaces, are observed, showcasing the ability to view specific metadata and configurations.', 'Declarative Approach in Kubernetes The chapter discusses the declarative approach in creating deployments and services in Kubernetes using YAML configuration files and the kubectl apply command.', 'Deletion of Deployments and Services The process of deleting both deployments and services using kubectl commands is outlined, emphasizing the deletion of resources and verification of their termination.']}, {'end': 8711.306, 'start': 7963.824, 'title': 'Creating yaml configuration files for deployment and service', 'summary': 'Covers creating separate yaml configuration files for deployment and service, utilizing visual studio code for fast file creation, specifying details for deployment including port, memory, and cpu limits, exploring kubernetes documentation for creating and modifying configuration files, applying the deployment configuration file using a declarative approach, scaling the deployment by modifying the replicas, and creating a service configuration file with specified metadata and selector.', 'duration': 747.482, 'highlights': ['Utilizing Visual Studio Code for fast file creation The chapter demonstrates using Visual Studio Code to quickly create YAML configuration files for deployment and service, providing a user-friendly and efficient approach to file creation.', 'Specifying details for deployment including port, memory, and CPU limits The details for deployment configuration are specified, including the port, memory, and CPU limits, with specific values provided such as 500m for CPU limits and container port 3000.', 'Applying the deployment configuration file using a declarative approach The process of applying the deployment configuration file using a declarative approach is demonstrated, simplifying the creation of the deployment without the need for entering complex commands.', "Scaling the deployment by modifying the replicas The process of modifying the replicas in the deployment configuration file to scale the deployment, demonstrated by adding the 'replicas' key with a value of 5 and applying the file to create five replicas.", 'Creating a service configuration file with specified metadata and selector The creation of a service configuration file is shown, including the specification of metadata and selector, providing the necessary details for creating a service for the deployment.']}], 'duration': 2326.375, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM6384931.jpg', 'highlights': ['Kubernetes rolling update process', 'Creating a load balancer service for cloud deployment', 'Scaling the deployment to four replicas', 'Launching Kubernetes Dashboard using MiniKube', 'Accessing different ports via cluster IP', 'Modifying, building, and deploying a new image', 'Declarative Approach in Kubernetes', 'Utilizing Visual Studio Code for fast file creation', 'Applying the deployment configuration file using a declarative approach', 'Creating a node port service to connect to deployment']}, {'end': 10668.728, 'segs': [{'end': 8804.25, 'src': 'embed', 'start': 8771.03, 'weight': 4, 'content': [{'end': 8777.692, 'text': "Let's find documentation for service here, Kubernetes API, service resources.", 'start': 8771.03, 'duration': 6.662}, {'end': 8786.499, 'text': "service And here let's click on service specification here with selector ports.", 'start': 8779.435, 'duration': 7.064}, {'end': 8798.586, 'text': 'And also below you could find type of the service type either cluster IP which is default or external name or node port or load balancer.', 'start': 8786.9, 'duration': 11.686}, {'end': 8801.128, 'text': "Let's set type to load balancer.", 'start': 8798.947, 'duration': 2.181}, {'end': 8804.25, 'text': "Let's go back to our configuration file.", 'start': 8801.988, 'duration': 2.262}], 'summary': 'Configuring kubernetes service with load balancer type.', 'duration': 33.22, 'max_score': 8771.03, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM8771030.jpg'}, {'end': 9072.667, 'src': 'embed', 'start': 9043.706, 'weight': 3, 'content': [{'end': 9054.034, 'text': 'So from one deployment, we will connect to another deployment and get response from one of the ports, which will be running nginx application.', 'start': 9043.706, 'duration': 10.328}, {'end': 9063.462, 'text': 'And afterwards, we will return back result to the client with the contents which we received from the nginx port.', 'start': 9056.236, 'duration': 7.226}, {'end': 9065.243, 'text': "So that's the plan.", 'start': 9064.543, 'duration': 0.7}, {'end': 9072.667, 'text': 'And in such a way, we will actually connect to different deployments, web deployment and nginx deployment.', 'start': 9066.303, 'duration': 6.364}], 'summary': 'Connect to multiple deployments, retrieve response from nginx port, and return contents to client.', 'duration': 28.961, 'max_score': 9043.706, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM9043706.jpg'}, {'end': 9427.295, 'src': 'embed', 'start': 9364.154, 'weight': 0, 'content': [{'end': 9370.996, 'text': "Image is being built notice npm install command image was built and now let's push it to Docker Hub.", 'start': 9364.154, 'duration': 6.842}, {'end': 9372.476, 'text': 'Let me grab this name.', 'start': 9371.216, 'duration': 1.26}, {'end': 9375.112, 'text': 'Docker push.', 'start': 9373.971, 'duration': 1.141}, {'end': 9379.735, 'text': 'And here will be the name of the image which I want to push to Docker Hub.', 'start': 9376.113, 'duration': 3.622}, {'end': 9386.379, 'text': 'Pushing some of the layers will be reused from other image.', 'start': 9380.896, 'duration': 5.483}, {'end': 9393.104, 'text': 'And finally image was pushed and now we are able to utilize it in Kubernetes deployment.', 'start': 9387.36, 'duration': 5.744}, {'end': 9395.472, 'text': "Great, let's hide the terminal.", 'start': 9393.752, 'duration': 1.72}, {'end': 9397.053, 'text': "And now let's do following.", 'start': 9395.873, 'duration': 1.18}, {'end': 9405.855, 'text': 'Now I would like to demonstrate to you how you could combine deployment YAML and service YAML configuration files just in one file.', 'start': 9397.833, 'duration': 8.022}, {'end': 9409.256, 'text': "Let's close those files.", 'start': 9407.015, 'duration': 2.241}, {'end': 9417.278, 'text': "And let's create a new file and let's name it the K eight s web to nginx.", 'start': 9409.416, 'duration': 7.862}, {'end': 9419.809, 'text': 'dot yamo like that.', 'start': 9418.248, 'duration': 1.561}, {'end': 9427.295, 'text': 'Now in this configuration file, we will combine instructions for creation of the deployment and service.', 'start': 9420.73, 'duration': 6.565}], 'summary': 'Built and pushed image to docker hub, demonstrated combining deployment and service yaml files into one.', 'duration': 63.141, 'max_score': 9364.154, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM9364154.jpg'}, {'end': 9562.917, 'src': 'embed', 'start': 9534.117, 'weight': 5, 'content': [{'end': 9540.822, 'text': "All right, that's it for specification for deployment and service for new application.", 'start': 9534.117, 'duration': 6.705}, {'end': 9551.529, 'text': "And now let's create them specification for NJ mix deployment and service because we will deploy now two different applications.", 'start': 9541.902, 'duration': 9.627}, {'end': 9559.635, 'text': 'One which will be based on our custom image and second which is based on official Docker image called NGNX.', 'start': 9552.39, 'duration': 7.245}, {'end': 9562.917, 'text': "Let's simply copy this file and paste here.", 'start': 9560.436, 'duration': 2.481}], 'summary': 'Creating deployment and service specifications for two applications, one custom and one based on nginx image.', 'duration': 28.8, 'max_score': 9534.117, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM9534117.jpg'}, {'end': 10054.917, 'src': 'embed', 'start': 10024.859, 'weight': 7, 'content': [{'end': 10033.124, 'text': 'And such a resolution of the service name to IP address is performed by internal service of the Kubernetes, which is called DNS.', 'start': 10024.859, 'duration': 8.265}, {'end': 10035.926, 'text': 'And we could actually verify that quickly.', 'start': 10033.965, 'duration': 1.961}, {'end': 10043.431, 'text': "Let's go to the terminal, for example, here, and recap that we could still get here list of the ports k get ports.", 'start': 10036.226, 'duration': 7.205}, {'end': 10054.917, 'text': 'And now we could take any of the pods and execute any commands inside of the running container inside of the pod using kubectl exec command.', 'start': 10044.592, 'duration': 10.325}], 'summary': 'Kubernetes performs ip resolution using internal dns. pods can execute commands using kubectl exec.', 'duration': 30.058, 'max_score': 10024.859, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM10024859.jpg'}, {'end': 10293.401, 'src': 'embed', 'start': 10265.671, 'weight': 2, 'content': [{'end': 10273.695, 'text': 'And I would like to demonstrate to you how to change container runtime, which is currently Docker in our Kubernetes cluster,', 'start': 10265.671, 'duration': 8.024}, {'end': 10279.298, 'text': 'to other container runtime, for instance CRIO or container D.', 'start': 10273.695, 'duration': 5.603}, {'end': 10287.342, 'text': 'And in order to modify container runtime, we need to delete current mini cube setup and create new one.', 'start': 10279.298, 'duration': 8.044}, {'end': 10290.5, 'text': "that, let's go to the terminal here.", 'start': 10288.559, 'duration': 1.941}, {'end': 10293.401, 'text': "And let's enter mini cube status command.", 'start': 10291.02, 'duration': 2.381}], 'summary': 'Demonstrating changing container runtime from docker to crio or container d in kubernetes cluster.', 'duration': 27.73, 'max_score': 10265.671, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM10265671.jpg'}, {'end': 10558.03, 'src': 'embed', 'start': 10521.145, 'weight': 8, 'content': [{'end': 10521.866, 'text': 'Not ready yet.', 'start': 10521.145, 'duration': 0.721}, {'end': 10523.207, 'text': 'But there are two deployments.', 'start': 10522.066, 'duration': 1.141}, {'end': 10527.17, 'text': 'Once again, again, not ready.', 'start': 10524.428, 'duration': 2.742}, {'end': 10530.173, 'text': "Let's get information about services.", 'start': 10527.591, 'duration': 2.582}, {'end': 10533.535, 'text': 'There are two services same as before.', 'start': 10531.013, 'duration': 2.522}, {'end': 10535.517, 'text': 'Okay, get pods.', 'start': 10533.556, 'duration': 1.961}, {'end': 10542.263, 'text': 'Some of the pods are instead of container creating one is pending.', 'start': 10537.619, 'duration': 4.644}, {'end': 10544.413, 'text': "Let's check again.", 'start': 10543.692, 'duration': 0.721}, {'end': 10546.854, 'text': 'Some are already running.', 'start': 10545.413, 'duration': 1.441}, {'end': 10550.697, 'text': 'Okay, get deploy.', 'start': 10546.874, 'duration': 3.823}, {'end': 10554.019, 'text': 'First deployment is ready.', 'start': 10552.378, 'duration': 1.641}, {'end': 10556.141, 'text': 'Nginx is not yet ready.', 'start': 10554.5, 'duration': 1.641}, {'end': 10558.03, 'text': "Let's check again.", 'start': 10557.27, 'duration': 0.76}], 'summary': 'Two deployments, some pods pending, nginx not ready', 'duration': 36.885, 'max_score': 10521.145, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM10521145.jpg'}, {'end': 10668.448, 'src': 'heatmap', 'start': 10568.375, 'weight': 1, 'content': [{'end': 10576.258, 'text': "Let's enter a mini cube service and name of the service in order to test whether everything works as before.", 'start': 10568.375, 'duration': 7.883}, {'end': 10580.12, 'text': 'So here was response from one of the pods.', 'start': 10577.418, 'duration': 2.702}, {'end': 10583.001, 'text': "And let's add here slash nginx.", 'start': 10580.98, 'duration': 2.021}, {'end': 10586.279, 'text': 'And same as before it works.', 'start': 10584.375, 'duration': 1.904}, {'end': 10590.367, 'text': 'Now we were able to proxy response from the NGINX deployment.', 'start': 10586.94, 'duration': 3.427}, {'end': 10594.805, 'text': 'Wonderful We just modified the container runtime.', 'start': 10591.363, 'duration': 3.442}, {'end': 10597.287, 'text': 'And now it is set to CRI.', 'start': 10595.225, 'duration': 2.062}, {'end': 10603.17, 'text': "Oh, let's go back to this SSH connection where we connected to node.", 'start': 10597.427, 'duration': 5.743}, {'end': 10607.593, 'text': "And here, let's enter again, pseudo CRI CTL PS.", 'start': 10603.81, 'duration': 3.783}, {'end': 10614.777, 'text': "And let's for example, grab by the name K eight s web to nginx.", 'start': 10607.913, 'duration': 6.864}, {'end': 10621.646, 'text': 'And I see now three different containers which belong to this deployment.', 'start': 10616.175, 'duration': 5.471}, {'end': 10625.513, 'text': 'And now they are running using CRIO.', 'start': 10622.728, 'duration': 2.785}, {'end': 10630.334, 'text': "Alright, let's now disconnect from this server.", 'start': 10627.233, 'duration': 3.101}, {'end': 10632.975, 'text': "Alright, guys, that's it for this.", 'start': 10631.154, 'duration': 1.821}, {'end': 10634.795, 'text': 'Kubernetes for beginners, course.', 'start': 10632.975, 'duration': 1.82}, {'end': 10638.176, 'text': 'you could of course keep your mini cube cluster running.', 'start': 10634.795, 'duration': 3.381}, {'end': 10641.877, 'text': 'you could create other deployments, you could build other Docker images.', 'start': 10638.176, 'duration': 3.701}, {'end': 10650.68, 'text': 'In other words, play with Kubernetes as you want and get familiar with all Kubernetes tools which we discussed in this course.', 'start': 10642.237, 'duration': 8.443}, {'end': 10656.863, 'text': 'i hope you enjoyed this course and i hope you enjoyed spending time with me.', 'start': 10651.4, 'duration': 5.463}, {'end': 10666.667, 'text': 'if so, you could find me in the social media networks all links you find here on the screen and i will be more than happy to meet you in other videos,', 'start': 10656.863, 'duration': 9.804}, {'end': 10668.448, 'text': 'and i wish you all the best.', 'start': 10666.667, 'duration': 1.781}], 'summary': 'Tested nginx deployment using crio, kubernetes for beginners course completed.', 'duration': 100.073, 'max_score': 10568.375, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM10568375.jpg'}], 'start': 8711.787, 'title': 'Kubernetes configuration and deployment', 'summary': 'Covers modifying service configurations, deploying applications, combining deployment and service yaml, connecting services, and changing container runtime in kubernetes, with specific processes and functionalities discussed.', 'chapters': [{'end': 9072.667, 'start': 8711.787, 'title': 'Kubernetes service configuration', 'summary': 'Covers modifying the port section, setting the type of service to load balancer, and connecting two deployments in a kubernetes cluster.', 'duration': 360.88, 'highlights': ['Setting the type of service to load balancer The chapter demonstrates setting the type of service to load balancer in the Kubernetes configuration, enabling external access and load balancing.', 'Modifying the port section The transcript discusses the modification of the port section, including exposing port 3000 and setting the target port to port 3030.', 'Connecting two deployments in a Kubernetes cluster The plan to connect two deployments, a web deployment and an nginx deployment, is outlined, demonstrating the connection between different applications within the Kubernetes cluster.']}, {'end': 9395.472, 'start': 9073.868, 'title': 'Creating and deploying a kubernetes application', 'summary': 'Demonstrates the process of creating a new kubernetes application, including copying folders, modifying files, installing dependencies, building a docker image, and pushing it to docker hub for utilization in kubernetes deployment.', 'duration': 321.604, 'highlights': ['The process involves creating a copy of a folder containing all files related to a web express application and renaming it for a new Kubernetes application.', 'Modifying the index dot MGS file to include an additional endpoint nginx and a route handler, as well as installing the node fetch package as an external dependency.', 'Building a new Docker image for the application and pushing it to Docker Hub for utilization in Kubernetes deployment.']}, {'end': 9726.538, 'start': 9395.873, 'title': 'Combining deployment and service yaml in kubernetes', 'summary': 'Demonstrates combining deployment and service yaml files into one, modifying deployment and service specifications, and creating specifications for nginx deployment and service, resulting in creating two yaml configuration files and utilizing custom-built and official nginx images.', 'duration': 330.665, 'highlights': ['Combining deployment and service YAML files into one The demonstration shows how to combine deployment and service YAML configuration files into a single file, simplifying the configuration process.', 'Modifying deployment and service specifications The tutorial explains the process of modifying deployment and service specifications, including changing image names, adjusting port configurations, and modifying the quantity of replicas.', 'Creating specifications for NGINX deployment and service The chapter covers creating specifications for NGINX deployment and service, including modifying names, adjusting service types, ports, and image specifications, as well as setting the quantity of replicas.', 'Utilizing custom-built and official NGINX images The content emphasizes the utilization of custom-built and official NGINX images in the YAML configuration files, showcasing the flexibility of image selection in Kubernetes deployments.']}, {'end': 10265.331, 'start': 9727.119, 'title': 'Deploying and connecting kubernetes services', 'summary': 'Demonstrates deploying and connecting kubernetes services, creating deployments and services using yaml configuration files, verifying deployments and services, connecting from one deployment to another, and resolving service names to ip addresses using dns.', 'duration': 538.212, 'highlights': ['Creating deployments and services using YAML configuration files Demonstrates creating deployments and services using YAML configuration files, reducing deployment time and ensuring consistency.', 'Verifying deployments and services Shows the verification process of deployments and services, ensuring the successful creation of deployments and services.', 'Connecting from one deployment to another Illustrates the process of connecting from one deployment to another, showcasing the interconnection capabilities of Kubernetes services.', 'Resolving service names to IP addresses using DNS Explains the resolution of service names to IP addresses using DNS, showcasing the internal service of Kubernetes and its functionality.']}, {'end': 10668.728, 'start': 10265.671, 'title': 'Changing container runtime in kubernetes', 'summary': 'Demonstrates how to change the container runtime in a kubernetes cluster from docker to crio or containerd, including the process of deleting the current setup, creating a new cluster with the specified container runtime, and testing the functionality with sample deployments and services.', 'duration': 403.057, 'highlights': ['The chapter demonstrates how to change the container runtime in a Kubernetes cluster from Docker to CRIO or ContainerD, including the process of deleting the current setup, creating a new cluster with the specified container runtime, and testing the functionality with sample deployments and services. Process of changing container runtime from Docker to CRIO or ContainerD, steps including deleting the current setup, creating a new cluster, and testing the functionality with sample deployments and services.', "Utilizing 'mini cube delete' to remove all traces of the existing cluster and then creating a new cluster with the specified container runtime using 'mini cube start' command. Using 'mini cube delete' to remove existing cluster, creating a new cluster with specified container runtime using 'mini cube start' command.", 'Testing the container runtime functionality by deploying web application and nginx application, creating services, and checking the status of pods and deployments. Testing container runtime functionality by deploying applications, creating services, and checking pod and deployment status.', "Verifying the container runtime change by SSHing into the mini cube node and checking the running containers using 'sudo crictl ps' command. Verifying container runtime change by SSHing into the node and checking running containers with 'sudo crictl ps' command."]}], 'duration': 1956.941, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/d6WC5n9G_sM/pics/d6WC5n9G_sM8711787.jpg', 'highlights': ['Creating deployments and services using YAML configuration files', 'Combining deployment and service YAML files into one', 'Changing container runtime from Docker to CRIO or ContainerD', 'Connecting from one deployment to another', 'Setting the type of service to load balancer', 'Modifying deployment and service specifications', 'Utilizing custom-built and official NGINX images', 'Resolving service names to IP addresses using DNS', 'Verifying deployments and services', 'Building a new Docker image for the application and pushing it to Docker Hub']}], 'highlights': ['Kubernetes is the de facto standard for deployment of containerized applications into production, and it is open source and free for use.', 'Kubernetes allows for automated deployment of containerized applications across different servers, including virtual servers, with a focus on load distribution, auto scaling, and monitoring.', 'The course covers terminology, key features, cluster setup, deployment, container runtime, and prerequisites, with a focus on practical application and building a small Kubernetes cluster locally.', 'The master node in a Kubernetes cluster manages the worker nodes, distributing load across them, while the worker nodes run the actual applications related to the deployed pods.', 'A Kubernetes cluster consists of nodes, which are servers located in different data centers, and pods, the smallest unit in Kubernetes, with each pod containing usually a single container.', 'The chapter provides clear instructions for installing Minikube and kubectl on macOS and Windows, emphasizing the use of Homebrew for macOS and Chocolatey for Windows.', "The chapter covers setting up MiniKube cluster with VirtualBox, specifying driver option as 'VirtualBox', creating virtual machine with specified CPU, memory, and disk", 'Guidance on creating permanent aliases for commands in Kubernetes, ensuring their existence beyond the session.', 'Creating services in Kubernetes allows for the management of IP addresses and facilitates convenient access to deployments, such as utilizing cluster IP or load balancer IP addresses.', 'Creating a Kubernetes deployment based on the customly built image and verifying container creation status']}