Kubernetes Advanced (NZ)

Visit course recordings page on DaDesktop For Training

on 2023-09-28

language: EN

                  WEBVTT

00:00.000 --> 00:07.000
Good morning, William.

00:07.000 --> 00:12.000
Good morning.

00:12.000 --> 00:19.000
How are you doing?

00:19.000 --> 00:23.000
We're just not the greatest here, but.

00:23.000 --> 00:28.000
Okay.

00:28.000 --> 00:36.000
I'm just making a sense of apologies. He's not doing well this morning, so he won't be able to make it.

00:36.000 --> 00:39.000
Oh, okay. I got it.

00:39.000 --> 00:43.000
I'll just ask the others where they're at.

00:43.000 --> 00:48.000
Okay, yeah. Let's wait a little few minutes here.

00:48.000 --> 00:51.000
Hi, Sam. How are you doing? Good morning.

00:51.000 --> 00:54.000
Morning, guys.

00:57.000 --> 01:00.000
Just us as that?

01:00.000 --> 01:06.000
I will just message the others.

01:17.000 --> 01:20.000
Morning.

01:33.000 --> 01:38.000
So I think that is just us for today, at least.

01:38.000 --> 01:45.000
Yeah. So, okay, good. So I guess that we can start over.

01:45.000 --> 01:51.000
Let me introduce myself really quick.

01:51.000 --> 01:54.000
My name is Andres Musica.

01:54.000 --> 02:02.000
I'm going to be your instructor for this keyword needs advanced training session.

02:02.000 --> 02:11.000
Please, if you want to go ahead and access your desktop.

02:11.000 --> 02:21.000
And also, we are going to have a little just to the.

02:21.000 --> 02:30.000
The level of your knowledge, because I understand that you have already already some experience with your net.

02:30.000 --> 02:35.000
So I just send you the this link that from their foot.

02:35.000 --> 02:44.000
So if you want to go there, please.

02:44.000 --> 02:48.000
Okay, cool.

02:48.000 --> 02:52.000
Cool. So we have.

02:52.000 --> 02:55.000
Let me see. Okay.

02:55.000 --> 03:00.000
William Dallas and some. Okay, let's let's do these guys.

03:00.000 --> 03:03.000
So it's just five questions.

03:03.000 --> 03:06.000
Let's start by doing that.

03:06.000 --> 03:09.000
So, okay.

03:09.000 --> 03:13.000
Okay, I guess that you are watching there. What is Kibernet?

03:13.000 --> 03:22.000
So a container runtime container container orchestration platform programming language and operating system.

03:22.000 --> 03:24.000
There is a time lead.

03:24.000 --> 03:28.000
Okay, perfect. You guys.

03:28.000 --> 03:34.000
Let's move on to the next question.

03:34.000 --> 03:46.000
Okay, which Kibernet subject is responsible for automatically adjust the number of running parts based on observed CPU utilization?

03:46.000 --> 03:52.000
18 seconds. Good. Someone already answered. Good.

03:52.000 --> 03:55.000
Okay, you guys are killing it.

03:55.000 --> 04:00.000
Okay, great. Horizontal pod autoscale. That is correct.

04:00.000 --> 04:04.000
And let's go to the next one.

04:04.000 --> 04:15.000
So what is the role of a Kibernet service to run containers, store data, provide networking, schedule pods?

04:15.000 --> 04:24.000
Let's see. Okay, good. Good. I knew I had to choose harder questions.

04:24.000 --> 04:27.000
Good. Okay, let's go to the next one.

04:27.000 --> 04:31.000
And what is the purpose of config map?

04:31.000 --> 04:43.000
Store sensitive information, provide configuration data, define resource requests, manage persistent storage.

04:43.000 --> 04:46.000
Okay, it's really good.

04:48.000 --> 04:55.000
Okay, provide configuration. The sensitive information is in a secret.

04:55.000 --> 05:08.000
And the last one, which Kibernet component is responsible for making sure that the desired state of a cluster matches the actual state to proxy Kiblet,

05:08.000 --> 05:15.000
API server, controller manager. This one is tricky. Okay, good.

05:15.000 --> 05:26.000
The controller manager. This is one of the things that I like the most about Kibernet because Kibernet is kind of a state machine.

05:26.000 --> 05:32.000
I mean, it looks for keep the state, the desired state of the resources.

05:32.000 --> 05:43.000
So, okay, very good, William. First place, Sam and Dallas. Very good, guys. Really good job.

05:43.000 --> 05:54.000
Okay, so that is correct. Let me go here. Okay, so let's begin then.

05:54.000 --> 06:02.000
As I told you, my name is Andres Mujica. It's a longer name, but with Andres is enough.

06:02.000 --> 06:08.000
I have like, well, I have worked with this stuff for a long time.

06:08.000 --> 06:21.000
And the idea here is just to learn a little bit about all of the Kibernet universe, which is pretty huge, to be honest.

06:21.000 --> 06:28.000
So we are working and hopefully we will learn a lot with you guys today.

06:28.000 --> 06:36.000
So for the training, we will be started at 9 a.m. and ended at 5 p.m.

06:36.000 --> 06:42.000
We will have two breaks, one in the morning, another one in the afternoon, and the lunch break.

06:42.000 --> 06:48.000
It can be at 16 minutes, but if you want, we can make it shorter.

06:48.000 --> 07:01.000
And I was wondering if it's, I mean, I have that program for 1245. Is that right for you guys?

07:01.000 --> 07:06.000
Or do you prefer to have it later or earlier?

07:06.000 --> 07:11.000
Okay, cool.

07:11.000 --> 07:21.000
Okay, please remember after the training, you will have an evaluation form, which is really important for us because that will help us to improve these trainings.

07:21.000 --> 07:26.000
And of course, you will have the certificate of attendance as well.

07:26.000 --> 07:33.000
And okay, that's it. This is Kibernet's advance. You will have, well, actually, you already have access to the materials.

07:33.000 --> 07:42.000
I'm going to show you that in a while so you can follow all the stuff that we're doing here.

07:42.000 --> 07:48.000
So, well, I guess you are familiar with this, the outline that we have prepared for this training.

07:48.000 --> 07:58.000
First, during the first day, we will be working with the infrastructure part, the high availability, scalable applications, securing the applications.

07:58.000 --> 08:04.000
And for the day two, we are going to work with updating the application, maintenance and troubleshooting.

08:04.000 --> 08:13.000
This training aims to be mostly a hands-on labs. So there are a lot of material to work with.

08:13.000 --> 08:21.000
There are the highlighted labs are the ones that we are going to execute in this training.

08:21.000 --> 08:27.000
However, if you want to explore another one of the labs, we can do that for sure.

08:27.000 --> 08:35.000
Just bear or have in mind that we have a limited time. So and this is what we are facing for this today.

08:35.000 --> 08:50.000
So we're working with several labs regarding Kibernet's and API, deploying applications, then working replica sets, rolling updates, HPA, resource utilization.

08:50.000 --> 09:00.000
And databases, application lifecycle, logging, monitoring, current jobs and some more stuff.

09:00.000 --> 09:07.000
It's available as well. You have the there is this presentation and you will have as well.

09:23.000 --> 09:30.000
That we have to perform for the training. You can do that later by yourselves for without any issue at all.

09:30.000 --> 09:35.000
Hopefully some recommendations. Please participate.

09:35.000 --> 09:43.000
Don't hesitate in participating during the lectures. Ask questions. Please interrupt me if you need to.

09:43.000 --> 09:48.000
I'm not able to see if you raise your hand. It is not that easy with teams.

09:48.000 --> 09:56.000
So so go ahead and ask whatever or comment wherever you want to. No worries at all.

09:56.000 --> 10:05.000
Regarding the training, there is a repo, a Git repo available for you to clone.

10:05.000 --> 10:13.000
So you can have access to all the code and all the manifests and all the stuff that we will be working with.

10:13.000 --> 10:24.000
But also you will be able if you are not that familiar with it, we are you are able to clone the material directly from the data.

10:40.000 --> 10:47.000
OK, so let's let's do the first lab. However, I'm not sure if.

10:47.000 --> 10:52.000
If it's available already, so let me see.

10:52.000 --> 11:00.000
So OK, yeah, you have access, please. So please. OK, Nick is the one who's today.

11:00.000 --> 11:08.000
So please, guys, go to the training room to this link and the in the home.

11:08.000 --> 11:21.000
Page for the training, go to training room, because that way I will be able to to help you during the trainings during the last in an easier way.

11:40.000 --> 11:43.000
OK, perfect. So, OK, this is your desktop.

11:43.000 --> 11:59.000
You will find I mean, if you have any issue with your keyboard here in the end, you can right click and add a different with preference, add a different keyboard.

11:59.000 --> 12:06.000
So if you want to do that, please do. Or or you can use these.

12:08.000 --> 12:20.000
These application on board that gives you access to a virtual keyboard in case that you don't have you're not able to.

12:20.000 --> 12:26.000
Sometimes it fails the the quotes marks. So or some special characters.

12:26.000 --> 12:31.000
So you may need to to use that to have that available.

12:31.000 --> 12:38.000
Other thing that you need to be aware of is the ability to copy and paste.

12:40.000 --> 12:42.000
It should be straightforward.

12:42.000 --> 12:56.000
It should be straightforward. Usually this is strong and you can see here that there is one icon not clipboard icon that shows me that I'm able to copy from one side to the other side.

12:56.000 --> 13:06.000
If you have any issues, you can have a click on this green mark at your bottom left.

13:06.000 --> 13:10.000
That is the clipboard so you can use that to copy data as well.

13:12.000 --> 13:18.000
Just to have that in mind. And we are using an application called Terminator.

13:18.000 --> 13:27.000
This application or this terminal has a nice feature, which is the reason that I prefer to use this one.

13:27.000 --> 13:34.000
This one is now and these features that you can split the terminal horizontally or vertically.

13:34.000 --> 13:40.000
So we can split this.

13:40.000 --> 13:50.000
So this is really good because it helps us to I mean, we are going to deploy stuff and we will want to see the locks in real time to watch the logs real time.

13:50.000 --> 13:55.000
So we are going to be able to execute commands while watching the locks.

13:55.000 --> 14:02.000
So that is important to have. And finally, here you will find a materials folder.

14:02.000 --> 14:13.000
This folder has the presentation, which is this PDF file.

14:13.000 --> 14:22.000
I'm going to go ahead and open that here because perhaps sometimes we just look here for the slide that we need.

14:22.000 --> 14:34.000
And also you will find here the advanced labs document, which are the labs that we are going to execute.

14:34.000 --> 14:40.000
So go ahead and open those so you can have those available during the training.

14:49.000 --> 14:56.000
Yeah, so it's there. And also there is some additional material.

14:56.000 --> 15:02.000
Some of these we are going to use it during the some of the labs.

15:02.000 --> 15:05.000
There is a troubleshooting guide.

15:05.000 --> 15:16.000
There is the hardening guidance from the CSI and some others that they should cheat.

15:16.000 --> 15:20.000
And there is something which is quite cool.

15:20.000 --> 15:25.000
OK, no, that's everything. So we are going to see that later.

15:37.000 --> 15:42.000
So just finish to be sure that you have found everything.

15:42.000 --> 15:49.000
I think that I'm missing someone in the training room. Yeah.

15:49.000 --> 15:54.000
I guess Dallas, I am not seeing you at the training room.

15:54.000 --> 16:01.000
So yeah, let me show you here.

16:01.000 --> 16:11.000
Here in the home page for the training, there is this training room that if you want to click there.

16:11.000 --> 16:13.000
OK, you're there. Thank you.

16:19.000 --> 16:28.000
Just a minute. Feel free to explore the material for a few minutes.

16:28.000 --> 16:32.000
Is there any questions that you have right now?

16:32.000 --> 16:43.000
OK, yes. OK, let's continue.

16:43.000 --> 16:47.000
OK, so so that's it for for right now.

16:47.000 --> 16:53.000
We already did this. OK, let's talk a little bit about.

16:54.000 --> 16:58.000
First of all, as I told you, this is huge.

16:58.000 --> 17:13.000
And I guess that you already know that there is this this is life shows what is known as the container ecosystem.

17:13.000 --> 17:16.000
This is a mind map. Actually, it's pretty cool.

17:16.000 --> 17:26.000
I like it a lot because it shows you, I mean, everything that is related to the container ecosystems,

17:26.000 --> 17:31.000
which, as you may know, or you already answered that,

17:31.000 --> 17:36.000
Cuba Nets is orchestration system for containers.

17:36.000 --> 17:43.000
So. Here you can take a look into everything.

17:43.000 --> 17:49.000
Give me just a second. What happened here?

17:49.000 --> 17:58.000
Into everything that has anything to do with with containers, so you will find here, for example,

17:58.000 --> 18:01.000
everything related to cloud native storage.

18:01.000 --> 18:14.000
And you can see here, for example, the biggest projects, the size and color of these mind map shows how popular that project is and how common is used.

18:14.000 --> 18:19.000
And monitoring from the field, Grapana, LQF key.

18:19.000 --> 18:24.000
There is a server defined networks here.

18:24.000 --> 18:31.000
Service mesh and a lot of stuff. All the networking tooling is here.

18:31.000 --> 18:34.000
Everything regarding backup recovery.

18:34.000 --> 18:42.000
Is there the little custom, which are tools to have a cup from Cuba Nets?

18:44.000 --> 18:49.000
DevOps integrations, text on home charts packaging.

18:49.000 --> 18:57.000
There is this registry handling, offset solutions, security with this.

18:57.000 --> 19:05.000
Dockers swarm and Cuba Nets, which are the orchestrators and Cuba Nets.

19:05.000 --> 19:10.000
With all the distributions, canonical, open shield, ranger, et cetera.

19:10.000 --> 19:19.000
So all of these have a link so you can go there and explore.

19:19.000 --> 19:26.000
About this software in particular, if you want to know more.

19:26.000 --> 19:41.000
So this I found this very really useful because sometimes you don't really know if something already exists or which one is the most popular or which one is the one that you may want to try or give it a look.

19:41.000 --> 19:46.000
So so this is my money is really helpful because of that.

19:46.000 --> 19:49.000
There is.

19:49.000 --> 19:52.000
Just a sec.

19:52.000 --> 20:00.000
There is a copy of that mind maps here, but in PDF format format.

20:00.000 --> 20:07.000
So it's already in your material, but nothing like the real deal.

20:07.000 --> 20:09.000
So.

20:09.000 --> 20:14.000
So feel feel feel free to explore that as well.

20:14.000 --> 20:16.000
Let me show you the link.

20:16.000 --> 20:18.000
Give me just a second.

20:18.000 --> 20:21.000
Arranging my desktop here.

20:21.000 --> 20:24.000
So this is the link.

20:24.000 --> 20:29.000
If you want to go ahead and take a look.

20:29.000 --> 20:46.000
So the thing here is is this because I mean as Cuba Nets is directly related to containers in order to orchestrate those all of the tools that already work with containers are work with your best as well.

20:46.000 --> 20:51.000
So this is like a good way to get familiar with it.

20:51.000 --> 20:56.000
Well, let's define Cuba Nets in in the formal sense.

20:56.000 --> 20:57.000
It came.

20:57.000 --> 21:04.000
It comes from the word Hans man, which is a Greek word.

21:04.000 --> 21:12.000
And the idea here is that your nets guide you through unknown waters.

21:12.000 --> 21:21.000
Remember, if you have in mind the logo for two or nets, it's the the the drive for a vessel.

21:21.000 --> 21:26.000
So so that is where the name comes from.

21:26.000 --> 21:39.000
Also, nowadays we discuss or we say that your net is there is the Linux of the cloud or the Linux kernel of the distributed systems applications.

21:39.000 --> 21:53.000
So that is I mean, it's the most faster growing open source system after Linux.

21:53.000 --> 21:56.000
So it's really huge as well.

22:14.000 --> 22:19.000
Those containers are there.

22:19.000 --> 22:28.000
The unit in which your application runs, usually that application becomes like a microservice.

22:28.000 --> 22:38.000
There are different solutions to run containers is not only Docker and actually, and we are going to see that right now.

22:38.000 --> 22:42.000
Now, Docker is not even used within two or nets in the last versions.

22:42.000 --> 22:52.000
However, it's part of what you need to to have in your toolkit in order to to work with these cloud native world.

22:52.000 --> 23:03.000
Cuba Nets allows you to have a proper microservice architecture and to handle all of those microservices because, as you are aware,

23:03.000 --> 23:17.000
and a microservice architecture is characterized because there are a lot of small and independent services that needs to be keep running at all costs.

23:17.000 --> 23:26.000
And doing that manually is really hard, if not impossible, especially if your application is really complex.

23:26.000 --> 23:32.000
So to your next is the answer to handle that kind of solutions as well.

23:32.000 --> 23:42.000
Cuba Nets, it's a it's a well has let me go straight to the to this slide.

23:42.000 --> 24:00.000
So Cuba Nets allows you to to to handle your containers, your yeah, your containers orchestrate your containers because it has something which is called the control plane.

24:00.000 --> 24:06.000
And something which is called the workers or the nodes of the system.

24:06.000 --> 24:13.000
The control plane is at least in a production environment.

24:32.000 --> 24:36.000
So this control plane has several components.

24:36.000 --> 24:45.000
The main one is the API server, which is the basically the heart of Cuba Nets.

24:45.000 --> 24:54.000
It has also two controllers, one the Cuba control manager, the cloud control manager or the control managers.

24:54.000 --> 24:57.000
We're going to see a little bit about them in a few.

24:57.000 --> 25:18.000
It has the scheduler in order to assign both to different nodes, deciding which node a pod will run and the etcd, which is the database in where all the configuration is completely stored or is saved.

25:18.000 --> 25:31.000
This API server has the cubelet and the cube proxy, which are the two services available or the two main services available in which each one of the nodes.

25:31.000 --> 25:36.000
So we are going to see how those connect to each other as well.

25:36.000 --> 25:48.000
So usually when or usually no by standard, the way that Cuba Nets works is first interacting with the API.

25:48.000 --> 25:55.000
Let's say that you want to run a container service in your Cuba Nets system.

25:55.000 --> 26:17.000
So the way that this runs or that the flow works in order to that container to run is that first you send a comment to the API server and this API server writes that information in the database, which is the etcd.

26:17.000 --> 26:24.000
And that information then once is written, the API server is informed that it was written.

26:24.000 --> 26:34.000
So it sends to the scheduler the request to create or to assign a place to run a new pod.

26:34.000 --> 26:40.000
So the API server is watching the scheduler do this job.

26:40.000 --> 26:56.000
Once the scheduler has decided in which node the pod is going to run, it lets the API server or it informs the API server that this has happened.

26:56.000 --> 27:06.000
The pod has assigned to run in one of the nodes and that information is written by the API server to the database to the etcd.

27:06.000 --> 27:14.000
When that is written, and please be aware of this flow in the sense that this needs to happen.

27:14.000 --> 27:23.000
I mean, the API server will stuck if it doesn't have like confirmation for the for the data for that.

27:23.000 --> 27:31.000
The data was written, so that is really important to have in mind, especially when you are troubleshooting in the future.

27:31.000 --> 27:40.000
So when the the pod is assigned to a node to run that information is written when that has happened.

27:40.000 --> 27:46.000
The API server let the scheduler to know that that is a goal.

27:46.000 --> 28:00.000
You can call it like that. And then the server asks the kubectl, which is the service that runs within the node to OK, please run this path.

28:00.000 --> 28:23.000
There is this path for you to run the kubectl talks with the container engine in this case is Docker, but it talks with the container engine and it lets it let know the or it tells the container engine that these paths or this image is the one that needs to be run.

28:23.000 --> 28:44.000
So this is what happens here. Once the container engine has launched the pod with a container to run the image of the application, it informs kubectl that the status of that if it's running, if it's not running, wherever, wherever it's happening there.

29:04.000 --> 29:09.000
So that is like the typical flow. This happens in in seconds.

29:09.000 --> 29:19.000
It's super, super fast, but it's important to understand this flow because this is the way that all the components communicate with each other.

29:29.000 --> 29:39.000
So the API server has a transactional or a multiple request role within a Kubernetes cluster.

29:39.000 --> 29:54.000
So it's being hammered all the time because everyone is talking to them to the API server asking to write some information or or the server sending some information.

30:09.000 --> 30:16.000
So these two guys, the API server and the ETCB usually have the piece.

30:16.000 --> 30:34.000
The API server has a load balancer in front of it and with at least three nodes running it and the ETC has a replica or is replicated in the database and also usually at least three nodes should be there.

30:34.000 --> 30:45.000
The other ones, if this fails, the scheduler or the kubelet, actually this can fail and the container, your application, can still run.

30:45.000 --> 30:50.000
So this is kind of curious, but it's important to understand as well.

30:50.000 --> 31:02.000
So if we analyze the same flow, but from the components, we are going to see like the same explanation that I just did.

31:02.000 --> 31:10.000
However, in this time, we are talking about the API, the deployment controller, the replica set controller.

31:23.000 --> 31:28.000
And finally, the scheduler and the kubelet are the ones who interact with the system.

31:28.000 --> 31:33.000
So this flow is as well important in that.

31:33.000 --> 31:38.000
So this is like the complete flow of the kubernetes.

31:43.000 --> 31:50.000
So that is like the flow of the conversation that happens inside kubernetes.

31:50.000 --> 31:59.000
This is a high level architecture, which is a little bit more comparing to the previous one.

31:59.000 --> 32:01.000
So this is the API server.

32:01.000 --> 32:08.000
This is you, hopefully in a better position for your back.

32:08.000 --> 32:12.000
So the API server is the one that you interact with.

32:12.000 --> 32:22.000
Always every, I mean, the kubectl, any application that you use to interact with the kubernetes is talking to the API server.

32:22.000 --> 32:36.000
The API server is the only one who talks with the ETCD cluster with the database and the controller and the scheduler are the ones that interact with this API server as well.

32:36.000 --> 32:43.000
The API server talks with each one of the nodes with the kubelet and the kube proxy.

32:43.000 --> 32:47.000
The kube proxy is like a firewall at the end.

32:47.000 --> 32:55.000
It's just like IP tables creating rules to to allow the traffic flow.

32:55.000 --> 33:08.000
And the kubelet is the one that is in charge to fulfill the requests that are done via API server or controller and scheduler managers.

33:08.000 --> 33:16.000
So the kubelet is the one that talks with the pods and Docker is the in this case Docker, but is the container engine.

33:16.000 --> 33:19.000
The one that is able to run this.

33:19.000 --> 33:22.000
So that is like that.

33:22.000 --> 33:26.000
If you want to see another point of view is like the same.

33:26.000 --> 33:36.000
Here we are seeing an additional part of this puzzle, which is the load balancer.

33:54.000 --> 33:55.000
Yeah.

34:14.000 --> 34:19.000
If you have any questions, please go ahead and do those.

34:19.000 --> 34:23.000
Don't worry.

34:23.000 --> 34:28.000
Let's dig a little bit as well.

34:28.000 --> 34:33.000
So this is the same structure that we just discussed.

34:33.000 --> 34:43.000
However, here we can see at a deeper technical level how all these components are communicating to each other.

34:43.000 --> 34:48.000
So first of all, our API server and the user.

34:48.000 --> 34:54.000
So the user and the API server use JSON to communicate.

34:54.000 --> 35:03.000
We use Jamf files, but in on behind that or on the back end is JSON, which is used here.

35:03.000 --> 35:08.000
So the API server process that JSON.

35:08.000 --> 35:20.000
And when the API server needs needs to talk with the controller manager or the scheduler or kubelet, the agents of each one of the nodes.

35:20.000 --> 35:25.000
What happens is that it uses protobuf.

35:25.000 --> 35:40.000
Protobuf is a protocol that allows you to communicate between services like GRPC or different services.

35:40.000 --> 35:44.000
The actually protobuf was invented by Google.

35:44.000 --> 35:48.000
And that is the reason why we see this here.

35:58.000 --> 36:10.000
Yeah. And when the API server communicates with the CD, it uses Google RPC, the remote remote procedure call.

36:10.000 --> 36:16.000
So is the way that it communicates with this protocol.

36:16.000 --> 36:30.000
And here in the inside is one of the nodes you will find the query, which is the container runtime interface, the green arrow.

36:30.000 --> 36:36.000
This is important because Docker was the one who invented that.

36:36.000 --> 36:42.000
And they created this container runtime interface to create a standard.

36:42.000 --> 36:58.000
And again, it went bad for Docker because because three Docker is not like the standard or the default for Kubernetes, which I guess that in the future that will impact Docker as a company.

36:58.000 --> 37:07.000
However, in the development world, you still use Docker and will keep using Docker for a while, I guess.

37:07.000 --> 37:10.000
But this is the tree, which is the standard right now.

37:10.000 --> 37:22.000
And CNA, which is the container networking interface, is the is the language or protocol used by Cuba led to communicate to networking.

37:22.000 --> 37:26.000
So we're going to discuss that part later.

37:26.000 --> 37:38.000
What else do I miss here? OK, this one is the open container interface, which is the way in which the container runtime communicates with the operating system.

37:38.000 --> 37:47.000
Before OCI and CRI, and actually OCI is the standard that was created by Docker.

37:47.000 --> 37:57.000
Before that, we needed a daemon, a service running in the operating system.

37:57.000 --> 38:06.000
And that had the problem that if that service failed, your container engine will die.

38:06.000 --> 38:15.000
So the OCI was invented in order to leverage on Linux kernel capabilities.

38:15.000 --> 38:19.000
So we don't need to have a service running there.

38:19.000 --> 38:24.000
So that is right there.

38:24.000 --> 38:29.000
And OK, another thing here, which is important.

38:35.000 --> 38:42.000
It turns out that QNets is a little bit like Kafka.

38:42.000 --> 38:54.000
Not sure if you're aware about Kafka, but Kafka, Pache Kafka is a messaging platform or that messaging pipeline platform.

38:54.000 --> 38:58.000
You create that data pipelines using Kafka.

38:58.000 --> 39:02.000
So you can have a producer which creates data.

39:02.000 --> 39:15.000
Your Kafka cluster will receive that data and makes that data available for a consumer, which consumes that data to wherever you need.

39:15.000 --> 39:22.000
So QNets is also an event driven architecture, quite like Kafka.

39:22.000 --> 39:37.000
In the sense that it has some producers, which are the metric server, the autoscaler, the replica set, the scheduler, which create information that goes direct to some queues.

39:37.000 --> 39:47.000
You can call those queues, messaging queues, which are the metrics with the CPU information, which is the most common one.

39:47.000 --> 39:56.000
The replica set, which is the information regarding how many pods are running for a deployment in particular.

39:56.000 --> 40:16.000
And the replica set controller, which controls how well, which tells how many of those controllers you need to add controllers or keep the controllers as you have the pods, sorry, as you have right now or if you need to increase or decrease those.

40:16.000 --> 40:28.000
The scheduler, which the message queue regarding pods, which allows you to know in which node the pod will be running.

40:28.000 --> 40:40.000
So that information is reading in these queues and is consumed by the ones that need that information in order to execute something.

40:40.000 --> 40:45.000
So the autoscaler reads data from the metric server.

40:45.000 --> 41:04.000
And here is something actually quite important because one of the biggest thing about Kafka is that it allows you to create this, the couplet architecture.

41:04.000 --> 41:17.000
I mean, if this is failing, it doesn't mean that this will fail because this is only accessing or reading the queue.

41:17.000 --> 41:24.000
So if there is no more data in the queue, the autoscaler will do nothing.

41:44.000 --> 41:45.000
So that is what happens here.

42:09.000 --> 42:12.000
So this is quite interesting as well.

42:12.000 --> 42:17.000
And obviously the article in which you can be a little bit more is linked there.

42:23.000 --> 42:27.000
And finally, finally, the state machine.

42:27.000 --> 42:32.000
So QBernet is a pure state machine.

42:33.000 --> 42:50.000
So you define or I mean, when you talk with the API server, you define a state for your application, for your system that is stored in the 8etcd database.

42:50.000 --> 42:58.000
And the controllers and the schedulers are the ones who implement that state machine.

42:58.000 --> 43:08.000
So your manifest, your Jamf file, your definition, the thing that you want to run has a desired state.

43:08.000 --> 43:25.000
And what the controller and the scheduler is doing all the time, all the time, the replica set, the scheduler, all the time they're doing this is to OK, which is the state decided for this application?

43:25.000 --> 43:35.000
It's to have four ports, load balancer, volume, volume available.

43:35.000 --> 43:42.000
And that's it. So the port should be available as well.

43:42.000 --> 43:45.000
This is the port. So that is the desired state.

43:45.000 --> 43:50.000
OK, let's see if that state is the same.

43:50.000 --> 43:53.000
OK, which is the current state?

43:53.000 --> 43:56.000
OK, it only has three ports.

43:56.000 --> 44:07.000
OK, so if there is only three ports and here we want four and there is only three, we need to add one.

44:07.000 --> 44:09.000
So let's do that.

44:09.000 --> 44:13.000
And that is like a never ending cycle.

44:13.000 --> 44:18.000
So this is what happens all the time with QBernet.

44:18.000 --> 44:25.000
So that is why if you delete a port, it will start over right away.

44:25.000 --> 44:29.000
This state machine here.

44:29.000 --> 44:38.000
OK, so that is like the basics for architecture for the inner of QBernet.

44:38.000 --> 44:48.000
Let me know if there is something that is not that clear or do you want to discuss a little bit more?

44:48.000 --> 44:51.000
Go ahead and do that.

44:51.000 --> 44:59.000
So let me see.

44:59.000 --> 45:08.000
As well, this QBernet, as I told you, the basic of it is the API server.

45:08.000 --> 45:12.000
And that is because QBernet is an API.

45:28.000 --> 45:37.000
This API has a series of resources that are defined in the API specification.

45:37.000 --> 45:53.000
So all, everything, basically everything, everything that is defined in QBernet or that is used in QBernet,

45:53.000 --> 46:04.000
it can be tracked down to a specification here, a specification of the API.

46:04.000 --> 46:16.000
So in this slide, each one of these are the resources that compose or that make QBernet a thing.

46:16.000 --> 46:26.000
So everything here is a resource and something that you can configure, that you can find, that you can create.

46:26.000 --> 46:30.000
And it's explained in the API.

46:30.000 --> 46:39.000
So each one of these are the resources, the workloads, the part, the job, the current job, the diamond set, the stateful set, the deployment.

46:39.000 --> 46:50.000
This is the explanation and that is available here in the, well, these are the concepts, the documentation regarding each one of those.

46:50.000 --> 46:56.000
And let me show you the API reference.

47:06.000 --> 47:09.000
So this is the API.

47:10.000 --> 47:26.000
The API. So in the QBernet API, you will have all the definition, the technical low level definition of each one of these resources that we have here.

47:26.000 --> 47:33.000
The pod, the pod, which is the basic deployable unit.

47:33.000 --> 47:44.000
So, I mean, whenever you're working with QBernets, something that you need to have in mind is this, is the API.

47:44.000 --> 47:59.000
I mean, beyond the complexity that has QBernets, it's a really beautiful simplicity because everything, everything is defined here.

47:59.000 --> 48:08.000
So you may don't know how to do something, how to create or define something, but you should not worry at all.

48:08.000 --> 48:22.000
The only thing that you need to do is go and take a look in the API because the API says, explains everything and every option that you want or may want to use or to create.

48:22.000 --> 48:42.000
So the most important thing regarding this is that beyond Google, beyond all the trainings, all the stuff that you may find around or the books or wherever, the most important resource, documentation resource is the API.

48:42.000 --> 48:48.000
So this is important and that is why I'm showing this to you guys.

48:48.000 --> 48:53.000
Actually, we are going to explore the API directly in our in the cluster.

48:53.000 --> 48:57.000
Well, in one of our clusters as well.

48:57.000 --> 48:59.000
So, so, yeah.

48:59.000 --> 49:13.000
So there is this another document, which is also really good because it helps you to work with QBernet.

49:13.000 --> 49:16.000
And it's let me see.

49:16.000 --> 49:18.000
I don't see it here.

49:18.000 --> 49:29.000
Let me see.

49:29.000 --> 49:33.000
It seems that I forgot to include that in the materials.

49:33.000 --> 49:39.000
I'm going to do it in the in the break so you can have a copy.

49:39.000 --> 49:41.000
But this is the spreadsheet.

49:41.000 --> 49:50.000
So this is important because the part is kind of the center of the universe in QBernet.

49:50.000 --> 49:56.000
And that is because this is an orchestration system for containers.

49:56.000 --> 50:00.000
And it turns out that the part is the one that holds the container.

50:18.000 --> 50:25.000
So you will find the current version, the API version, current version, the part.

50:25.000 --> 50:36.000
And, for example, all the stuff that goes in metadata in the status, which is only at runtime conditions,

50:36.000 --> 50:44.000
in containers, the tolerations to fail to when should we restart the part?

50:44.000 --> 50:48.000
Never or always or only when it fails.

50:48.000 --> 50:56.000
The security context, if we are going to run as root this container or not.

50:56.000 --> 51:05.000
Volumes, which volumes are supported, Azure File or Host Path or NFS.

51:05.000 --> 51:13.000
And the other variables as the node name where it's running, the scheduler name.

51:13.000 --> 51:21.000
So this is related to the part and this is related to the containers which are inside the part.

51:21.000 --> 51:30.000
So the specification for the containers, which has the, for example, the name, the comments, the attributes, the lifecycle.

51:30.000 --> 51:33.000
And this is super important because this is stuff.

51:33.000 --> 51:38.000
So this is stuff that sometimes you don't know about.

51:38.000 --> 51:52.000
And it turns out that you can, for example, define a script or a comment to run just after the container starts.

51:52.000 --> 52:00.000
So as soon as you, for example, an engines container, you run an engines container.

52:00.000 --> 52:09.000
And you want to download a website, an HTML file, just to provide an example.

52:09.000 --> 52:14.000
So it turns out that you can do that here with post start.

52:14.000 --> 52:25.000
Yeah. Or if it's an alarm or I mean use cases, just imagine whatever you want to do just after your container starts.

52:25.000 --> 52:27.000
Yeah. So that is what this is for.

52:27.000 --> 52:37.000
Also, pre-stop. Before going down, you can, for example, take a copy of all of the status and send that to wherever.

52:37.000 --> 52:46.000
Yeah. So pre-stop. That is a script that runs after before the container is stopped.

52:46.000 --> 52:53.000
And so this is super nice and super interesting, the things that you can do with that.

52:53.000 --> 53:08.000
Regarding variables, environment variables, regarding ports, the volumes, the resources, how many CPU, how much CPU is going to be assigned,

53:08.000 --> 53:19.000
how much memory is going to be assigned to this container, the security contents, the old environment, where is this coming from, the config map, the secrets.

53:19.000 --> 53:28.000
And something which is really beautiful, the liveness proof, the readiness proof, which allows you to test your container,

53:28.000 --> 53:37.000
if it's working as expected or not, if it's ready to run or not to receive requests.

53:37.000 --> 53:42.000
So everything here is what you can do with a container within Kubernetes.

53:43.000 --> 53:58.000
And finally, the OK, the unit container, which is one container like this one, but has the the feature that when you start the path,

53:58.000 --> 54:08.000
the unit container will be executed first. And after this is executed, the main container will be run.

54:08.000 --> 54:13.000
So a new case for this is, well, I'm going to use the same example.

54:13.000 --> 54:33.000
You have a Git repo with your web page. So you can create an unit container that clones that repo in a volume, in a volume, the bar triple, triple W HTML volume.

54:33.000 --> 54:45.000
And and when it's once this is done, the main container, which is a mix, will start and will find in this volume the data.

54:45.000 --> 54:52.000
So that is super cool. And it's something that can be done with unit containers.

54:52.000 --> 55:01.000
And the other one is the affinity, which is like the rules in which I will schedule the spot.

55:01.000 --> 55:10.000
So, for example, if you have a path that is designed to run machine learning workloads,

55:10.000 --> 55:16.000
so I want to run this spot in the server with GPU with a GPU.

55:16.000 --> 55:26.000
So I will create an affinity, node affinity, and I will label that node with the GPU label.

55:27.000 --> 55:37.000
So every time that node that pod is launched, it will be assigned to run in the node with a GPU.

55:37.000 --> 55:45.000
So that is like the main idea here. So you can have affinity for nodes, affinity for pods.

55:45.000 --> 55:54.000
For example, I want these two nodes, these two pods, the database and the web service to be run always on the same node.

55:54.000 --> 56:02.000
So because I don't want latency, I don't want networking, I want to for them to work in the in the same space.

56:02.000 --> 56:08.000
So that is the pod affinity or the affinity. I don't want to have, for example,

56:08.000 --> 56:17.000
I have something that requires some entropy and I don't want that to run in the same place.

56:17.000 --> 56:26.000
I mean, each one of the pods needs to run in different nodes, so I don't minimize my entropy, stuff like that.

56:26.000 --> 56:31.000
There are a lot of use cases over there.

56:31.000 --> 56:40.000
So this pod is really good because of that, because it gives you like an idea of what can be done.

56:40.000 --> 56:48.000
And with this, you can explore the API, the formal documentation and work through that.

56:48.000 --> 56:57.000
So that is good to have as well. OK, so these are the different resources available.

56:57.000 --> 57:05.000
Well, I'm not to go into the detail of explaining each one of those,

57:05.000 --> 57:10.000
because in the during the labs, we are going to discuss that.

57:10.000 --> 57:26.000
And if there is something that is that you are not aware of that you don't or haven't heard about it before, let me know so we can discuss it for sure.

57:26.000 --> 57:38.000
No worries at all. But suffice to say that the every one of these resources are defined in the API and the documentation or here in this table,

57:38.000 --> 57:51.000
which comes from the well, actually for this back to the next inaction from Lutzer, that is a really good book talking which talks about to the next as well.

57:51.000 --> 57:58.000
All the important the workloads, the services, the config, the storage.

57:58.000 --> 58:02.000
Those are the main kind of resources.

58:02.000 --> 58:10.000
And each one of those will have different common objects or resources that we used to use.

58:10.000 --> 58:13.000
The pod is the most important one.

58:13.000 --> 58:21.000
The deployment as well or the most common ones, the services, the config and the volumes.

58:21.000 --> 58:25.000
Those are the ones that you use every time.

58:25.000 --> 58:42.000
And these ones, the limits and resources, those are important as well, because these are the ones that you control in order to abide like expectation of your resources or keep in control what you are running.

58:42.000 --> 58:51.000
Because sometimes you can have like an application, a service that is consuming a lot of CPU or memory.

58:51.000 --> 58:54.000
And this is what helps you to do that as well.

58:54.000 --> 59:10.000
Security of the roles, the service accounts and the extension with the custom resource definition, which is which has been a huge explosion in the last years.

59:10.000 --> 59:16.000
Because this is the way in which you expand the abilities of QNets.

59:16.000 --> 59:28.000
So actually there are a lot of software providers that gives you using this, the CRD, additional software to run on top of QNets as well.

59:28.000 --> 59:30.000
Okay.

59:30.000 --> 59:36.000
And this last one, this last one important.

59:36.000 --> 59:42.000
This is how an application relates to QNets resources.

59:42.000 --> 59:54.000
So as we have suggested, the pod is the heart or the central piece of operation of QNets.

01:00:15.000 --> 01:00:21.000
But within the pod is your container, your code, the container.

01:00:21.000 --> 01:00:28.000
So the code of your application goes within a container that is inside the pod.

01:00:28.000 --> 01:00:39.000
The pod is like the you can say the pod is the server which runs your image, the Docker image that you created.

01:00:39.000 --> 01:00:42.000
So this is like the idea as well.

01:00:42.000 --> 01:00:57.000
And this container access data via the volumes and those volumes could be the configs, the secrets, the volume claims or APIs or the host pad or empty there.

01:00:57.000 --> 01:01:03.000
So this is the like the way that your container access data.

01:01:03.000 --> 01:01:14.000
Each one of these resources are the most important components here in QNets.

01:01:14.000 --> 01:01:26.000
We're going to define those over the training, but for sure we will go back here and discuss that.

01:01:26.000 --> 01:01:32.000
Actually that is what we are going to do just right now.

01:01:32.000 --> 01:01:36.000
At the end, why to use QNets?

01:01:36.000 --> 01:01:43.000
Basically, I have always said that QNets replaces the sysadmin.

01:01:43.000 --> 01:01:55.000
So if you are a sysadmin and you don't have knowledge and skills regarding QNets,

01:01:55.000 --> 01:01:59.000
you may very well be replaced because of this.

01:01:59.000 --> 01:02:11.000
Because QNets is the solution for a lot of issues that many companies have within their own processes.

01:02:11.000 --> 01:02:21.000
For example, in the old times, because I mean, you are a company that already has embraced QNets and that is not that common.

01:02:21.000 --> 01:02:28.000
The vast majority of companies haven't embraced QNets yet.

01:02:28.000 --> 01:02:42.000
So these those kinds of companies have issues like, for example, the application needs one terabyte for the database and we need to provision that storage.

01:02:42.000 --> 01:02:49.000
Or the application needs one public IP address in order to publish the service.

01:02:49.000 --> 01:02:58.000
Or the application needs X number of cores of CPU to run and we need to have those available.

01:02:58.000 --> 01:03:11.000
So that kind of stuff previously was done by a sysadmin, configuring, programming, provisioning, whatever was required to run an application.

01:03:11.000 --> 01:03:17.000
And nowadays with QNets that is done automatically or automagically you can say.

01:03:17.000 --> 01:03:27.000
So why to use QNets? Because I mean, it improves your ability to provide value to the company,

01:03:27.000 --> 01:03:37.000
creating new applications and launching those applications into production as fast as ever has been possible.

01:03:42.000 --> 01:03:50.000
It was easy to see three, six months required in order to launch an application to production.

01:03:50.000 --> 01:03:57.000
With QNets provided everything is in place, you can have every week a new release.

01:03:57.000 --> 01:04:03.000
And that is I mean, that's happening in a lot of companies and a lot of sectors.

01:04:03.000 --> 01:04:14.000
So that is one of the reasons as well. So I guess that we already have done this ecosystem.

01:04:14.000 --> 01:04:25.000
Perhaps this one is the one that we are missing right now. Let me go ahead and it's here.

01:04:25.000 --> 01:04:30.000
This is the landscape of cloud native landscape.

01:04:30.000 --> 01:04:43.000
So this is a PDF file that summarizes all the software of the whole landscape of QNets.

01:04:43.000 --> 01:05:01.000
This is huge. So in this link, in this link, you can have or you will find an interactive web page that shows you all the stuff that is available here.

01:05:06.000 --> 01:05:21.000
So this is interactive. So you can see here. So everything related databases, streaming platforms, applications, continuous integration.

01:05:21.000 --> 01:05:29.000
So all that everything that is here is software related to QNets.

01:05:29.000 --> 01:05:41.000
So please have in mind that there is no way that one person knows about all of this stuff.

01:05:41.000 --> 01:05:52.000
What you need to know is to understand where this thing is located, like be able to find your way here.

01:05:52.000 --> 01:06:04.000
So this is why all this stuff is important, because this is so complex that over the time you will learn to to to I mean, you will have that in mind.

01:06:04.000 --> 01:06:11.000
But at the beginning it will take some time. So so so it's not that easy because it's so big.

01:06:11.000 --> 01:06:19.000
And that is beautiful because a lot of times there is something that you want to do and it turns out that it's already there.

01:06:19.000 --> 01:06:24.000
You just need to dig a little bit. So everything that is here is nice.

01:06:24.000 --> 01:06:30.000
This, for example, this stuff, Chaos Engineering. This is crazy.

01:06:30.000 --> 01:06:41.000
Sadly, we we won't have the time in this training, but there is some applications that allows you to play.

01:06:41.000 --> 01:06:47.000
I mean, there is one that I found amusing that is this first.

01:06:50.000 --> 01:06:56.000
I forgot the name. These arcade games of shooting in first person.

01:06:56.000 --> 01:07:04.000
So you can run a game, the game on top of QNets and kill bots randomly.

01:07:04.000 --> 01:07:09.000
So when you shoot, what you are doing is killing a path.

01:07:09.000 --> 01:07:14.000
And that is done in order to see what happened with your application, with your system.

01:07:14.000 --> 01:07:23.000
That is Chaos Engineering. So that way, you know, if your application was well designed to survive and a random failure.

01:07:23.000 --> 01:07:31.000
So this is stuff really sometimes even crazy. OK, so we've got everything here.

01:07:31.000 --> 01:07:35.000
So let's do the first lab. So.

01:07:38.000 --> 01:07:42.000
This is the first lab. Let me explain a little bit this document.

01:07:42.000 --> 01:07:49.000
This document gives you what? Well, well, it shows like an objective.

01:07:49.000 --> 01:07:54.000
What you will gain after this lab and a step by step guide.

01:07:54.000 --> 01:08:08.000
This is a general step by step guide and a common through these comments are these codes are not to be followed by by by the letter.

01:08:08.000 --> 01:08:14.000
It's just like an example to give you an idea of what can be done.

01:08:14.000 --> 01:08:29.000
There are some additional exercises like this in which you can follow those one comment after the other to see what this creates.

01:08:30.000 --> 01:08:38.000
So in this part, first lab, the idea is just to explore a little bit about what we have discussed.

01:08:38.000 --> 01:08:45.000
I mean, to see in real life all those resources that we have.

01:08:45.000 --> 01:08:56.000
I want to show you some of the dashboards available, some of the tools that are available as well to manage one.

01:08:56.000 --> 01:08:59.000
A key word that's closer. There are I mean.

01:08:59.000 --> 01:09:06.000
There are hundreds of tools that you can use and every day you will find a new one.

01:09:06.000 --> 01:09:12.000
So if you know a one that want to share, please do, because I mean, there is a lot of stuff.

01:09:12.000 --> 01:09:17.000
So here we are using. Well, let me go back.

01:09:17.000 --> 01:09:21.000
So here we are going to use a mini cube cluster.

01:09:21.000 --> 01:09:25.000
Mini cube is a small distro. We are going to discuss that later.

01:09:25.000 --> 01:09:35.000
That it's used to for local development is the is the best way and stuff like this one for learning for labs.

01:09:35.000 --> 01:09:41.000
The idea is to explore the different resources within the cluster and see the dashboard.

01:09:41.000 --> 01:09:45.000
So here we are using the standard dashboard for Kubernetes.

01:09:45.000 --> 01:09:52.000
But we are we are going to use another one to see another one that is available within the cube.

01:09:52.000 --> 01:10:04.000
And also we're going to use a special path that has some tools to manage Kubernetes.

01:10:04.000 --> 01:10:08.000
This will run inside the cluster.

01:10:08.000 --> 01:10:10.000
So it will give you like a.

01:10:10.000 --> 01:10:15.000
A privileged position within the cluster to see stuff.

01:10:15.000 --> 01:10:20.000
And this other one is a Kubernetes management tool from the terminal.

01:10:20.000 --> 01:10:23.000
It's quite nice, actually.

01:10:23.000 --> 01:10:32.000
And some tips or some tools that will allow you to to handle better our environments.

01:10:32.000 --> 01:10:35.000
Oh, actually, I just realized that I'm missing.

01:10:35.000 --> 01:10:37.000
I know it's here. The namespace.

01:10:37.000 --> 01:10:44.000
This one, the Q and S is it's kind of important because we were going to use it.

01:10:44.000 --> 01:10:48.000
There is some prompt that you can use as well.

01:10:48.000 --> 01:10:58.000
She's just to play around and some other stuff that you may want to try.

01:10:58.000 --> 01:11:01.000
So please go ahead.

01:11:01.000 --> 01:11:04.000
And.

01:11:04.000 --> 01:11:10.000
And access to your to your terminal.

01:11:10.000 --> 01:11:14.000
To your terminal and.

01:11:14.000 --> 01:11:16.000
And let me.

01:11:16.000 --> 01:11:25.000
Close the minimize this if you want to have the.

01:11:25.000 --> 01:11:28.000
The documents here.

01:11:28.000 --> 01:11:31.000
Open.

01:11:31.000 --> 01:11:35.000
Also, if you want, you can do that.

01:11:35.000 --> 01:11:38.000
Right now that as well, you can go.

01:11:38.000 --> 01:11:44.000
Open the Firefox browser and go to Gmail.

01:11:44.000 --> 01:11:46.000
Log in there.

01:11:46.000 --> 01:11:55.000
And send to yourself the documents if you want to have those in your local computer.

01:11:55.000 --> 01:11:59.000
That will be also a good moment to do that.

01:11:59.000 --> 01:12:01.000
And.

01:12:01.000 --> 01:12:09.000
Another thing well is let me open this is I forgot to show you this.

01:12:09.000 --> 01:12:10.000
This is important.

01:12:10.000 --> 01:12:17.000
So here in the home directory, you will find a folder called.

01:12:17.000 --> 01:12:21.000
K.A.S. advanced labs.

01:12:21.000 --> 01:12:33.000
So the idea is to be in this directory because in this directory, you will find all the files that we are going to use.

01:12:33.000 --> 01:12:35.000
During the training.

01:12:35.000 --> 01:12:41.000
So, yeah, I just realized that the.

01:12:41.000 --> 01:12:46.000
Okay, we are missing some files, but in the.

01:12:46.000 --> 01:12:49.000
I'm going to access your machines to to copy that.

01:12:49.000 --> 01:12:53.000
So.

01:12:53.000 --> 01:12:56.000
Let me do that.

01:12:56.000 --> 01:13:07.000
Also, in when you're in this directory, you can open the visual studio codes with the common code that.

01:13:07.000 --> 01:13:14.000
Because this will be like a good way to to see the.

01:13:14.000 --> 01:13:18.000
The files that we are going to work with.

01:13:18.000 --> 01:13:22.000
And it's a good tool to work.

01:13:22.000 --> 01:13:26.000
So it opens a lot of tabs from what I see.

01:13:26.000 --> 01:13:27.000
So.

01:13:27.000 --> 01:13:35.000
Just close that and give me just a second because I will need to do.

01:13:35.000 --> 01:13:38.000
Something in your machines.

01:13:38.000 --> 01:13:47.000
So please go ahead, copy the files in your systems and prepare the environment and give me just a second.

01:13:47.000 --> 01:13:56.000
Is there any question of what we discussed previously?

01:14:42.000 --> 01:14:46.000
Okay, let me I'm going to access each one of your desktops.

01:14:48.000 --> 01:14:54.000
To copy these files because the image means those.

01:14:54.000 --> 01:14:57.000
And we're going to use those during the training.

01:14:57.000 --> 01:14:59.000
So.

01:14:59.000 --> 01:15:03.000
Just bear with me in a few minutes.

01:15:11.000 --> 01:15:15.000
So give me just a second Dallas.

01:15:15.000 --> 01:15:19.000
I'm going to execute a command in your machine.

01:15:19.000 --> 01:15:22.000
Careful.

01:15:49.000 --> 01:15:57.000
Okay.

01:16:45.000 --> 01:16:46.000
Okay.

01:16:46.000 --> 01:16:49.000
Thank you Dallas.

01:16:52.000 --> 01:16:55.000
So William, give me just a second.

01:16:55.000 --> 01:17:00.000
I'll take control of your machine to copy some stuff.

01:17:14.000 --> 01:17:16.000
Okay, thank you William.

01:17:16.000 --> 01:17:18.000
You're good to go.

01:17:18.000 --> 01:17:22.000
And some let me try yours, please.

01:17:32.000 --> 01:17:34.000
Okay, perfect.

01:17:34.000 --> 01:17:35.000
You're good to go.

01:17:35.000 --> 01:17:37.000
Some and Nick.

01:17:37.000 --> 01:17:43.000
Nick is not here, but I'm making his system ready.

01:17:48.000 --> 01:17:50.000
Okay.

01:17:51.000 --> 01:17:53.000
Okay, perfect.

01:17:56.000 --> 01:17:58.000
So.

01:17:58.000 --> 01:18:04.000
So what I did is to to copy the files because I missed that part.

01:18:04.000 --> 01:18:06.000
But anyway.

01:18:06.000 --> 01:18:08.000
So this is the advanced lab.

01:18:08.000 --> 01:18:16.000
Let me I'm going to do it here, but you can go ahead and work with it as well.

01:18:16.000 --> 01:18:22.000
So we are going to run the mini cube cluster.

01:18:22.000 --> 01:18:26.000
This cluster is just one for worry.

01:18:26.000 --> 01:18:28.000
We are going to remove that.

01:18:28.000 --> 01:18:36.000
So please, please notice that I'm in at the K eight s advanced labs directory.

01:18:36.000 --> 01:18:39.000
So go to this directory.

01:18:39.000 --> 01:18:45.000
And because you have the files there, it's better.

01:18:45.000 --> 01:18:57.000
And also open a visual studio code with this common code that and this will open this so you can see the files if you want to.

01:19:04.000 --> 01:19:09.000
Well, there are some extensions that may be useful.

01:19:09.000 --> 01:19:13.000
So it's OK if you sold us as well.

01:19:13.000 --> 01:19:21.000
OK, so the idea here is to to launch this mini cube.

01:19:21.000 --> 01:19:29.000
So mini cube is a small distro is the oldest one, they say.

01:19:29.000 --> 01:19:48.000
And this was the first distro that was able to run in a laptop because before that running to our next was basically impossible to to do in a common computer.

01:19:48.000 --> 01:19:53.000
It was so intensively resources that it wasn't that feasible.

01:19:53.000 --> 01:19:58.000
So many to was the first distribution.

01:19:58.000 --> 01:20:04.000
The children that distribution decided to run inside a normal computer.

01:20:04.000 --> 01:20:10.000
In this case, we are running a mini cube using Docker.

01:20:10.000 --> 01:20:23.000
We are going to use Docker as the vaccine for this training just for to make it easy because otherwise it will be a little bit more complex to work with.

01:20:23.000 --> 01:20:31.000
However, mini cube supports KVM, which is the the lead virtualization for Linux.

01:20:31.000 --> 01:20:34.000
It also supports virtual box.

01:20:34.000 --> 01:20:38.000
It supports Mac, the high fair high effects.

01:20:38.000 --> 01:20:44.000
It's the name I forgot the name, which is the virtualization of Mac OS.

01:20:44.000 --> 01:20:54.000
And also it supports secret shell so you can connect to physical notes and create a keyword cluster with me.

01:20:54.000 --> 01:21:02.000
One of the nice things about me, me too, is that it has a lot, a lot of plugins.

01:21:02.000 --> 01:21:06.000
So it's really powerful in that in that regards.

01:21:06.000 --> 01:21:13.000
So, OK, so you can see here it doesn't take long to solid users.

01:21:13.000 --> 01:21:17.000
Docker, it creates a control plane.

01:21:35.000 --> 01:21:40.000
You can run a mini cube status to see what is here.

01:21:40.000 --> 01:21:43.000
So you will find the control plane.

01:21:43.000 --> 01:21:52.000
This mini cube, which the cause, the cube led the APA and the cube config configure in this server.

01:21:52.000 --> 01:22:05.000
You can run the cube CPL get namespaces from the lab that is there, for example.

01:22:05.000 --> 01:22:10.000
Actually, what William is doing, it's a good idea as well.

01:22:10.000 --> 01:22:12.000
I like to do that as well.

01:22:12.000 --> 01:22:18.000
I'm going to show you guys, which is to have a terminal within the Visual Studio Code.

01:22:18.000 --> 01:22:20.000
This is super useful as well.

01:22:20.000 --> 01:22:23.000
And you can have multiple ones here.

01:22:23.000 --> 01:22:27.000
So that is another way to do everything as well.

01:22:27.000 --> 01:22:39.000
So and there is this shell path that has some tools.

01:22:41.000 --> 01:22:49.000
So this show, but if you run the script, it will install this application.

01:22:49.000 --> 01:22:51.000
It creates a namespace.

01:22:51.000 --> 01:22:56.000
It creates a service account, role binding apart.

01:22:56.000 --> 01:22:59.000
And we just wait for it to be ready.

01:22:59.000 --> 01:23:02.000
Let's give some definitions in the meantime.

01:23:02.000 --> 01:23:05.000
The namespace.

01:23:05.000 --> 01:23:13.000
Actually, the last definition that I read regarding namespace.

01:23:13.000 --> 01:23:14.000
Actually, I like it.

01:23:14.000 --> 01:23:24.000
I like it because it says that namespace is a virtual kubernetes clusters within kubernetes.

01:23:24.000 --> 01:23:42.000
And it's kind of true because the namespace resource is like a back in which you have all the resources for your application collected.

01:23:42.000 --> 01:23:51.000
It's I mean, if you want to create an application, you put everything from that application in this namespace.

01:23:51.000 --> 01:23:53.000
So it's an environment.

01:23:53.000 --> 01:23:56.000
It's your stack, your application.

01:23:56.000 --> 01:24:01.000
So it's a way to have control of your cluster.

01:24:01.000 --> 01:24:06.000
So you can have multiple applications, each one in a different namespace.

01:24:06.000 --> 01:24:11.000
So it provides like that space to work with.

01:24:11.000 --> 01:24:15.000
So here I run the shell pods.

01:24:15.000 --> 01:24:23.000
And the first thing I want you to notice is this, because this is a kubernetes shell.

01:24:23.000 --> 01:24:39.000
This kubernetes shell shows you the address of the API server, the context or the namespace in which this session is open.

01:24:39.000 --> 01:24:44.000
So here you will have different commands available.

01:24:44.000 --> 01:24:52.000
Qt, CPL, for example, the one that we discussed later, the K9S.

01:24:52.000 --> 01:24:54.000
It's there as well.

01:24:54.000 --> 01:24:56.000
Let me close this one.

01:24:56.000 --> 01:24:59.000
So this is this is nice to explore.

01:24:59.000 --> 01:25:04.000
So you go here.

01:25:04.000 --> 01:25:21.000
This is like a quick.

01:25:21.000 --> 01:25:31.000
So this is like V, but in order to exit, you have to do semicolon Q.

01:25:31.000 --> 01:25:33.000
And that way you can get out of that.

01:25:33.000 --> 01:25:36.000
So feel free to explore a little bit.

01:25:36.000 --> 01:25:38.000
There is more comments here.

01:25:54.000 --> 01:25:59.000
So take a look and follow the guide.

01:25:59.000 --> 01:26:04.000
And please also explore.

01:26:04.000 --> 01:26:15.000
I suggest you to right now to open the the API reference, for example,

01:26:15.000 --> 01:26:24.000
and explore with Qt, CPL, each one of those resources you have in the system.

01:26:24.000 --> 01:26:34.000
Also, in materials, you have the the sheet sheet qnets file.

01:26:34.000 --> 01:26:45.000
So here you will find not all, but a lot of comments that may be useful for you.

01:26:45.000 --> 01:26:50.000
So go ahead and explore a little bit.

01:26:50.000 --> 01:26:54.000
And we are going to.

01:26:54.000 --> 01:27:01.000
Just a few minutes, actually, because we are going to after we install the dashboard,

01:27:01.000 --> 01:27:09.000
we're going to deploy the API server and the API, an API explorer.

01:27:09.000 --> 01:27:10.000
Sorry.

01:27:10.000 --> 01:27:13.000
And take a look.

01:27:13.000 --> 01:27:14.000
There.

01:27:20.000 --> 01:27:23.000
If you don't want to use the shell pod, it's OK.

01:27:23.000 --> 01:27:28.000
I mean, it's just like another tool to have this work in any cluster.

01:27:28.000 --> 01:27:33.000
So so it's it's nice.

01:27:33.000 --> 01:27:38.000
I'm going to show you the dashboards.

01:27:38.000 --> 01:27:42.000
Those are also neat.

01:27:42.000 --> 01:27:47.000
These will one be our definite cluster, definitive cluster.

01:27:47.000 --> 01:27:51.000
So we're going to the left this one.

01:28:06.000 --> 01:28:13.000
Oh, here I enabled the metrics service server, which is

01:28:16.000 --> 01:28:22.000
the metrics collector for QNets.

01:28:22.000 --> 01:28:33.000
We need to be sent along and I'm doing that because that way we can see good information in the dashboard.

01:28:33.000 --> 01:28:35.000
So.

01:28:46.000 --> 01:28:56.000
One thing with the dashboard when you reach that part is that it takes the terminal, it takes over the terminal.

01:28:56.000 --> 01:29:00.000
So right now is just for to explore.

01:29:00.000 --> 01:29:11.000
But later we will have that running always because it will be a good idea for you to see in the dashboard what we are doing underneath.

01:29:11.000 --> 01:29:13.000
So.

01:29:23.000 --> 01:29:27.000
There is another dashboard there, which is the heat lamp.

01:29:27.000 --> 01:29:32.000
The heat lamp is is a.

01:29:32.000 --> 01:29:36.000
Web interface interface easy to use.

01:29:36.000 --> 01:29:38.000
It's it's not that bad.

01:29:38.000 --> 01:29:41.000
It's nice.

01:29:41.000 --> 01:29:43.000
In my.

01:29:43.000 --> 01:29:48.000
In my from my point of view, the best interface is open shift.

01:29:48.000 --> 01:29:50.000
There is no.

01:29:50.000 --> 01:29:54.000
I mean, it's way advanced that any other one.

01:29:54.000 --> 01:29:57.000
Rancher is not that good at all.

01:29:57.000 --> 01:30:01.000
But this this this this does the work.

01:30:01.000 --> 01:30:04.000
So I'm going to deploy this one as well.

01:30:32.000 --> 01:30:37.000
When you launch the heat lamp, it will requires you to create.

01:30:37.000 --> 01:30:44.000
You see me to the instruction is there, but it also requires that talking to access.

01:30:44.000 --> 01:30:48.000
So you will have to to open a new terminal as well.

01:30:48.000 --> 01:30:50.000
And.

01:30:50.000 --> 01:30:52.000
I know this gives control back.

01:30:52.000 --> 01:30:56.000
So in the same line, you can create the talk.

01:31:07.000 --> 01:31:35.000
So I will be there.

01:31:50.000 --> 01:31:51.000
Me.

01:31:51.000 --> 01:31:58.000
Point to you something which is kind of interesting here.

01:31:58.000 --> 01:32:01.000
Both in the two or next dashboard.

01:32:01.000 --> 01:32:04.000
And in the.

01:32:04.000 --> 01:32:18.000
In the heat lamp that dashboard, you will find well, although headlamp headlamp is not that that is not quite close to how it is in dashboard.

01:32:18.000 --> 01:32:20.000
But for example, workloads.

01:32:20.000 --> 01:32:31.000
So if you see here, this menu workloads, it shows spots, replica sets, then sets, sets, all these.

01:32:31.000 --> 01:32:37.000
And if you go to QNAP dashboard, you will see kind of the same.

01:32:37.000 --> 01:32:44.000
Oh, it's replica sets, states, sets, jobs, deployments, day, month, from jobs.

01:32:44.000 --> 01:32:49.000
So if you go to the APA reference.

01:32:49.000 --> 01:32:55.000
You will see that there is the workload resources.

01:32:55.000 --> 01:33:11.000
So that is like a component of the APA, all the workload resources, which are the pod, the replication controller, the replica set, the deployment, the state pool, the diamond said the job, the current job.

01:33:11.000 --> 01:33:21.000
So what I'm trying to say here is that this interface is just like a graphical interface to the API.

01:33:21.000 --> 01:33:33.000
Each one of these options here is like a visual representation of what the API is telling us about the resource.

01:33:33.000 --> 01:33:38.000
So it's.

01:33:38.000 --> 01:33:51.000
So everything here, so if we take a look into the pods, you will see here a lot of stuff, the specs, every one of the parameters.

01:33:51.000 --> 01:33:56.000
And that is what it's in here.

01:33:56.000 --> 01:34:06.000
This is what it's in here.

01:34:06.000 --> 01:34:21.000
In the in the host, we have installed the K9S tool so you can execute that directly as well.

01:34:21.000 --> 01:34:30.000
This actually I really I like this tool because it shows you like.

01:34:30.000 --> 01:34:34.000
Like a full view of the of your cluster.

01:34:34.000 --> 01:34:39.000
So you can see the pods, the namespaces.

01:34:39.000 --> 01:34:44.000
If you click in one of the namespaces, you will see the pod.

01:34:44.000 --> 01:34:48.000
If you click enter there, you can see the logs.

01:34:48.000 --> 01:34:50.000
If there is any.

01:34:50.000 --> 01:34:54.000
So you can navigate fairly easy.

01:34:54.000 --> 01:35:00.000
I'm not sure if that showing logs.

01:35:00.000 --> 01:35:05.000
That's us.

01:35:05.000 --> 01:35:11.000
OK, there are looks here.

01:35:11.000 --> 01:35:18.000
So it's it's kind of cool.

01:35:18.000 --> 01:35:23.000
If you there is the describe.

01:35:23.000 --> 01:35:34.000
So you can go to any one of the resources and describe the resource and you will have the manifest.

01:35:34.000 --> 01:35:41.000
Which is the summary of the API.

01:35:41.000 --> 01:35:49.000
Or each one of the API parameters are still here or defined here.

01:35:49.000 --> 01:35:53.000
So it's good as well.

01:35:53.000 --> 01:35:56.000
And actually, you can edit here as well.

01:35:56.000 --> 01:36:02.000
So you can edit one of those manifest with with with.

01:36:02.000 --> 01:36:12.000
And you have to you should use a semicolon cube in order to exit the most.

01:36:12.000 --> 01:36:14.000
Yeah, it's kind of cool.

01:36:14.000 --> 01:36:18.000
If you want to see the nodes.

01:36:18.000 --> 01:36:21.000
Has the.

01:36:21.000 --> 01:36:25.000
Difference options.

01:36:25.000 --> 01:36:31.000
OK, so let's have a small break.

01:36:31.000 --> 01:36:35.000
15 minutes and.

01:36:35.000 --> 01:36:39.000
And we we will keep going.

01:36:39.000 --> 01:36:45.000
The idea here is to actually is to deploy our server.

01:36:45.000 --> 01:36:53.000
But we're going to have a small discussion regarding different alternatives and ways to do that.

01:36:53.000 --> 01:37:02.000
And we are going to be back here exploring the API and a lot of more comments with QCTL.

01:37:02.000 --> 01:37:10.000
So. So let's meet in in 15.

01:37:10.000 --> 01:37:15.000
Minutes. OK, sounds good. Cool.

01:37:15.000 --> 01:37:18.000
So take a quick look. Yeah, back.

01:37:18.000 --> 01:37:22.000
You know what you might say.

01:37:22.000 --> 01:37:25.000
Thank you.

01:38:37.000 --> 01:38:44.000
So what we have done so far is just explore a little bit about QNets.

01:38:44.000 --> 01:39:04.000
I just wanted you to get familiarized with the different dashboards that are available and some of the tools that we have here in the environment.

01:39:04.000 --> 01:39:07.000
There is.

01:39:07.000 --> 01:39:14.000
A few tools here that may be worth to check right now.

01:39:14.000 --> 01:39:17.000
One is Qt CPX.

01:39:17.000 --> 01:39:19.000
Qt CPX.

01:39:19.000 --> 01:39:24.000
It's a tool that allows you to change context.

01:39:24.000 --> 01:39:28.000
What is the context is a QNets cluster.

01:39:28.000 --> 01:39:35.000
So, for example, you in your company have.

01:39:35.000 --> 01:39:45.000
A QNets cluster for development and other for testing and another one for production.

01:39:45.000 --> 01:39:52.000
So with Qt CPX, you can change in which cluster are you going to work.

01:39:52.000 --> 01:40:00.000
So in the next lab, we're going to deploy at least one cluster, additional cluster, just for testing purposes.

01:40:00.000 --> 01:40:05.000
So we can use this and see how we can change between clusters as well.

01:40:05.000 --> 01:40:12.000
That is one which is useful in those environments.

01:40:12.000 --> 01:40:15.000
And the other one is QNs.

01:40:15.000 --> 01:40:23.000
This is super useful because QNs allows you to change between namespaces.

01:40:23.000 --> 01:40:30.000
It turns out that I mean, if you are using pure QNets.

01:40:30.000 --> 01:40:43.000
You may have multiple namespaces, at least each one for your application or perhaps several ones for your application for each one of the environments.

01:40:43.000 --> 01:41:05.000
The namespace can be used, for example, to have for the application one, the development environment for the application one, the testing environment for the application one, the production environment that can be done using namespaces.

01:41:05.000 --> 01:41:12.000
Or you can have application one, two, three, four for the production cluster.

01:41:12.000 --> 01:41:23.000
So you will have different namespaces in the same cluster, but with with different applications in the same cluster separated with different namespaces.

01:41:23.000 --> 01:41:37.000
Or you can have like a mix of those, for example, one application in which you have a namespace for the front end and another namespace for the back end.

01:41:37.000 --> 01:41:43.000
That is that is usual.

01:41:43.000 --> 01:41:52.000
You can see that out in the world is not like the best practice from my point of view, but that happens as well.

01:41:52.000 --> 01:41:57.000
So so that QNs allows you to change that.

01:41:57.000 --> 01:41:59.000
So let me show you here.

01:41:59.000 --> 01:42:05.000
So I'm right now I'm in the default in the default namespace.

01:42:05.000 --> 01:42:19.000
So if I execute a QCTL get all and this means QCTL get all the resources, get me all the resources that are that are available in this namespace.

01:42:19.000 --> 01:42:21.000
I will see only the service.

01:42:21.000 --> 01:42:25.000
There is no other resource at the default namespace.

01:42:25.000 --> 01:42:45.000
If I change to the heat lamp namespace QNs, I will I will I will execute the same comment and I will have the port, which has the running application.

01:42:45.000 --> 01:43:05.000
The service, which is what the one that is exposing the application to the network and the deployment, which is like the manifest with the instructions, the declarative instructions of how to how this application runs.

01:43:05.000 --> 01:43:12.000
And the replica set, which is the one that is in charge of the state machine.

01:43:12.000 --> 01:43:20.000
So the number of ports decided, the sirex, the currents once and the really ones.

01:43:20.000 --> 01:43:23.000
So so I can have information here.

01:43:23.000 --> 01:43:27.000
So this is useful in order to change namespace.

01:43:45.000 --> 01:43:50.000
And some other comments that may be useful here.

01:43:50.000 --> 01:43:53.000
They get notes to see the notes only.

01:43:53.000 --> 01:43:55.000
We have one note only.

01:43:55.000 --> 01:44:01.000
But in the in the next lab, we are going to deploy two notes for a cluster.

01:44:01.000 --> 01:44:03.000
And they get bots.

01:44:03.000 --> 01:44:05.000
We showed you the bots.

01:44:05.000 --> 01:44:12.000
And there is another one, which is kind of cool.

01:44:12.000 --> 01:44:25.000
Explain, for example, if I want to have an explanation of the of the resource, but I can use explain bots.

01:44:25.000 --> 01:44:30.000
And what this is showing me again is the API.

01:44:30.000 --> 01:44:35.000
So it shows me like a summary of the API.

01:44:35.000 --> 01:44:48.000
But this is super useful because there is I mean, there is a lot of stuff here that you are well, that not necessarily one is familiarized with.

01:44:48.000 --> 01:44:50.000
So this this is used as well.

01:44:50.000 --> 01:44:57.000
So please, when you when we run any comment and you have any doubt, you can run these as well.

01:44:57.000 --> 01:45:02.000
And you will have some useful information to work with.

01:45:02.000 --> 01:45:07.000
There is another resource that is useful as well.

01:45:07.000 --> 01:45:10.000
The API resources.

01:45:10.000 --> 01:45:26.000
This shows you if your cluster has these API resource running enabled in which namespace is.

01:45:26.000 --> 01:45:32.000
And well, all the information required to have it.

01:45:32.000 --> 01:45:39.000
So there is a lot of resources that you may have there.

01:45:39.000 --> 01:45:46.000
And there are other comments there, so we can leave those for the next lab.

01:45:46.000 --> 01:45:49.000
So no worries at all.

01:45:49.000 --> 01:45:52.000
OK, so is there any question?

01:45:52.000 --> 01:45:56.000
Let me know if the pace that we have is good enough.

01:45:56.000 --> 01:46:06.000
If you want to spend more time on the labs or just give me feedback whenever you feel that is needed.

01:46:06.000 --> 01:46:11.000
So let's see.

01:46:11.000 --> 01:46:14.000
OK, so this is the.

01:46:14.000 --> 01:46:18.000
But that we had.

01:46:18.000 --> 01:46:26.000
So something just like general information that may be useful, the version of cybernets.

01:46:26.000 --> 01:46:38.000
One of the biggest headaches of cybernets is that if there is a new version and new release every three months and every six months.

01:46:38.000 --> 01:46:46.000
So in a year you may have to upgrade your cybernets cluster at least at least once.

01:46:46.000 --> 01:46:49.000
Usually it should be twice.

01:46:49.000 --> 01:47:03.000
And this is kind of important because the amount of cybernets clusters that are out in the wild without any protection,

01:47:03.000 --> 01:47:11.000
with the APA server exposed, with nodes exposed is absolutely huge.

01:47:11.000 --> 01:47:23.000
I mean, a lot of ransomware attacks have happened because cybernets clusters are.

01:47:24.000 --> 01:47:32.000
Are available in the public Internet and any any.

01:47:32.000 --> 01:47:41.000
Failure or security is exploited and and voila, your infrastructure is compromised.

01:47:41.000 --> 01:47:46.000
So it's good to have this.

01:47:46.000 --> 01:47:59.000
And I am this do not let your cybernets cluster to get behind the versioning too fast because you may face issues as is a really live project.

01:47:59.000 --> 01:48:12.000
The APA tends to change a lot, so you may face failures in your deployments if you let a lot of versioning to pass by.

01:48:12.000 --> 01:48:15.000
So that is something that you need to be aware of.

01:48:15.000 --> 01:48:25.000
Also, the QCTL, the tool to to handle the the cybernets cluster, it allows you to work with a range of versions.

01:48:25.000 --> 01:48:29.000
But also it gets it gets behind the versioning.

01:48:29.000 --> 01:48:34.000
So that should be like already also in place.

01:48:34.000 --> 01:48:38.000
So what can you do with cybernets?

01:48:38.000 --> 01:48:58.000
These these three slides, these three slides are are are useful in the sense that you should check each one of these items over the time, because this is what you can do with cybernets.

01:49:08.000 --> 01:49:15.000
So what can you do, for example, start five containers for a back end?

01:49:15.000 --> 01:49:19.000
This is an example. This is an APA.

01:49:19.000 --> 01:49:26.000
You can place a load balancer, an internal load balancer in front of those containers.

01:49:26.000 --> 01:49:36.000
So whenever something is going to access the back end, you can have the workload balanced.

01:49:36.000 --> 01:49:42.000
You can deploy deploy 10 containers with the front end.

01:49:42.000 --> 01:49:48.000
So you can handle the workload of your virtual store, for example.

01:49:48.000 --> 01:49:55.000
You can place or deploy a public load balancer in front of this architecture.

01:49:55.000 --> 01:50:05.000
If there is a holiday, a spike in the traffic, you can grow that cluster and add containers to handle the load manually.

01:50:05.000 --> 01:50:07.000
You can do that manually, for example.

01:50:07.000 --> 01:50:18.000
If there is a new release of your of your application, you can replace the running containers with the new version of the front end, for example.

01:50:18.000 --> 01:50:26.000
But the beautiful the beauty thing here is that you can do that one at a time without interrupting the service.

01:50:26.000 --> 01:50:39.000
So you can do like a control upgrade, which a few years ago was kind of overwhelming or hardly easy to do.

01:50:39.000 --> 01:50:42.000
So so that is something amazing here.

01:50:42.000 --> 01:50:53.000
And you can now to scale so you can configure the cluster that if there is a lot of CPU requests or usage in your cluster,

01:50:53.000 --> 01:51:00.000
you can launch automatically new parts or even new nodes to handle the load.

01:51:00.000 --> 01:51:05.000
You can schedule and you can manage the resources.

01:51:05.000 --> 01:51:13.000
I mean, you can put constraints on how many CPU, how many RAM a container can consume or can use.

01:51:13.000 --> 01:51:21.000
You can have advanced patterns for deployment or deploy new releases.

01:51:21.000 --> 01:51:29.000
So you can have you can test a new version of your website and keep running the current version.

01:51:29.000 --> 01:51:32.000
And depending on the results, you can move everything to the new version.

01:51:32.000 --> 01:51:36.000
So you have different kind of deployments here.

01:51:36.000 --> 01:51:40.000
You can have batch jobs, for example.

01:51:40.000 --> 01:51:58.000
The you can have a closing process every day that runs on a specific time or you can have a general task to execute only one time and can do that.

01:51:58.000 --> 01:52:06.000
You can control what can be done by someone and on which resources for the cluster.

01:52:06.000 --> 01:52:09.000
You can have a service.

01:52:09.000 --> 01:52:20.000
I mean, this means a service that will memorize is going to memorize the information or keep the data without losing it.

01:52:20.000 --> 01:52:34.000
For example, a database you and this is the is one of the most recent one with the operators with the C or these that just some resource definitions that you can automate complex tasks.

01:52:34.000 --> 01:52:47.000
I think that I guess that we are good in time and we can explore the the the open chip cluster so you can see the amount of operators are available.

01:52:47.000 --> 01:52:52.000
So these three is like show you what you can do right now with cybernets.

01:52:52.000 --> 01:52:59.000
So that is good to have and to check over the time so you can grow in your practice as well.

01:52:59.000 --> 01:53:09.000
So regarding cluster setups for QMS, there are several ways or several deployments available.

01:53:09.000 --> 01:53:22.000
For example, you can have a single node cluster for your developers or for you to try stuff for you to try manifest for you to try different configurations in this single node cluster.

01:53:22.000 --> 01:53:24.000
Everything is in the same place.

01:53:24.000 --> 01:53:27.000
The API, the controllers, the scheduler, the QBlet.

01:53:27.000 --> 01:53:30.000
So it's in the same place.

01:53:30.000 --> 01:53:37.000
Or there are another alternative for deployment is the managed cybernets, which is I think that is the one that you have.

01:53:37.000 --> 01:53:40.000
You have a case in Amazon.

01:53:40.000 --> 01:53:44.000
So so so almost everyone.

01:53:45.000 --> 01:53:54.000
All of the of the cloud providers offer a managed cybernets in which the control plane is handled by them.

01:53:54.000 --> 01:53:57.000
They are the ones responsible for the control plane.

01:53:57.000 --> 01:54:06.000
So they are supposedly they are responsible for backing up the ACCD, the database and have a high availability for the API server.

01:54:06.000 --> 01:54:12.000
So you don't have to deal with this, but you have to deal with the workers.

01:54:12.000 --> 01:54:18.000
So this is the the nodes that you have in the cloud.

01:54:18.000 --> 01:54:20.000
These are your responsibility.

01:54:20.000 --> 01:54:34.000
And for example, in Amazon, you are the one who's in charge of upgrade these nodes whenever Amazon decides to upgrade the control plane.

01:54:34.000 --> 01:54:37.000
So that is something to take into account.

01:54:38.000 --> 01:54:46.000
Another environment that you can deploy is one with a single control plane and multiple workers.

01:54:46.000 --> 01:54:55.000
This is actually pretty common, not the best for production at all, because the control plane is super sensitive.

01:54:55.000 --> 01:54:59.000
If you have an issue with your database, you lost everything.

01:54:59.000 --> 01:55:07.000
So but this is useful for testing purposes or or or or development as well.

01:55:07.000 --> 01:55:12.000
Another architecture may be to have a stack control plane.

01:55:12.000 --> 01:55:17.000
I mean, like multiple control plane, they're the best practices to have at least three.

01:55:17.000 --> 01:55:22.000
Well, actually, to have three more than three is not that common.

01:55:24.000 --> 01:55:29.000
Up to five is the most that you will have, but that must be huge.

01:55:29.000 --> 01:55:31.000
So three is more than enough.

01:55:31.000 --> 01:55:36.000
And here you will have a replication for the database.

01:55:36.000 --> 01:55:51.000
You will have a load balancer for the API so it can distribute the workload between the different API servers that are running and multiple nodes that are connected or access the API.

01:55:51.000 --> 01:55:55.000
API load balancer in order to interact with the control plane.

01:55:55.000 --> 01:56:03.000
So this is actually this is the most common on premises deployment for open chief.

01:56:03.000 --> 01:56:07.000
For example, this is the standard way.

01:56:08.000 --> 01:56:26.000
You can have another architecture here in which you have only three nodes or multiple nodes and all of those nodes are running the both the control plane and both the workers.

01:56:26.000 --> 01:56:36.000
So this is actually another useful structure, but it's not like for production from my point of view.

01:56:36.000 --> 01:56:41.000
From my point of view, this is the one that you should have in production on premises.

01:56:41.000 --> 01:56:44.000
And this is this.

01:56:44.000 --> 01:56:52.000
I mean, if you are comfortable with the cloud managing your control plane, this is the way to go.

01:56:52.000 --> 01:56:56.000
Otherwise, I would recommend this architecture as well.

01:56:56.000 --> 01:57:01.000
Yes, in a infrastructure as a service setup as well.

01:57:01.000 --> 01:57:05.000
And there is more advanced ways to do this.

01:57:05.000 --> 01:57:18.000
If you have a really big configuration, you have you can have multiple APIs, high availability for the controllers and the scheduler and what balancer for the city.

01:57:18.000 --> 01:57:25.000
So there are different ways to do this or to split the traffic as well.

01:57:25.000 --> 01:57:40.000
So these are different ways to do the most important ones will be the single node, the managed, and then where is it?

01:57:40.000 --> 01:57:43.000
This one and the stack control.

01:57:43.000 --> 01:57:47.000
Those are the three most important ones.

01:57:47.000 --> 01:57:56.000
So regarding how to plan for your cluster or how to define the sign, how your cluster should be.

01:57:56.000 --> 01:58:14.000
So at the end, your cluster, I mean, the tested to your nets goes up to five thousand nodes with no more than 110 votes per node and no more than one hundred and fifty thousand votes in total.

01:58:14.000 --> 01:58:23.000
So this will be if you have five thousand nodes and one hundred and fifty thousand votes, it's like 30 votes per node.

01:58:23.000 --> 01:58:26.000
So it's fairly common to have.

01:58:26.000 --> 01:58:31.000
I mean, that your cluster is around this number of votes per node.

01:58:31.000 --> 01:58:40.000
So this is like the role of thumb that you should use to design your cluster for at least one hundred votes per node.

01:58:40.000 --> 01:58:50.000
And what you do here is to estimate how much memory and how much CPU each one of the votes are going to use.

01:58:50.000 --> 01:58:57.000
And you just multiply that and you will have like the amount of memory and CPU that your node requires.

01:59:12.000 --> 01:59:18.000
So that is like the like the general idea here.

01:59:18.000 --> 01:59:22.000
Regarding Docker, you don't really need Docker right now.

01:59:22.000 --> 01:59:27.000
As I told you, we we are using the container engine.

01:59:27.000 --> 01:59:42.000
So there are mostly two options, container container D and container runtime interface, CREO, which is the like the main options.

01:59:42.000 --> 01:59:49.000
IBM, Docker and Canonical are the ones that use container D most of the time.

01:59:49.000 --> 01:59:51.000
Google Cloud use this one.

01:59:51.000 --> 01:59:57.000
And CREO is the one that is used by Rehab, by SAS, SUSE.

01:59:57.000 --> 02:00:03.000
Actually, I'm not sure which one is the one that is being used by Amazon right now.

02:00:03.000 --> 02:00:06.000
So those are the container engines.

02:00:06.000 --> 02:00:08.000
And the Docker was removed.

02:00:08.000 --> 02:00:19.000
Actually, it was last year, almost two years by now in the release one, 24 was completely removed the Docker support.

02:00:19.000 --> 02:00:28.000
So, however, we still need Docker not for the Kubernetes cluster, but for all the development needs that you have as well.

02:00:28.000 --> 02:00:39.000
Regarding installation, well, the cube is what we are going to use here is useful for this purpose.

02:00:39.000 --> 02:00:56.000
But you also have cube ADN, which is the not the official, but the option included with Kubernetes to install a cluster from from the grown up from scratch.

02:00:56.000 --> 02:01:03.000
And Kops is another option to deploy clusters mostly for AWS.

02:01:03.000 --> 02:01:08.000
However, those are not the only options available as well.

02:01:08.000 --> 02:01:16.000
In order to set up Kubernetes, you will need to have in mind all these different components.

02:01:16.000 --> 02:01:22.000
You will have to be aware of the certificates that you need.

02:01:22.000 --> 02:01:32.000
And usually that is not that common, to be honest, to deploy a cluster from scratch.

02:01:32.000 --> 02:01:38.000
Only if you want to to really learn how to do this is recommended.

02:01:38.000 --> 02:01:45.000
Actually, in the in the slides, there is a step by step for you to deploy a cluster using cube ADN.

02:01:45.000 --> 02:01:51.000
So if you want to give that a try, that is a nice weekend project for for sure.

02:01:51.000 --> 02:02:00.000
And right now, what is more common is the well, the managed clusters, I will say is the most common ones.

02:02:00.000 --> 02:02:08.000
And after that, clusters like with Rancher or OpenChip on-premises are the ones that follow,

02:02:09.000 --> 02:02:15.000
because those help you to deploy without too much fast.

02:02:15.000 --> 02:02:20.000
These kind of clusters. So let me let me jump a little bit here.

02:02:20.000 --> 02:02:27.000
I mean, this is what follows is like the same explanation that I just gave.

02:02:27.000 --> 02:02:32.000
So. Cube ADN.

02:02:33.000 --> 02:02:38.000
OK, so the local development clusters, there are several options.

02:02:38.000 --> 02:02:44.000
Docker desktop is that one's for easy. K3D.

02:02:44.000 --> 02:02:52.000
This one is quite nice. It's it runs with Docker and uses K3S,

02:02:52.000 --> 02:02:57.000
which is the one from from Rancher or Susan.

02:02:57.000 --> 02:03:00.000
So if you want to do that right, you can do that as well.

02:03:00.000 --> 02:03:05.000
Kind is another kind of cluster available.

02:03:05.000 --> 02:03:10.000
It's it's also really good as well for development purposes.

02:03:10.000 --> 02:03:15.000
Micro K8A from Canonical from the guys from Ubuntu.

02:03:15.000 --> 02:03:26.000
This is another one popular. Actually, this has been gaining traction because it's really good for end of mile applications.

02:03:26.000 --> 02:03:36.000
For example, in a smart cities, they are using micro K8A and they are using K3S.

02:03:36.000 --> 02:03:45.000
These two kind of clusters to process images in real time or videos in real time and do,

02:03:45.000 --> 02:03:50.000
for example, fashion recognition or situation recognition for security purposes.

02:03:50.000 --> 02:04:02.000
So they have machine learning models running in these little beasts just at the just in the same box as the camera is.

02:04:02.000 --> 02:04:07.000
So this is what the kind of purpose of this kind of clusters.

02:04:07.000 --> 02:04:14.000
Another alternative is open shift for the Dex or open shift local CRC,

02:04:14.000 --> 02:04:29.000
which is a full open shift environment that is useful if you are using open shift within your environment is the way to go for your developers as well.

02:04:29.000 --> 02:04:35.000
Or you can do a custom style for your VM as well.

02:04:35.000 --> 02:04:45.000
So let me before going to the lab, let me show you here in the presentation.

02:04:45.000 --> 02:04:54.000
You will find how to deploy a managed cluster in the cloud for Azure.

02:05:00.000 --> 02:05:07.000
Actually from the cloud, the one that I personally prefer is the Azure, the cluster ATS.

02:05:07.000 --> 02:05:20.000
I think that is the best option from the manager once regarding the easy to use and the flexibility that you can have with this.

02:05:20.000 --> 02:05:27.000
The other one is the Amazon, the ETS, which depends if you install this a lot of a long time ago.

02:05:27.000 --> 02:05:40.000
I mean, it will be better to move to the if you are still using Amazon to the new way to install the cluster because the previous way was to manual.

02:05:40.000 --> 02:05:47.000
And it tends to have a lot of issues that are not easy, solvable.

02:05:47.000 --> 02:06:07.000
So if you happen to have a case cluster for Amazon installed before this this tool, it is control is better to to migrate your cluster to a new to this installation as well.

02:06:07.000 --> 02:06:14.000
And the other one is the from Google that ironically, Google was the one who created two or nuts.

02:06:14.000 --> 02:06:21.000
But I mean, it's I mean, the cloud goes with your taste.

02:06:21.000 --> 02:06:29.000
So Google and Amazon and Azure, each one of them has its pros and cons.

02:06:29.000 --> 02:06:35.000
So it depends on what is your company invested on or what you want to do.

02:06:35.000 --> 02:06:42.000
So Google is a good option, but I personally don't really, really like it a lot.

02:06:42.000 --> 02:06:51.000
Unless you have like a data streaming platform, stuff like that, in which with Google, BigQuery may be a good option as well.

02:06:51.000 --> 02:06:56.000
Yeah. So, yeah, so there is the this lab.

02:06:56.000 --> 02:07:01.000
We are not going to do this lab, but you can go ahead and do it by yourself.

02:07:01.000 --> 02:07:08.000
You just need like the cloud credits available to deploy that and do that installation.

02:07:08.000 --> 02:07:13.000
Also regarding distributions and installers.

02:07:13.000 --> 02:07:23.000
So your net has a lot of certified distributions and a lot of non certified distributions.

02:07:23.000 --> 02:07:30.000
These ones are the that are currently recognized by the cloud foundation.

02:07:30.000 --> 02:07:33.000
So these are the distributions.

02:07:33.000 --> 02:07:40.000
These are the platforms, which are the ones in the clouds.

02:07:40.000 --> 02:07:47.000
And these are the installers, the different installers that are available as well.

02:07:48.000 --> 02:07:56.000
OK, so we're going to go ahead and execute lab, last number two and last number three.

02:07:56.000 --> 02:08:04.000
And the idea for both of these labs is the first lab is to install our cluster.

02:08:04.000 --> 02:08:12.000
But before doing that, we can explore any one of these other clusters.

02:08:12.000 --> 02:08:21.000
I'm going to show you the one from Red Hat so you can have an idea and I'll show you how to install that if you want to.

02:08:21.000 --> 02:08:25.000
But we can deploy one of these as well.

02:08:25.000 --> 02:08:35.000
And the main objective here is to deploy the cluster that we're going to use for the rest of our labs.

02:08:35.000 --> 02:08:43.000
Right. So once we install that, we have installed that we are going to.

02:08:43.000 --> 02:08:46.000
Sorry, we're going to explore where is this.

02:08:46.000 --> 02:08:55.000
We're going to explore a little bit more the API and some more stuff of the QCPL.

02:08:55.000 --> 02:08:58.000
And we're going to explore the commands as well.

02:08:58.000 --> 02:09:06.000
OK, so let me see here.

02:09:06.000 --> 02:09:14.000
OK, so before starting our mini cube cluster, please go to the page eight.

02:09:14.000 --> 02:09:20.000
And here we have two options.

02:09:20.000 --> 02:09:34.000
One is the code ready containers for OpenShift and the other one is the K3S, which is kind of cool.

02:09:34.000 --> 02:09:46.000
The thing with this one is that this installs the QNets in your computer, not in the cluster.

02:09:46.000 --> 02:09:54.000
In your computer, not in a closed environment.

02:09:54.000 --> 02:10:02.000
I mean, so this is super useful if you want to create a cluster on premises, for example.

02:10:02.000 --> 02:10:06.000
So let me let me show you here.

02:10:06.000 --> 02:10:10.000
K3S.

02:10:10.000 --> 02:10:19.000
Actually, I would say this is the best way to deploy a cluster, a full cluster on premises.

02:10:19.000 --> 02:10:24.000
I mean, is there the easiest one?

02:10:24.000 --> 02:10:35.000
So because with this script, you can create the control plane, you can create the worker nodes, you can define.

02:10:35.000 --> 02:10:44.000
OK, I want to have ETCD nodes so you can create different architectures.

02:10:44.000 --> 02:10:54.000
So this is really, really flexible and really powerful to create different scenarios for your needs.

02:10:54.000 --> 02:10:58.000
So that is why this is why this is cool.

02:10:58.000 --> 02:11:01.000
This one.

02:11:01.000 --> 02:11:06.000
So it has different options as well for installation.

02:11:06.000 --> 02:11:15.000
And the other one is the code ready containers from OpenShift.

02:11:15.000 --> 02:11:18.000
So give me just a second.

02:11:18.000 --> 02:11:21.000
I'll show you that.

02:11:29.000 --> 02:11:39.000
OK, so here I have the OpenShift cluster installed from the developer point of view.

02:11:39.000 --> 02:11:48.000
However, you can install this one using Red Hat.

02:11:48.000 --> 02:11:53.000
So this is available for free.

02:11:53.000 --> 02:11:57.000
I mean, there is no cost for installing this.

02:11:57.000 --> 02:12:02.000
So if you don't have an account with Red Hat, you can create one.

02:12:02.000 --> 02:12:04.000
You can register.

02:12:04.000 --> 02:12:07.000
And here is the link.

02:12:07.000 --> 02:12:13.000
So when you register, you can have access to this website, consoleredhat.com.

02:12:13.000 --> 02:12:17.000
So let me share this one with you.

02:12:17.000 --> 02:12:21.000
And here you will have access to OpenShift.

02:12:21.000 --> 02:12:26.000
There are some other stuff, but in this case, we are talking about OpenShift.

02:12:26.000 --> 02:12:31.000
So here in OpenShift, you can deploy your cluster.

02:12:31.000 --> 02:12:40.000
So just let me show you from OpenShift, you can deploy directly in the cloud.

02:12:40.000 --> 02:12:44.000
Oops, I have a cluster, a forgotten cluster here.

02:12:44.000 --> 02:12:47.000
So you can have a...

02:12:47.000 --> 02:12:49.000
Where is it?

02:12:49.000 --> 02:12:50.000
OK, here.

02:12:50.000 --> 02:13:06.000
In Create Cluster, you can go and deploy a cluster in the clouds, in Amazon or in Azure, in IBM or in Amazon as well.

02:13:06.000 --> 02:13:11.000
So these are different clusters that you can deploy directly straight into the cloud.

02:13:26.000 --> 02:13:36.000
And this is amazingly easy because you only need to fill this and it will assist you in installing your cluster.

02:13:36.000 --> 02:13:40.000
So for a professional cluster, this is the way to go.

02:13:40.000 --> 02:13:42.000
And the last one is the local one.

02:13:42.000 --> 02:13:45.000
The local one is the one that I have installed.

02:13:45.000 --> 02:13:48.000
So you can do this.

02:13:48.000 --> 02:13:50.000
I mean, you don't have to pay anything.

02:13:50.000 --> 02:14:02.000
So you just need to download this, the OpenShift Local, copy this full secret and follow the guide for installation of this cluster.

02:14:02.000 --> 02:14:04.000
So give me just a second.

02:14:04.000 --> 02:14:13.000
So this guide gives you the step by step to install the cluster, the OpenShift cluster in your environment.

02:14:13.000 --> 02:14:18.000
So that is something as well.

02:14:18.000 --> 02:14:20.000
Good to do. Nice to do.

02:14:20.000 --> 02:14:25.000
So where is it?

02:14:25.000 --> 02:14:27.000
Here.

02:14:27.000 --> 02:14:29.000
No, where is it? Oh, here.

02:14:29.000 --> 02:14:33.000
So this is the local cluster that I have installed.

02:14:33.000 --> 02:14:37.000
So I can create a new project here.

02:14:37.000 --> 02:14:41.000
Testing.

02:14:41.000 --> 02:14:49.000
And this has this catalog in which I can choose or find what I want to install.

02:14:49.000 --> 02:14:55.000
For example, if I want to install a Quarks application, for example.

02:14:55.000 --> 02:14:58.000
So I can create that application here.

02:14:58.000 --> 02:15:06.000
Or if I want to deploy application, for example, a PHP application with a database.

02:15:06.000 --> 02:15:08.000
So I can do that.

02:15:08.000 --> 02:15:10.000
So let's try that.

02:15:10.000 --> 02:15:18.000
So these are like templates that I can use as the basis for my application.

02:15:18.000 --> 02:15:22.000
So let me just go ahead and install that.

02:15:23.000 --> 02:15:29.000
So this is super useful for...

02:15:29.000 --> 02:15:37.000
This is mostly suited if you are using Red Hat products, but it works in any environment as well.

02:15:37.000 --> 02:15:42.000
So this is nice to have.

02:15:42.000 --> 02:15:47.000
So yeah, let me move this back here.

02:15:53.000 --> 02:15:58.000
And let's go ahead and follow the lead.

02:15:58.000 --> 02:16:06.000
So if you want to install this, the OpenShift one, you just need to run the CRC start.

02:16:06.000 --> 02:16:09.000
But you will require to create an account.

02:16:09.000 --> 02:16:11.000
It doesn't take too long.

02:16:11.000 --> 02:16:16.000
So you can do that and do what I showed you regarding the pull secrets,

02:16:16.000 --> 02:16:22.000
which is the only thing that you need when you run this command in order to have this available.

02:16:22.000 --> 02:16:25.000
Or you can do this one as well.

02:16:25.000 --> 02:16:29.000
This is the K2S cluster.

02:16:29.000 --> 02:16:34.000
This is nice to install as well because it shows you, for example, the QCTL.

02:16:34.000 --> 02:16:37.000
So we can play a little bit with that.

02:16:37.000 --> 02:16:44.000
So I'm going to deploy this one to show the QCTL and the logs.

02:16:44.000 --> 02:16:47.000
But if you want to try this, you are welcome to do it.

02:16:47.000 --> 02:16:56.000
Once we have done that, we are going to move on and create the format cluster for the rest of our labs.

02:16:56.000 --> 02:17:01.000
So if you have any questions, please don't hesitate to ask me.

02:17:06.000 --> 02:17:12.000
I guess we can have at least 20, 30 minutes to do that.

02:17:18.000 --> 02:17:21.000
Be sure to be at the...

02:17:21.000 --> 02:17:24.000
Oh, wait, what happened?

02:17:28.000 --> 02:17:30.000
I copied too much lines.

02:17:30.000 --> 02:17:35.000
Be sure to be at the right directory.

02:17:41.000 --> 02:17:52.000
If you want to go ahead and deploy the Minikube cluster, please erase the previous one, delete the previous one.

02:17:52.000 --> 02:17:56.000
So we don't have any conflicts there.

02:17:58.000 --> 02:18:10.000
Because this cluster that we are going to deploy, we are going to give it 8 gigs of memory to cores.

02:18:10.000 --> 02:18:19.000
And we are going to use the Calico network, which has the ability to create network policies.

02:18:19.000 --> 02:18:29.000
So if we are able, in case that we reach that point, I mean, if we have time available, we can do that practice as well.

02:18:29.000 --> 02:18:34.000
And we are going to add a worker to this cluster.

02:18:34.000 --> 02:18:37.000
So we have two nodes running.

02:18:37.000 --> 02:18:40.000
So that's important.

02:18:40.000 --> 02:18:50.000
In this case, with Minikube, we will have to leave at least two terminals open with the dashboard and with the talent.

02:18:50.000 --> 02:18:54.000
So when you are in that part, let me know so I can show you.

02:18:54.000 --> 02:18:59.000
In the meantime, you can explore the other ones as well.

02:18:59.000 --> 02:19:01.000
You can do a lot for sure.

02:19:01.000 --> 02:19:03.000
It's a nice...

02:19:03.000 --> 02:19:07.000
This is the place to experiment.

02:19:13.000 --> 02:19:15.000
I just installed.

02:19:15.000 --> 02:19:18.000
It's super fast.

02:19:18.000 --> 02:19:27.000
So you can see that this creates the K3S service.

02:19:27.000 --> 02:19:39.000
If I run a journal ctl-xe, I can see all the information regarding that service.

02:19:45.000 --> 02:20:04.000
If I run the psax-cubelet, I will see that this runs a cubelet cluster or service in my node.

02:20:04.000 --> 02:20:10.000
So that's why I like the K3S.

02:20:10.000 --> 02:20:14.000
It's kind of simple, super simple to set up.

02:20:14.000 --> 02:20:22.000
There was a time, I mean, it wasn't that much ago, like two, three years ago.

02:20:22.000 --> 02:20:28.000
No, three, almost four years ago.

02:20:28.000 --> 02:20:33.000
Installing an OpenShift cluster was really, really hard.

02:20:33.000 --> 02:20:38.000
I mean, a pure Kubernetes cluster was kind of mission impossible.

02:20:38.000 --> 02:20:48.000
I mean, it was super hard because you have to do a lot of stuff super manually to create a lot of files.

02:20:48.000 --> 02:20:52.000
So it was not for the faint of heart.

02:20:52.000 --> 02:20:59.000
With OpenShift, it was hard as well, but not that hard.

02:20:59.000 --> 02:21:08.000
You had to create a file, a manifest file with the design that you created for your cluster.

02:21:08.000 --> 02:21:16.000
Create some images and different stuff in order to put together all the stuff required.

02:21:16.000 --> 02:21:29.000
But nowadays, as I showed you, I mean, in the website, you just choose what you want and download an ISO file.

02:21:29.000 --> 02:21:32.000
And that's it. You are good to go.

02:21:32.000 --> 02:21:34.000
With Rancher, it's easy as well.

02:21:34.000 --> 02:21:44.000
Rancher uses K3S and you from the Rancher interface just...

02:21:44.000 --> 02:21:49.000
It gives you a command, which actually it gives you this command.

02:21:49.000 --> 02:22:01.000
This curl sfl get k3si command, but with some parameters that are created by Rancher.

02:22:01.000 --> 02:22:07.000
And with that, you install the cluster super easy as well.

02:22:07.000 --> 02:22:20.000
I was... If you install the K3S, you can play and see here.

02:22:20.000 --> 02:22:32.000
And here we can see the kubect command working because the kubect...

02:22:32.000 --> 02:22:34.000
Oh, what happened?

02:22:34.000 --> 02:22:36.000
kubectl...

02:22:36.000 --> 02:22:38.000
Oh, yeah, sorry.

02:22:38.000 --> 02:22:51.000
Here, no, we are not seeing the kubectl because the installation, in order to not conflict with each other, the installation goes as roots.

02:22:51.000 --> 02:23:00.000
So our user doesn't see the cluster, the K3S cluster.

02:23:00.000 --> 02:23:07.000
So let me... Oh, there is an error in the documents.

02:23:07.000 --> 02:23:13.000
But we can do the systemctl.

02:23:13.000 --> 02:23:17.000
The sudo system is sudo systemctl.

02:23:17.000 --> 02:23:27.000
I missed something there.

02:23:27.000 --> 02:23:38.000
So you want to run here.

02:23:38.000 --> 02:23:49.000
If you run with dash a, and we can do this comparison between the two clusters.

02:23:49.000 --> 02:23:55.000
If you run this, this applies as well to the OpenCube.

02:23:55.000 --> 02:24:00.000
I'm going to do that as well so you can take a look.

02:24:00.000 --> 02:24:03.000
Actually, I may have to install that as well.

02:24:22.000 --> 02:24:24.000
You can see the differences.

02:24:24.000 --> 02:24:30.000
I mean, every cluster is different.

02:24:30.000 --> 02:24:37.000
In this case, we installed the dashboard and some other stuff.

02:24:37.000 --> 02:24:50.000
But, for example, the K3S includes an ingress controller, the tri-effic, which is an ingress controller by default.

02:24:50.000 --> 02:24:53.000
And the metric server.

02:24:53.000 --> 02:24:59.000
So those are details that are nice to analyze.

02:24:59.000 --> 02:25:06.000
And actually, I'm going to launch the OpenCube cluster here as well.

02:25:06.000 --> 02:25:13.000
So I can show you the same.

02:25:13.000 --> 02:25:24.000
If you run the OpenCube, just cancel this log.

02:25:43.000 --> 02:25:47.000
It takes a little bit. It doesn't take that long.

02:25:47.000 --> 02:25:50.000
So it's okay.

02:25:50.000 --> 02:25:55.000
The OpenCube, it creates a user and a password.

02:25:55.000 --> 02:26:01.000
So you need to copy those in order to access the interface.

02:26:11.000 --> 02:26:22.000
When the OpenCube cluster finishes, you will be amazed about the amount of bugs by default that it deploys.

02:26:22.000 --> 02:26:26.000
It's about 100 at least.

02:26:26.000 --> 02:26:29.000
And this is the development cluster.

02:26:29.000 --> 02:26:38.000
The production cluster leaves you, just after installation, almost with 300 bugs.

02:26:38.000 --> 02:26:42.000
So it's a huge monster.

02:26:42.000 --> 02:26:48.000
Let me open another terminal.

02:26:48.000 --> 02:26:54.000
And we can count the number of bugs that each of the clusters has.

02:26:54.000 --> 02:27:04.000
QCPL, dead bugs, dash A, show us all the bugs available in the cluster.

02:27:04.000 --> 02:27:07.000
So I'm going to count those.

02:27:07.000 --> 02:27:15.000
So the Minikube cluster is giving us 12 bugs.

02:27:15.000 --> 02:27:23.000
But this is because we added the dashboard, the headlamp, the metric server.

02:27:23.000 --> 02:27:28.000
So that adds like four bugs, something like that.

02:27:28.000 --> 02:27:32.000
So that is the reason that we have 12.

02:27:32.000 --> 02:27:44.000
And if we do the same with the K3S cluster, let me do the same with sudo.

02:27:44.000 --> 02:27:52.000
K3S, QCPL, dead bugs, dash A.

02:27:52.000 --> 02:27:57.000
Okay, it's less bugs.

02:27:57.000 --> 02:28:00.000
I thought that there were more.

02:28:00.000 --> 02:28:04.000
So it's eight bugs for K3S.

02:28:04.000 --> 02:28:10.000
But this one doesn't have the dashboard installed, for example.

02:28:10.000 --> 02:28:17.000
I'm sending you the commands that I execute in the chat for the teams.

02:28:22.000 --> 02:28:26.000
And let's see how this is going.

02:28:26.000 --> 02:28:39.000
So I think that we have here QCPEX.

02:28:39.000 --> 02:28:46.000
So in this OpenShift, the thing is that this installs a lot of operators.

02:28:46.000 --> 02:28:54.000
Those are like the personalizations that Red Hat has done, and they are including some other stuff.

02:28:54.000 --> 02:29:02.000
OpenShift includes CI, CD, DevOps pipeline ready to use within OpenShift,

02:29:02.000 --> 02:29:07.000
which is the only one that has that available.

02:29:07.000 --> 02:29:16.000
So it's the same approach, but it's included within the cluster.

02:29:16.000 --> 02:29:30.000
I'm going to delete, while the OpenShift finishes, I'm going to delete the minikube cluster and the K3S cluster.

02:29:30.000 --> 02:29:43.000
So we are ready to deploy our power forward cluster.

02:30:24.000 --> 02:30:25.000
Okay.

02:30:51.000 --> 02:30:52.000
Okay.

02:30:54.000 --> 02:30:55.000
Okay, okay.

02:31:00.000 --> 02:31:01.000
Okay.

02:31:01.000 --> 02:31:08.000
While the OpenShift is finishing, let's install the former cluster.

02:31:14.000 --> 02:31:25.000
So in this cluster, we have to leave, or the idea is to leave running the dashboard and the tunnel.

02:31:25.000 --> 02:31:31.000
So we have, or we are able to have like connectivity and stuff like that.

02:31:31.000 --> 02:31:40.000
So with minikube status, I can see status.

02:31:40.000 --> 02:31:43.000
I can see if I have anything here.

02:31:43.000 --> 02:31:49.000
I don't have, so I'm just going to configure the setup by default.

02:31:49.000 --> 02:31:53.000
It only uses like two gigs of memory and one CPU.

02:31:53.000 --> 02:32:03.000
So I'm configuring here to use two cores, because this is what is going to be used by each one of the nodes.

02:32:03.000 --> 02:32:07.000
And the server has four nodes, four cores, sorry.

02:32:07.000 --> 02:32:16.000
So it will be two cores and memory.

02:32:16.000 --> 02:32:23.000
And the memory, it will be eight gigs, because we are going to deploy a lot of stuff.

02:32:23.000 --> 02:32:44.000
So that is the minikube start and minikube start with the network calico, which is one of the network plugins available.

02:32:44.000 --> 02:32:46.000
Well, one of the most popular.

02:32:46.000 --> 02:32:48.000
We are going to discuss that a little bit later.

02:32:48.000 --> 02:32:57.000
But for example, Amazon has its own, their own network plugin.

02:32:57.000 --> 02:33:09.000
So the way that the network is handled in Amazon is a little bit different from the standard.

02:33:09.000 --> 02:33:23.000
And they had to do that because of the mess that they have inside.

02:33:49.000 --> 02:33:50.000
OK, perfect.

02:33:50.000 --> 02:33:52.000
So I finished my installation.

02:33:52.000 --> 02:33:58.000
If I run a minikube status, I can see what is running.

02:33:58.000 --> 02:34:05.000
If I run a minikube node list, I can see the nodes that I have available.

02:34:05.000 --> 02:34:18.000
I'm going to add the node, the worker node for the, in order to have the nodes available for my cluster.

02:34:47.000 --> 02:34:49.000
If you have advanced, you can go ahead and start.

02:34:49.000 --> 02:34:54.000
I'm going to go ahead and start the lab tree.

02:34:54.000 --> 02:35:00.000
Because there are a lot more options available.

02:35:00.000 --> 02:35:04.000
And there we are going to create in the lab tree.

02:35:04.000 --> 02:35:13.000
The idea is that we are going to explore the API within the cluster and we are going to install a few, well, one application.

02:35:13.000 --> 02:35:21.000
What's the best way to uninstall the OpenShift cluster?

02:35:21.000 --> 02:35:25.000
What is the what? Come on, man.

02:35:25.000 --> 02:35:29.000
What's the best way to uninstall the OpenShift cluster?

02:35:29.000 --> 02:35:32.000
To uninstall? Well, you want to stop it.

02:35:32.000 --> 02:35:34.000
Just crc stop.

02:35:34.000 --> 02:35:37.000
So that will stop your cluster.

02:35:37.000 --> 02:35:41.000
And then crc delete, I guess.

02:35:41.000 --> 02:35:44.000
But with the stop, you can stop it.

02:35:44.000 --> 02:35:46.000
Awesome.

02:35:49.000 --> 02:35:51.000
Oh, it finishes here.

02:35:51.000 --> 02:35:55.000
So let me show you real quick.

02:35:55.000 --> 02:35:59.000
I'm going to access the OpenShift console here.

02:36:07.000 --> 02:36:17.000
So this creates a domain, an internal domain for testing purposes, the CRC testing.

02:36:17.000 --> 02:36:21.000
And here is the.

02:36:21.000 --> 02:36:26.000
The user and the password, the Q admin.

02:36:26.000 --> 02:36:28.000
Which is the standard.

02:36:28.000 --> 02:36:32.000
The Q admin is the standard name.

02:36:32.000 --> 02:36:36.000
For this. So Q admin.

02:36:50.000 --> 02:36:55.000
So here is the administrator view for QNets.

02:36:55.000 --> 02:37:03.000
It has some information, statistical information for the cluster, the version, the events.

02:37:03.000 --> 02:37:09.000
But if you recall the dashboard, and I'm going to show here.

02:37:09.000 --> 02:37:15.000
This is the standard, the open source QNets dashboard.

02:37:15.000 --> 02:37:22.000
And this is the world laws, the services, the conflict and the storage, which are the resources, as I told you.

02:37:22.000 --> 02:37:30.000
If you take a look in the OpenShift, you will find the same workloads with the pods.

02:37:30.000 --> 02:37:34.000
With the deployments.

02:37:34.000 --> 02:37:38.000
So this is fairly big.

02:37:38.000 --> 02:37:42.000
So let me see if we can take.

02:37:48.000 --> 02:37:52.000
If we can take the amount of.

02:37:52.000 --> 02:37:56.000
If we can count the amount of pods of this cluster.

02:37:56.000 --> 02:38:00.000
So here I'm using the QCTX, the context.

02:38:00.000 --> 02:38:08.000
And please notice that I have three different options or contexts to work with.

02:38:08.000 --> 02:38:20.000
So this is because when we install a QNets cluster, it creates a file which is called the QCubedConfig file.

02:38:20.000 --> 02:38:22.000
So.

02:38:22.000 --> 02:38:24.000
So this QCubedConfig file.

02:38:24.000 --> 02:38:31.000
The name is QCubedConfig because it's located at the Q folder and the file is conflict.

02:38:31.000 --> 02:38:40.000
So this QCubedConfig file has the information required to access each one of the clusters using a token.

02:38:40.000 --> 02:38:43.000
So there is an entry for each cluster.

02:38:43.000 --> 02:38:47.000
So all the clusters that you install will create.

02:38:47.000 --> 02:38:53.000
The information, an entry there.

02:38:53.000 --> 02:39:03.000
So with QCubedCtx, I can change to the cluster to the series CRC-admin.

02:39:03.000 --> 02:39:08.000
And here I am in the cluster in the QNets cluster.

02:39:08.000 --> 02:39:17.000
So if I run and get all, you will see the astonishing, astonishing amount of objects.

02:39:17.000 --> 02:39:22.000
Well, for a for a for a cluster of this kind.

02:39:22.000 --> 02:39:28.000
And if I list the pods, it showed me the amount of pods available.

02:39:28.000 --> 02:39:31.000
I'm going to count those.

02:39:31.000 --> 02:39:43.000
And in this case, we have 68, 68 pods by default against the 12 from Minikube and the 8 from KJS.

02:39:43.000 --> 02:39:49.000
So you can have an idea of how big this can be.

02:39:49.000 --> 02:39:53.000
And let me go back to Minikube.

02:39:53.000 --> 02:39:58.000
I don't want to be in the other side.

02:39:58.000 --> 02:40:05.000
And just to explore a little bit, actually in the in the.

02:40:05.000 --> 02:40:10.000
In this other cluster, I have installed.

02:40:10.000 --> 02:40:13.000
An application.

02:40:13.000 --> 02:40:16.000
So I'm just showing you here.

02:40:16.000 --> 02:40:22.000
This is the application that I deploy in the cluster.

02:40:22.000 --> 02:40:27.000
So here we can access to the service.

02:40:27.000 --> 02:40:41.000
Let's see. Well, it seems that it has some issues, but you can have here like a graphical interface to obtain information regarding the application and everything.

02:40:41.000 --> 02:40:54.000
So in this case, the MySQL database work, but it seems that these this have this has some issues here.

02:40:54.000 --> 02:41:00.000
So it's not running. But this is like the like the full stack.

02:41:00.000 --> 02:41:06.000
It has, for example, the helm charts are included here.

02:41:06.000 --> 02:41:09.000
The operators as well.

02:41:09.000 --> 02:41:14.000
The the from a thousand it's included here.

02:41:14.000 --> 02:41:20.000
So it's a different beast at all.

02:41:20.000 --> 02:41:25.000
And OK, let me let me continue.

02:41:25.000 --> 02:41:30.000
See, see.

02:41:30.000 --> 02:41:32.000
OK, so.

02:41:32.000 --> 02:41:38.000
I'm going to OK, I have the Minikub cluster deployed.

02:41:38.000 --> 02:41:44.000
I added the nodes.

02:41:44.000 --> 02:41:59.000
I am going to see the bots.

02:41:59.000 --> 02:42:10.000
And OK, so I was I was telling you that we needed to.

02:42:10.000 --> 02:42:14.000
To launch the dashboard and the tunnel.

02:42:14.000 --> 02:42:17.000
Let me see the notes here first.

02:42:17.000 --> 02:42:23.000
If you there is some comments there, for example, this dash of white.

02:42:23.000 --> 02:42:34.000
This is important because this shows you what do you have in those nodes, the get nodes dash of white.

02:42:34.000 --> 02:42:40.000
It shows you more information. And if you want to describe.

02:42:40.000 --> 02:42:46.000
An object, for example, a node, so describe the node, the Minikub node.

02:42:46.000 --> 02:42:50.000
You can see a lot of information there.

02:42:50.000 --> 02:42:54.000
Which for debugging purposes will be super useful.

02:42:54.000 --> 02:43:03.000
So it's good to be accustomed to these comments so you get familiarized with them over the time.

02:43:03.000 --> 02:43:06.000
If you haven't.

02:43:06.000 --> 02:43:08.000
If you haven't yet.

02:43:08.000 --> 02:43:13.000
So I'm going to launch the dashboard from this terminal.

02:43:13.000 --> 02:43:15.000
So Minikub dashboard.

02:43:15.000 --> 02:43:17.000
This will be my dashboard.

02:43:17.000 --> 02:43:27.000
The idea is, I mean, as we are going to deploy several applications and do a lot of stuff, it's good to take a look into the dashboard to see what is happening to explore.

02:43:27.000 --> 02:43:29.000
So be curious.

02:43:29.000 --> 02:43:38.000
Be be be move around and see what is happening all over the cluster because it has a lot of moving parts.

02:43:38.000 --> 02:43:48.000
So it's super easy to miss something that may be useful or interesting to analyze.

02:43:48.000 --> 02:43:50.000
In some of the labs.

02:43:50.000 --> 02:43:52.000
So.

02:43:52.000 --> 02:43:54.000
There you go.

02:43:54.000 --> 02:43:58.000
And this this terminal should not be closed.

02:43:58.000 --> 02:44:00.000
So please leave it.

02:44:00.000 --> 02:44:02.000
Leave that open.

02:44:02.000 --> 02:44:05.000
And I'm going to open the tunnel.

02:44:05.000 --> 02:44:11.000
So what I'm going to do here is to well let me first I'm going to change positions.

02:44:11.000 --> 02:44:20.000
I'm going to put this down there.

02:44:20.000 --> 02:44:26.000
So I'm switching places.

02:44:26.000 --> 02:44:32.000
And I'm going to split this in half.

02:44:32.000 --> 02:44:35.000
Sorry.

02:44:35.000 --> 02:44:38.000
I'm going to split this vertical.

02:44:38.000 --> 02:44:40.000
So I'm going to run the tunnel here.

02:44:40.000 --> 02:44:43.000
Minikubed tunnel.

02:44:43.000 --> 02:44:50.000
We're going to use that later, but it's better to leave it running there.

02:44:50.000 --> 02:44:58.000
So this is the this is this will be our load balancer for the for the cluster.

02:44:58.000 --> 02:45:00.000
Like the F5 or something like that.

02:45:00.000 --> 02:45:02.000
It's some prices.

02:45:02.000 --> 02:45:06.000
And what else do I need to enable the metric server?

02:45:06.000 --> 02:45:14.000
I need to enable that Minikubed at once enable metrics.

02:45:14.000 --> 02:45:16.000
Sorry.

02:45:16.000 --> 02:45:21.000
Sorry.

02:45:21.000 --> 02:45:22.000
OK.

02:45:22.000 --> 02:45:23.000
So is there.

02:45:23.000 --> 02:45:26.000
So we can take a look on the configuration.

02:45:26.000 --> 02:45:30.000
We don't need to stop this.

02:45:30.000 --> 02:45:36.000
We are going to leave this running.

02:45:36.000 --> 02:45:42.000
And we can see the add-ons that are available.

02:45:42.000 --> 02:45:46.000
So there are a lot of add-ons for Minikubed, which is nice.

02:45:46.000 --> 02:45:48.000
We are just going to use a few.

02:45:48.000 --> 02:45:53.000
Well, actually, I think these are the ones that we are going to use.

02:45:53.000 --> 02:45:58.000
And let me see the notes.

02:45:58.000 --> 02:46:01.000
Note list.

02:46:01.000 --> 02:46:02.000
OK.

02:46:02.000 --> 02:46:04.000
All is good.

02:46:04.000 --> 02:46:12.000
So for the lab tree, the lab tree, we have some more stuff here.

02:46:12.000 --> 02:46:15.000
The services with CPL.

02:46:15.000 --> 02:46:20.000
Feel free to explore those services.

02:46:20.000 --> 02:46:27.000
If you want to explore multiple objects at the same time, you can use a command.

02:46:27.000 --> 02:46:39.000
So for example, and there is like short shortcuts to in order to not use the whole name replica sets, you can use RS.

02:46:39.000 --> 02:46:42.000
So you can do that.

02:46:42.000 --> 02:46:53.000
If you are the dash dash all main spaces, you can see everything in the cluster or with the dash.

02:46:53.000 --> 02:46:55.000
Upper case a.

02:46:55.000 --> 02:46:57.000
So it's shorter.

02:46:57.000 --> 02:46:59.000
That is also good.

02:46:59.000 --> 02:47:05.000
You can see, for example, here the coffee's maps.

02:47:05.000 --> 02:47:10.000
So everything here are the objects that are available.

02:47:10.000 --> 02:47:14.000
They would sit.

02:47:14.000 --> 02:47:20.000
I don't remember the name of the technique for stateful sex.

02:47:20.000 --> 02:47:23.000
So this is everything that you have there.

02:47:23.000 --> 02:47:27.000
And it is drive and all that stuff that is useful to have.

02:47:27.000 --> 02:47:35.000
So here we are going to create a name space in order to test the cube and S.

02:47:35.000 --> 02:47:36.000
You want to.

02:47:36.000 --> 02:47:44.000
But what I want you to do is to deploy the A the the the API.

02:47:44.000 --> 02:47:47.000
So let me show you here.

02:47:47.000 --> 02:47:51.000
So we're going to create.

02:47:51.000 --> 02:47:56.000
And name space for.

02:47:56.000 --> 02:47:58.000
These namespace.

02:47:58.000 --> 02:48:01.000
We're going to create these namespace.

02:48:01.000 --> 02:48:02.000
This is just an example.

02:48:02.000 --> 02:48:04.000
The namespace.

02:48:04.000 --> 02:48:08.000
But what we want to do here is to deploy this application.

02:48:08.000 --> 02:48:11.000
Perhaps you are familiarized with these applications.

02:48:11.000 --> 02:48:16.000
Swagger UI, which is an interface to explore APIs.

02:48:16.000 --> 02:48:19.000
So this one is also useful.

02:48:19.000 --> 02:48:28.000
There is this URL that you can use to explore the API for.

02:48:28.000 --> 02:48:29.000
For two minutes.

02:48:29.000 --> 02:48:35.000
So let's create that namespace.

02:48:35.000 --> 02:48:38.000
You can do that.

02:48:38.000 --> 02:48:41.000
From the dashboard as well.

02:48:41.000 --> 02:48:47.000
And you we're going to use only comments.

02:48:47.000 --> 02:48:56.000
Short comments, but you can try using the web to deploy applications as well.

02:48:56.000 --> 02:49:04.000
So the namespace and change to that namespace, because if you don't change the namespace,

02:49:04.000 --> 02:49:14.000
When you deploy the application, that application will be installed in the in the default namespace or in the namespace that you are in.

02:49:14.000 --> 02:49:18.000
So you may want to have that separated.

02:49:18.000 --> 02:49:24.000
This is important to notice, for example, the cube system is the is the.

02:49:24.000 --> 02:49:37.000
The system namespace, the more important namespace for Kubernetes, because here in in cube system, all of the all the.

02:49:37.000 --> 02:49:49.000
Deployments that are related to the control plane to the worker are to the controllers to all the stuff that we were discussing are here.

02:49:49.000 --> 02:49:57.000
So if you take a look to that namespace, you bash system.

02:49:57.000 --> 02:50:06.000
There there should not be any end user application here is not the good practice.

02:50:06.000 --> 02:50:10.000
This should be only for system applications.

02:50:10.000 --> 02:50:17.000
For example, you can install here the promise to use and the elastic stack here, for example, that will be a good fit.

02:50:17.000 --> 02:50:22.000
Usually you create a different namespace for that, but it will be like that.

02:50:22.000 --> 02:50:28.000
And so, OK, I mean, we respect if I get.

02:50:28.000 --> 02:50:32.000
You get all the things here.

02:50:32.000 --> 02:50:38.000
It will show me everything that is within these namespace, right?

02:50:38.000 --> 02:50:42.000
So if I want to do that.

02:50:42.000 --> 02:50:50.000
I mean, if I'm in the namespace, I don't need to to refer to the namespace with the dash and option.

02:50:50.000 --> 02:50:54.000
As I did here, you system.

02:50:54.000 --> 02:51:04.000
So if you are not in the right namespace, be sure to execute your comments with the dash and.

02:51:04.000 --> 02:51:12.000
And namespace name. So that is that is why we are using to to this.

02:51:12.000 --> 02:51:22.000
OK, so in this case, we are going to deploy this application using a common, which is.

02:51:22.000 --> 02:51:27.000
They run the cube CTL run.

02:51:27.000 --> 02:51:37.000
We were well in the next lab, we're going to discuss that in more detail, but this is like the imperative way of deploy an application,

02:51:37.000 --> 02:51:50.000
which is inherited by Docker. I mean, the way in with Docker when you wanted to run an application, what you did was to Docker run application.

02:51:50.000 --> 02:51:56.000
So this cube CTL is like the equivalent to that Docker run.

02:51:56.000 --> 02:52:07.000
So in this case, we are wrong. We are going to run swagger UI, which is using this image swagger API, swagger UI.

02:52:07.000 --> 02:52:13.000
Let me show you where that image comes from.

02:52:13.000 --> 02:52:18.000
So, I mean, everything is affiliated or linked to Docker.

02:52:18.000 --> 02:52:23.000
I mean, Docker, I will say that it will stay for a long time.

02:52:23.000 --> 02:52:31.000
It's not it won't change, but.

02:52:31.000 --> 02:52:35.000
Why is why I'm not looking here?

02:52:35.000 --> 02:52:38.000
OK.

02:52:38.000 --> 02:52:51.000
Also, I will say almost all of the labs have the the the calls for the application.

02:52:51.000 --> 02:53:05.000
We don't have the time, but it's possible if you have, I mean, if you do the labs fast enough, obviously understand everything that you can create the application,

02:53:05.000 --> 02:53:10.000
the image with Docker and push that image to Docker Hub and stuff from there.

02:53:10.000 --> 02:53:14.000
So that is something that you can do if you want to try that.

02:53:14.000 --> 02:53:20.000
Just let me know and we can give it a try so you can see how it's done.

02:53:20.000 --> 02:53:24.000
Otherwise, we're going to use public images available.

02:53:24.000 --> 02:53:29.000
So in this case, this is the one that I wanted to show you this swagger UI.

02:53:29.000 --> 02:53:41.000
So let me show you before this image is it's downloaded 50 million times, 50 million downloads.

02:53:41.000 --> 02:53:44.000
So it's fairly common.

02:53:44.000 --> 02:53:52.000
And this is like the different versions that are available, the tags for this image.

02:53:52.000 --> 02:53:58.000
So this is just a Docker image that you can use in Docker, in this case, in Kubernetes.

02:53:58.000 --> 02:54:01.000
So everything is there. All the information is there.

02:54:01.000 --> 02:54:07.000
So that is the one that it's being used here is this the same one.

02:54:07.000 --> 02:54:18.000
So what I want to show you here is that Kubernetes by default is pointing to the Docker Hub registry.

02:54:18.000 --> 02:54:30.000
And that Docker Hub registry has a bunch of images, thousands of images that can be used in your applications.

02:54:30.000 --> 02:54:32.000
There is a quick there.

02:54:32.000 --> 02:54:47.000
I mean, you should be aware that these images may be or may have security issues or may have not that reliable.

02:54:47.000 --> 02:54:50.000
So you have to be careful with that.

02:54:50.000 --> 02:54:56.000
Try to use images from trusted providers.

02:54:56.000 --> 02:55:02.000
There are another registers available, for example, while from Red Hat.

02:55:02.000 --> 02:55:08.000
But also you can have your own registry in order to manage that.

02:55:08.000 --> 02:55:11.000
So that is important to have in there.

02:55:11.000 --> 02:55:14.000
So let's install this.

02:55:14.000 --> 02:55:17.000
This is our view.

02:55:17.000 --> 02:55:24.000
Whenever you install something, you may want to check, for example, the events.

02:55:24.000 --> 02:55:27.000
So we get events.

02:55:27.000 --> 02:55:31.000
You can see what is happening in real time.

02:55:31.000 --> 02:55:35.000
If there is any error, you will see it here.

02:55:36.000 --> 02:55:46.000
You also want to get box because that is the best way to see if everything went around smoothly.

02:55:46.000 --> 02:55:50.000
So with get box, you should see the running.

02:55:50.000 --> 02:55:55.000
So let me explain a little bit about how what we are what we are seeing here.

02:55:55.000 --> 02:56:06.000
So when you run get, what you are doing is asking the API server to bring all the information regarding these resource in this case spots.

02:56:06.000 --> 02:56:12.000
So you will have the name of the part, the status of the part.

02:56:12.000 --> 02:56:23.000
And this is one of one, which means one part is ready from one expected expected.

02:56:23.000 --> 02:56:26.000
But so this is this is perfect.

02:56:26.000 --> 02:56:35.000
You may see here zero slash one, which means there is one part expected and zero is ready.

02:56:35.000 --> 02:56:40.000
Or you can see two is like two or three slash three, whatever.

02:56:40.000 --> 02:56:43.000
So that is what is shown here.

02:56:43.000 --> 02:56:52.000
And the status, if it's running or if it's failing, you will see that the number of restarts and how old this part is running.

02:56:52.000 --> 02:57:00.000
So you will see I mean, QNets is a platform that is designed to never be turned up.

02:57:00.000 --> 02:57:05.000
So cover net is a platform that it's supposed to be up.

02:57:06.000 --> 02:57:09.000
Twenty four, seven, three, sixty five days per year.

02:57:09.000 --> 02:57:21.000
So whenever you have a deployment, you will see that the age is months or or even years, depending on the application or the amount of changes that you.

02:57:21.000 --> 02:57:37.000
Do on that application. So at the end of this training, you will see one to days of age in each one of the parts because no matter if we stop the cluster or not, it counts the time from the beginning.

02:57:37.000 --> 02:57:40.000
So OK, so we are good there.

02:57:40.000 --> 02:57:45.000
Now, what we are going to do is to expose the.

02:57:46.000 --> 02:57:51.000
The the the cluster, let me show you something first.

02:57:51.000 --> 02:57:57.000
So if I run again, all the only result that I have here is the past.

02:57:57.000 --> 02:58:04.000
So if I want to access a path, I need to publish that pop in the network.

02:58:04.000 --> 02:58:11.000
So there are different kinds of service, which is the name of this.

02:58:11.000 --> 02:58:16.000
And those are the ways to publish the the part in the network.

02:58:16.000 --> 02:58:19.000
So we're going to do that later.

02:58:19.000 --> 02:58:27.000
The explanation. But right now, what we're going is to expose the part, the name in a specific part.

02:58:27.000 --> 02:58:38.000
And we are going to use the the cluster IP address, the mini cube IP and the type of service exposed is not part.

02:58:38.000 --> 02:58:47.000
A wish is just exposing in the local machine the port that is being published.

02:58:47.000 --> 02:58:59.000
So if I do that and run again, all I will have an external IP address, which is the IP address and a port, a publishing port.

02:58:59.000 --> 02:59:07.000
So that is where I'm supposed to go to to see the our friend swagger UI.

02:59:07.000 --> 02:59:11.000
So I'm going to open that.

02:59:13.000 --> 02:59:17.000
You are all. And he shows me the swagger.

02:59:17.000 --> 02:59:24.000
It shows the store by default, but just copy the.

02:59:24.000 --> 02:59:30.000
The files that you are the URL for the file.

02:59:30.000 --> 02:59:33.000
Let me copy that.

02:59:41.000 --> 02:59:49.000
Just wanted to double check that the recording is still running. Yeah, it's every four hours.

02:59:49.000 --> 02:59:52.000
It changes.

02:59:52.000 --> 02:59:54.000
Yeah, yeah, yeah. Yeah.

02:59:54.000 --> 02:59:57.000
Every four hours, it finishes and starts all over again.

02:59:57.000 --> 03:00:01.000
Oh, actually, it's three hours here.

03:00:01.000 --> 03:00:04.000
It says record.

03:00:04.000 --> 03:00:06.000
I think it is.

03:00:06.000 --> 03:00:10.000
And yeah, sure.

03:00:10.000 --> 03:00:15.000
And let me paste that and explore.

03:00:15.000 --> 03:00:21.000
So here I'm opening the JSON file for the API, the coordinates API.

03:00:21.000 --> 03:00:33.000
So here we have basically the same that we have seen in different ways from Qt, CPL or from from the.

03:00:33.000 --> 03:00:37.000
And the API resources documentation in the web.

03:00:37.000 --> 03:00:44.000
So here is all the JSONs for every one of the objects.

03:00:44.000 --> 03:00:53.000
And when we are using Qt, CPL, what we are doing is to interact via JSON with the API.

03:00:53.000 --> 03:00:57.000
So this is this is like everything that is there.

03:00:57.000 --> 03:01:01.000
You can explore that.

03:01:01.000 --> 03:01:16.000
This is like the difference in points available for API, for metrics, for health and additions that may appear.

03:01:16.000 --> 03:01:25.000
Every API has different kinds of of resources and versions.

03:01:25.000 --> 03:01:34.000
So the version one, you will notice, for example, version one, Vita or version two, Vita or Alpha.

03:01:34.000 --> 03:01:37.000
So it depends on the object for resource.

03:01:37.000 --> 03:01:41.000
So here will you will find everything that is here.

03:01:41.000 --> 03:01:44.000
This is the version two of one.

03:01:44.000 --> 03:01:47.000
So everything is in there.

03:01:47.000 --> 03:01:58.000
So just take a few minutes to explore this and let me know if you have any questions.

03:01:58.000 --> 03:02:02.000
So we can keep going as well.

03:02:18.000 --> 03:02:21.000
What time is it? What time do you have over there?

03:02:23.000 --> 03:02:25.000
OK, so it's about OK.

03:02:25.000 --> 03:02:32.000
I will say if you want to, we can go for lunch now.

03:02:32.000 --> 03:02:36.000
I mean, this will be the right moment.

03:02:36.000 --> 03:02:37.000
Yeah, I'm doing that.

03:02:37.000 --> 03:02:39.000
OK. OK.

03:02:39.000 --> 03:02:42.000
So it's OK.

03:02:42.000 --> 03:02:48.000
We have one hour for lunch or do you want to have just half or four?

03:02:48.000 --> 03:02:53.000
I'll be working my dog, which will take me about 45 minutes.

03:02:53.000 --> 03:02:55.000
I'll just do it in your time.

03:02:55.000 --> 03:02:57.000
Anything else?

03:02:57.000 --> 03:02:59.000
Yeah, that's coming on.

03:02:59.000 --> 03:03:02.000
So the hour or 45?

03:03:02.000 --> 03:03:03.000
Yeah, yeah.

03:03:03.000 --> 03:03:04.000
OK, cool.

03:03:04.000 --> 03:03:06.000
So see you in an hour, guys.

03:03:06.000 --> 03:03:09.000
And we'll keep going.

03:03:09.000 --> 03:03:11.000
Everything good?

03:03:11.000 --> 03:03:12.000
Yeah.

03:03:12.000 --> 03:03:13.000
OK, cool.

03:03:13.000 --> 03:03:15.000
Awesome.

03:03:15.000 --> 03:03:16.000
Catch you in an hour.

03:03:16.000 --> 03:03:18.000
OK.

03:04:16.000 --> 03:04:33.000
OK.

03:05:10.000 --> 03:05:13.000
So let's wake up.

03:05:15.000 --> 03:05:35.000
So what we did so far or what we have done so far is to explore the Internet a little bit from several points of views.

03:05:35.000 --> 03:05:42.000
From directly from the API or directly from the Cube CTL.

03:05:42.000 --> 03:06:01.000
And by now we should have executed a few Cube CTL comments, which over the time you should learn by memory and use day by day.

03:06:01.000 --> 03:06:18.000
Also, we explore a few distros of Kubernetes and deploy our formal cluster for the labs.

03:06:18.000 --> 03:06:24.000
This is a mini cube cluster.

03:06:24.000 --> 03:06:30.000
This shows us the information we have for it.

03:06:30.000 --> 03:06:37.000
So this is the information for the cluster, the dump.

03:06:37.000 --> 03:06:47.000
If you want to have a full view of what's inside your cluster, you can run the cluster info dump.

03:06:47.000 --> 03:07:01.000
That will show you tons of information and is useful because over the time your cluster starts filling with like garbage.

03:07:01.000 --> 03:07:14.000
Pots that were evicted or pots that are failing or pots that are not in use or errors that show up and no one is really aware of those.

03:07:14.000 --> 03:07:37.000
So this dump is a good idea to have a copy of the dump from time to time because it will help you to understand over the months or years of usage how it has evolved and understand things of your system.

03:07:42.000 --> 03:07:51.000
Also, we deploy the dashboard that we have the Kubernetes dashboard with the plugin for the mini cube and the tunnel.

03:07:51.000 --> 03:08:04.000
So we are able to provide access from the network to applications that are deployed inside our kernel.

03:08:04.000 --> 03:08:10.000
And finally, we deployed our first application, right?

03:08:10.000 --> 03:08:15.000
Which is this Wager UI in a very basic form.

03:08:15.000 --> 03:08:29.000
What is important to have in mind here is that it's always the best practice to have a namespace for each one of your applications.

03:08:29.000 --> 03:08:34.000
So try to do that always.

03:08:34.000 --> 03:08:47.000
And obviously, if it makes sense, because if you are deploying components of the same application, you want those components all to be in the same namespace.

03:08:47.000 --> 03:08:52.000
So to not have different namespace for each component.

03:08:52.000 --> 03:08:54.000
Okay, that's it.

03:08:54.000 --> 03:09:04.000
Is there any question that you have or doubt that may be in your minds right now?

03:09:04.000 --> 03:09:06.000
Okay, cool.

03:09:06.000 --> 03:09:11.000
So let's continue.

03:09:11.000 --> 03:09:17.000
So, well, we see that.

03:09:17.000 --> 03:09:32.000
Okay, so this I'm not going to into details here, but with cube ADN, you can create your own cluster.

03:09:32.000 --> 03:09:38.000
So there are some stuff here which is useful.

03:09:38.000 --> 03:09:47.000
For example, the option cube CTL create deployment, which helps you to create a deployment from scratch.

03:09:47.000 --> 03:09:51.000
So that will be useful sometimes.

03:09:51.000 --> 03:10:07.000
Or if you want to create a cluster by yourself, this is as I said, for educational purposes, it will be a good idea for understanding a little bit behind the scenes.

03:10:07.000 --> 03:10:15.000
What is happening, for example, in the Linux world, there is a project called Linux from scratch.

03:10:15.000 --> 03:10:28.000
In this project, you create a Linux distribution completely from scratch, exactly as Richard Stallman did and the service did back in the day.

03:10:28.000 --> 03:10:37.000
So that is a great way to learn Linux to the highest or to the deepest level possible.

03:10:37.000 --> 03:10:43.000
So this kind of stuff is good for in order to do the same with Kubernetes.

03:10:43.000 --> 03:10:55.000
So if you want to go deep inside Kubernetes, it will be a good idea to try this in some free time you have or whenever you are up to.

03:10:55.000 --> 03:11:05.000
Because in this there is like all the process that is followed in order to have a running one node cluster in this case.

03:11:05.000 --> 03:11:22.000
So here you can install the API server running the service by hand, manually the ATCD connecting the server with the ATCD, start using the QC, deployments.

03:11:22.000 --> 03:11:34.000
So this is like a step by step process in order to deploy a full functional cluster with one node.

03:11:34.000 --> 03:11:40.000
So every one of the of the components that you may need are skipped.

03:11:54.000 --> 03:12:09.000
Well, so regarding high availability within QNets, first of all, you have to be aware that a few years ago before QNets,

03:12:09.000 --> 03:12:22.000
was mass adopted, having high availability within a company, within an application, within a service was really complex.

03:12:36.000 --> 03:12:51.000
control to balancing to IP addressing service able to monitor when another service went down or not.

03:12:51.000 --> 03:13:00.000
So having high availability within the company was a really high complex requirement.

03:13:00.000 --> 03:13:12.000
So thinking that today, nowadays with QNets, you are able to have high availability load balancing with just one line of code.

03:13:12.000 --> 03:13:29.000
It's amazing. I mean, I had the possibility of implement a lot of clusters with pacemaker and core sync and all that stuff from Linux.

03:13:29.000 --> 03:13:40.000
And I mean, this is just fascinating to be able to do that all to do what we did before QNets as simple as it's now.

03:13:40.000 --> 03:13:49.000
So this is really, really powerful. And it's one of the reasons why QNets is so high, highly adopted or widely adopted.

03:13:49.000 --> 03:14:02.000
So anyway, some basics that we need to have super clear and sometimes one can think that that we know this, but it's not that certain.

03:14:02.000 --> 03:14:11.000
So first of all, within QNets, you have the node, a worker node where your applications are running.

03:14:11.000 --> 03:14:28.000
And within that node, you can have multiple pods. Each pod is like the machine is like the server, the CPU and memory and networking stack is here in this part.

03:14:28.000 --> 03:14:37.000
This part has an IP address and inside the pod is where you have the containers.

03:14:37.000 --> 03:14:45.000
So the container is the image of your application that is running inside your pod.

03:15:07.000 --> 03:15:12.000
So it's important to know where is this IP address.

03:15:12.000 --> 03:15:21.000
And please notice that this IP address will be shared between these container engines and this container logger.

03:15:21.000 --> 03:15:35.000
So if you have a service here running in the same port at the same port that this other container, you will have an issue, a problem because it's only one TCP IP stack.

03:15:35.000 --> 03:15:41.000
So this is good to be clear about.

03:15:41.000 --> 03:15:51.000
So how do we scale? How do we scale this cluster? I mean, this is an engine with a logger. So I want to have multiple engines.

03:15:51.000 --> 03:15:59.000
So one option is to create more pods. Each pod may be in a different node.

03:15:59.000 --> 03:16:06.000
So you can have multiple pods in different nodes and each pod must have its own IP address.

03:16:06.000 --> 03:16:12.000
You want to add multiple engines inside this because of what I just told you.

03:16:12.000 --> 03:16:26.000
But there are some caveats here. So for example, if you have a web application with, for example, a cache server, a Redis or Memcache for sessions handling.

03:16:26.000 --> 03:16:35.000
For example, you may have that engines container with the Redis container in the same pod.

03:16:35.000 --> 03:16:47.000
And if you have that architecture, you will have high performance between the engine server and the Redis cache server because they are in local host.

03:16:47.000 --> 03:16:54.000
So the network traffic is local. So there are no virtually no delay at all.

03:16:54.000 --> 03:17:00.000
However, you will have to scale both of them together always.

03:17:00.000 --> 03:17:11.000
So you will have if you want or need 10 engines servers, you will have to deploy 10 Redis service as well.

03:17:11.000 --> 03:17:20.000
And the needs of scaling for Redis versus engines may not be the same.

03:17:20.000 --> 03:17:26.000
So you will have to like analyze which is what I want or what is best for me.

03:17:26.000 --> 03:17:36.000
Also, you can have different pods, which is like the standard and common way in which each pod will be scaled separately.

03:17:36.000 --> 03:17:49.000
So you will have multiple engines containers running each one on its own pod as well as Redis multiple Redis containers each one running at its own pod.

03:17:49.000 --> 03:17:57.000
But in this case, you will have a network communication between these pods and that will require.

03:17:57.000 --> 03:18:06.000
And let me show you. I think I think I don't have it. Oh, yeah, I have it here.

03:18:06.000 --> 03:18:18.000
So let me go and that will require something like that, like this, so that the the package that needs to travel from the engine server will have to.

03:18:18.000 --> 03:18:35.000
We'll have to cross or traverse across the different interfaces, virtual interfaces, network steps in order to reach the another or the other.

03:18:50.000 --> 03:19:04.000
However, however, when you are discussing deployments with thousands of pods, hundreds of applications, the traffic, the network traffic,

03:19:04.000 --> 03:19:17.000
the CPU usage because of that, the APA server being had, but all hammered by all of those pods and services and everything will make a toll.

03:19:17.000 --> 03:19:25.000
So this is stuff that you may want to consider depending on your use case as well.

03:19:25.000 --> 03:19:30.000
But for typical usage, it's OK. There is no no issue at all.

03:19:30.000 --> 03:19:47.000
So regarding this, there are in order to access to do load balancing, to access the services that are available within a cluster, you will have to use certain resources.

03:19:47.000 --> 03:19:56.000
The most common or popular ones are the services, which are the cluster AP, the port and the load balancer.

03:19:56.000 --> 03:20:18.000
If you want a little bit of complexity in the way that you have the access and perhaps convenience as well, you may want you may want to have an ingress controller to to to control the access to for the HTTP services that are published.

03:20:18.000 --> 03:20:31.000
And also you will leverage or the cluster will leverage on the service discovery in order to access other resources, which is mostly the environment variables as well.

03:20:46.000 --> 03:21:00.000
But using the nodes API and unique port of this node while the load balancer gives you the the possibility of the of publish a service.

03:21:00.000 --> 03:21:12.000
Which is running internally using an external load balancer provided by your cloud or your premises infrastructure.

03:21:12.000 --> 03:21:21.000
Usually this is hard on premises. This requires requires some work and is fairly common.

03:21:21.000 --> 03:21:40.000
We have a manual configuration here at the load balancer because it's not I mean, it requires a certain effort to integrate the load balancer, the external load balancer with kubernetes.

03:21:40.000 --> 03:21:50.000
Most recent load balancers have are able to or can be integrated directly because they now support kubernetes.

03:21:50.000 --> 03:21:55.000
But a few years ago, that was in the case in the case of ingress.

03:22:11.000 --> 03:22:16.000
So let's get a little bit into this.

03:22:16.000 --> 03:22:19.000
OK, so.

03:22:21.000 --> 03:22:25.000
So I just told you about these types of services.

03:22:25.000 --> 03:22:32.000
There is another one named the external name and another which is the IP address, which are not that common.

03:22:32.000 --> 03:22:38.000
External IP, which are not that common, but it's available as well.

03:22:39.000 --> 03:22:44.000
The standard one, the default one is the cluster IP.

03:22:44.000 --> 03:22:52.000
This cluster IP service is a virtual IP address, which is allocated for each one of the services that are deployed.

03:22:52.000 --> 03:23:01.000
Be aware that you can deploy bots or applications and not assign a service to that application.

03:23:01.000 --> 03:23:10.000
So that is which was the case right now with the swagger UI in which we run the path, the image.

03:23:10.000 --> 03:23:19.000
But we had to to create or to expose the service in order to to be able to reach that application.

03:23:19.000 --> 03:23:22.000
So this is important to notice, for example.

03:23:22.000 --> 03:23:25.000
How does the cluster IP work?

03:23:25.000 --> 03:23:47.000
If you are an external user, either an application or a human, and you want to access from outside this application with cluster IP, you won't be able to because the cluster IP only provides access for internal members of the cluster, internal bots.

03:23:47.000 --> 03:24:04.000
And this uses the QB proxy, which is a table at the end or QB router, which is routing layer two and ceiling, which is another plugin or well, actually different plugins of that will allow you to get access.

03:24:04.000 --> 03:24:10.000
Also, these these let me go back.

03:24:12.000 --> 03:24:26.000
So these well, I miss to tell you that this this spot, if this spot wants to communicate with the green bots, it access this IP address.

03:24:26.000 --> 03:24:29.000
But also there is the service discovery.

03:24:29.000 --> 03:24:54.000
So the service discovery, which is the best current practice or the or the best practice within a service and within an application in cybernets is to use the service name, which is the name or the well, the deployment name for accessing the service.

03:24:54.000 --> 03:24:57.000
No matter which IP address gets assigned.

03:24:57.000 --> 03:25:05.000
So in this case, the bot wants to access this service disorder service using the name.

03:25:05.000 --> 03:25:09.000
So thanks to Corbyn S, which was a few years.

03:25:09.000 --> 03:25:13.000
Well, actually, one year ago, it was QDNS.

03:25:13.000 --> 03:25:16.000
But now it's Corbyn S.

03:25:16.000 --> 03:25:27.000
Thanks to this service, you will have internal DNS resolution that maps every service to the IP address that is assigned by default.

03:25:27.000 --> 03:25:39.000
Please don't remember that if these spots are relocated or are deleted and launched again, the IP address will change.

03:25:39.000 --> 03:25:42.000
So but the name will remain.

03:25:42.000 --> 03:25:48.000
So this is why it's so important to access using not the IP, but the name.

03:25:48.000 --> 03:25:51.000
Yeah. So that's it.

03:25:51.000 --> 03:25:56.000
Now, the load balancer, the load balancer is the.

03:25:56.000 --> 03:26:05.000
It's external, usually from the cloud or as I told you, from infrastructure provided internally.

03:26:05.000 --> 03:26:09.000
This will cost in the in the in the clouds.

03:26:09.000 --> 03:26:17.000
But it's common to have access using node port before accessing load balancer.

03:26:17.000 --> 03:26:22.000
The issue here with that part is that you are exposing the nodes.

03:26:22.000 --> 03:26:28.000
So it's not a good practice out in the wild.

03:26:28.000 --> 03:26:31.000
So you have to be careful with that.

03:26:31.000 --> 03:26:41.000
So in this case, we do have the green parts using cluster IPA and the purpose using a service cluster IPA.

03:26:41.000 --> 03:26:47.000
So you create for the red ones a lot balancer.

03:26:47.000 --> 03:26:55.000
In this case, the access to the red service will always use the DNS, the load balancer,

03:26:55.000 --> 03:27:00.000
which points to the IP address corresponding IP address for those ports.

03:27:00.000 --> 03:27:05.000
So the internal communication will use this load balancer in order to access there.

03:27:05.000 --> 03:27:14.000
When you expose this service, it will request an external IP address.

03:27:14.000 --> 03:27:21.000
This external IP address will be provided by your adjacent infrastructure.

03:27:21.000 --> 03:27:33.000
Let's say your provider, your internal network in this case in me, you will be a minute to know the one that gives us this.

03:27:33.000 --> 03:27:37.000
So here it goes.

03:27:37.000 --> 03:27:39.000
So these are load balancers.

03:27:39.000 --> 03:27:46.000
The one really popular is the metal load balancer, which is a software load balancer that you can install.

03:27:46.000 --> 03:27:54.000
The H8 proxy is also another super common load balancer.

03:27:54.000 --> 03:28:03.000
OpenShift in the version three, they use H8 proxy as the default load balancer.

03:28:03.000 --> 03:28:07.000
And now the engines is another one that is being used.

03:28:07.000 --> 03:28:14.000
And the traffic is another one that is commonly used in these scenarios as well.

03:28:14.000 --> 03:28:25.000
So these load balancers will give you an external IP address that external IP address will be available for external users.

03:28:25.000 --> 03:28:37.000
So they will hit this external IP address and will be able to access the ports as the same as this before.

03:28:37.000 --> 03:28:43.000
Also, you can create here.

03:28:43.000 --> 03:28:49.000
I mean, you can expose here ports.

03:28:49.000 --> 03:28:58.000
You can expose here ports, particular ports for each one of the services that are here.

03:28:58.000 --> 03:29:06.000
So, for example, in this case, the port 80 points to the port 3080.

03:29:06.000 --> 03:29:15.000
And so here there is like this mapping that allows you to access the different services within the cluster as well.

03:29:15.000 --> 03:29:20.000
And that is handled by the load balancer, the way that is balanced.

03:29:23.000 --> 03:29:30.000
These ports are the ones that are publicly exposed by the nodes.

03:29:30.000 --> 03:29:47.000
So Kubernetes or the networking component has to be aware of which ports are being used because it may, I mean, it cannot share the same port between in the same node.

03:29:47.000 --> 03:29:50.000
I mean, this port will be unique for this service.

03:29:50.000 --> 03:29:58.000
The three hundred eighty will be unique for the red and it will be the same port in the other nodes.

03:29:58.000 --> 03:30:04.000
These are two different nodes. It will be the same accessible from here.

03:30:04.000 --> 03:30:12.000
So in this case, the load balancer is connecting to these node ports.

03:30:12.000 --> 03:30:19.000
In the previous case, it was connecting to the IP address directly as well.

03:30:19.000 --> 03:30:30.000
And here, so these these ones were not able to access directly closer, but here they are able to access the closer.

03:30:33.000 --> 03:30:44.000
This means also that if you are in the cloud, you must be aware that your node may be exposed if it's not properly configured.

03:30:44.000 --> 03:30:54.000
So I mean, and this is one of the ways in which the hackers find find Kubernetes clusters in the Internet.

03:30:54.000 --> 03:31:03.000
They start scanning usually the API server port, which is the six forty four three is the common one or the eight forty four three.

03:31:03.000 --> 03:31:07.000
And they find API servers open to the public.

03:31:07.000 --> 03:31:23.000
And the other way that they do is to scan for ports in this range, which is the standard range used by a keyword that and find nodes with ports exposed and completely open.

03:31:23.000 --> 03:31:28.000
So that is that is something to be aware of.

03:31:30.000 --> 03:31:43.000
So the node port, it goes from three thirty thousand to thirty two thousand seven hundred sixty seven range.

03:31:43.000 --> 03:31:47.000
This port will be the same for all of the nodes.

03:31:47.000 --> 03:32:00.000
And that is because remember that it may happen that this spot has multiple instances running each one instance for each one of the nodes.

03:32:00.000 --> 03:32:06.000
Or it may happen that this spot needs to be relocated to the other port.

03:32:06.000 --> 03:32:13.000
So this port will always be like tied to the to the port or to the service in question.

03:32:13.000 --> 03:32:17.000
So it's the same. You don't can be used.

03:32:17.000 --> 03:32:31.000
And if you are configuring or using these node port, you will have to be to handle that as well manually.

03:32:31.000 --> 03:32:36.000
So that is why the load balancer is the best way to work with.

03:32:36.000 --> 03:32:41.000
There is another one which is not that common is the external name.

03:32:41.000 --> 03:32:43.000
This is this external name.

03:32:43.000 --> 03:32:55.000
What that what this does is to use that DNS entry and the DNS entry is handled by the external load balancer to access the service.

03:32:56.000 --> 03:32:58.000
The same with external IP.

03:32:58.000 --> 03:33:13.000
Actually, we are going to use this in one of the labs because the external IP allows you to map already wrote IP address within our system to the service that we are deploying in a specific port.

03:33:14.000 --> 03:33:25.000
Also, there are headless services which are services that doesn't or don't use UDP or TCP to communicate.

03:33:25.000 --> 03:33:30.000
So they are using, for example, G or PC or something like that.

03:33:30.000 --> 03:33:36.000
So in these cases, those are headless services that doesn't need to be published.

03:33:36.000 --> 03:33:51.000
And in this case, we use a cluster IP none in the manifest or in the in the running line in order to don't to not have a service assignment as well.

03:33:51.000 --> 03:33:56.000
So this is a certain kind of services.

03:33:56.000 --> 03:34:06.000
You can always describe the service and you will see the endpoints and the host and IP address available for that service as well.

03:34:06.000 --> 03:34:12.000
If you want to see the endpoints, well, we don't have yet.

03:34:20.000 --> 03:34:28.000
So here you will see like the with with the endpoints, you will see the full URL that you can access.

03:34:28.000 --> 03:34:32.000
So that whereas with services.

03:34:35.000 --> 03:34:41.000
You see the IP address and the ports, so it's different.

03:34:41.000 --> 03:34:48.000
So here you you need to think how is how can I access this?

03:34:48.000 --> 03:34:53.000
For example, and here you can see that directly the end point.

03:34:55.000 --> 03:34:59.000
So you can run that later as important.

03:34:59.000 --> 03:35:01.000
These is endpoints.

03:35:01.000 --> 03:35:03.000
There is because it's in plural.

03:35:03.000 --> 03:35:09.000
There is no there is no end point in similar resource as well.

03:35:09.000 --> 03:35:17.000
So every other nodes, node deployment, deployments, those are you can use both names as well.

03:35:17.000 --> 03:35:26.000
Another kind of resource here is the ingress, which is only for HTTP and for TLS.

03:35:30.000 --> 03:35:49.000
So usually what happens here with ingress is that you have a wildcard certificate configured at the ingress and with with URL rewriting or mapping,

03:35:49.000 --> 03:35:56.000
you and allow to use the same certificate for all the services that are exposed in your cluster.

03:35:56.000 --> 03:36:00.000
So it's one common way to work with that.

03:36:00.000 --> 03:36:05.000
So in this case, in this example, we have the ingress controller here.

03:36:05.000 --> 03:36:15.000
This is pointing to load balancer has an IP address, has these ports exposed, the 80 and the 44 tree.

03:36:15.000 --> 03:36:25.000
So here this this service provides the termination services and the load balancer services.

03:36:25.000 --> 03:36:34.000
And it connects to the controller within the cluster and this controller, the engines, the traffic, the proxy or the.

03:36:37.000 --> 03:36:39.000
So I forgot the name.

03:36:39.000 --> 03:36:43.000
The. Ambassador is another one.

03:36:43.000 --> 03:36:54.000
So these are these are the ones the controllers that handle the access to the services within the cluster from a unique point of view.

03:36:54.000 --> 03:36:58.000
There is something important here with this approach.

03:36:58.000 --> 03:37:08.000
With this approach, you only need one IP address for accessing the whole cluster, any of the applications that are available in the cluster.

03:37:08.000 --> 03:37:12.000
With the load balancer approach.

03:37:12.000 --> 03:37:22.000
You will require one IP address, one IP address for each one of the load balancer inputs.

03:37:22.000 --> 03:37:29.000
So that is a big difference, because you have a lot of applications using load balancers.

03:37:29.000 --> 03:37:37.000
One is called ECB. So so that is why we use ingress ingress as well.

03:37:37.000 --> 03:37:46.000
This means obviously this requires like an extra job in order to reach the actual workload.

03:37:46.000 --> 03:37:52.000
So it may include some latency.

03:37:52.000 --> 03:38:04.000
But there are some some stuff that allows you to to handle the way of the traffic is done to have a lot of balancing.

03:38:04.000 --> 03:38:06.000
In different ways.

03:38:10.000 --> 03:38:13.000
This works like a standard load balancer.

03:38:13.000 --> 03:38:24.000
If one of the nodes fails or there is no way to connect, it just ignores that node and sends the request to the available node.

03:38:24.000 --> 03:38:30.000
So so that is like the standard way to do this.

03:38:34.000 --> 03:38:37.000
We are going to deploy some applications in this lab.

03:38:37.000 --> 03:38:45.000
But before doing that, let me show you talk about one of the applications that we are going to use during the training.

03:38:45.000 --> 03:38:50.000
I mean, there are several applications that we can work with.

03:38:50.000 --> 03:38:53.000
This is one of the applications.

03:38:53.000 --> 03:39:05.000
What I would recommend to you guys is to do the exercises using the application proposed in the in the specific lab,

03:39:05.000 --> 03:39:12.000
but also using this application because this application is a little bit more complex.

03:39:12.000 --> 03:39:22.000
Not that much, but it's it's kind of I mean, it has a certain architecture that can be that can show you a lot of these concepts.

03:39:22.000 --> 03:39:25.000
In a fairly interesting way.

03:39:25.000 --> 03:39:32.000
So within the labs, we are using my basic applications and stuff like that.

03:39:32.000 --> 03:39:34.000
So please do that.

03:39:34.000 --> 03:39:38.000
But also try the same in lab with the Docker coins application.

03:39:38.000 --> 03:39:41.000
So so that's why I explain this.

03:39:41.000 --> 03:39:49.000
So this application, it's a it's kind of a cryptocurrency,

03:39:49.000 --> 03:39:52.000
cryptocurrency, but it's not a cryptocurrency.

03:39:52.000 --> 03:39:55.000
It's like a mean.

03:39:55.000 --> 03:40:09.000
So with Docker coin and what you do is to create Docker coins, which at the end is to generate a random bytes hash those bytes.

03:40:09.000 --> 03:40:19.000
And every time that it finishes the hash, increments the counter because that is like a new Docker coin created.

03:40:19.000 --> 03:40:27.000
It's like the same principle of of Bitcoin and everything, but with a very simple hash.

03:40:27.000 --> 03:40:32.000
So it won't take years to have a new coin.

03:40:32.000 --> 03:40:46.000
So this counter will show us the speed of meaning of these Docker coins and is that it showed us the graphic with the with the container.

03:40:46.000 --> 03:40:56.000
So what happens with this application that we can escape the application if we want to increase the number of coins created.

03:40:56.000 --> 03:41:04.000
We can play moving the application from or the or the back end of the application to one of the nodes or to multiple nodes.

03:41:04.000 --> 03:41:11.000
So so that is like the idea behind this application has five services.

03:41:11.000 --> 03:41:16.000
One service is the RNG, the random generator.

03:41:16.000 --> 03:41:25.000
This is a web service which creates the random bytes, the hasher, which computes the hash for those random bytes.

03:41:25.000 --> 03:41:32.000
The worker, which is the one who calls or which calls the random generator and the hasher.

03:41:32.000 --> 03:41:47.000
The web UI, which is the interface to see the progress of the meaning and redis, which is our back end to store the data of the how many Docker coins we have created.

03:41:47.000 --> 03:41:52.000
So these that the store is updated by the worker.

03:41:52.000 --> 03:41:56.000
So the worker is the one who interacts with redis as well.

03:41:56.000 --> 03:42:02.000
So there is five services within that.

03:42:02.000 --> 03:42:05.000
How this work?

03:42:05.000 --> 03:42:08.000
The worker invokes the random generator.

03:42:08.000 --> 03:42:11.000
The worker invokes the hasher.

03:42:11.000 --> 03:42:16.000
The worker does this always are wild forever.

03:42:16.000 --> 03:42:19.000
I mean, if you need to loop, it doesn't stop ever.

03:42:19.000 --> 03:42:27.000
So if the worker face, I mean, there is panic because everything stops working.

03:42:27.000 --> 03:42:29.000
So the worker should never fail.

03:42:29.000 --> 03:42:38.000
And every second, the worker updates the redis back end showing how many loops it has done.

03:42:38.000 --> 03:42:42.000
So how many Docker coins has been created?

03:42:42.000 --> 03:42:49.000
The web UI, where is this back end and shows us the hash speed in the browser.

03:42:49.000 --> 03:42:52.000
So this is the architecture.

03:42:52.000 --> 03:42:58.000
The user gets the HTTP interface.

03:42:58.000 --> 03:43:01.000
Web UI using TCP.

03:43:01.000 --> 03:43:04.000
It connects to the redis to read the information.

03:43:04.000 --> 03:43:16.000
So the web UI is just a glorified database reader and the worker, which is the main back end, invokes or interacts with a web service.

03:43:16.000 --> 03:43:19.000
So there are no other protocols here.

03:43:19.000 --> 03:43:23.000
Just TCP, the random, the hasher and the redis.

03:43:23.000 --> 03:43:27.000
So that is like the application.

03:43:28.000 --> 03:43:37.000
So we got in line with the idea is that we have four labs to to to run this evening.

03:43:37.000 --> 03:43:45.000
So the first one will be let me show you what the first one is to deploy applications and explore networking.

03:43:45.000 --> 03:43:50.000
The other one is for high availability and scale workloads.

03:43:50.000 --> 03:44:05.000
I think it's worth for us to create the ingress controller as well and to create the demon sets so we can understand the difference between a replica set, a demon set deployment.

03:44:05.000 --> 03:44:12.000
So I would suggest that let's do all of these labs today.

03:44:12.000 --> 03:44:23.000
So let me go to the document here so we can take a look to the labs.

03:44:23.000 --> 03:44:27.000
I'll explain them to you.

03:44:27.000 --> 03:44:35.000
So, well, the first one, the lab for applications, deploying applications with bots and exploring the networking options.

03:44:35.000 --> 03:44:38.000
So what this is like the introduction.

03:44:38.000 --> 03:44:47.000
There are some comments here that are the usual or the typical comments that you may use when you want to accomplish this task.

03:44:47.000 --> 03:44:54.000
So these are just like for example purposes, not proper comments to execute in this lab.

03:44:54.000 --> 03:45:00.000
And this is the in this case, this is the proper lab to execute.

03:45:00.000 --> 03:45:09.000
Please. Here we are using a very simple application, multi tool, which is like another Swiss Army knife.

03:45:09.000 --> 03:45:12.000
This has been in this look up.

03:45:12.000 --> 03:45:14.000
How's this?

03:45:14.000 --> 03:45:19.000
I mean, this is an application that you may want to use within your own kernel.

03:45:19.000 --> 03:45:26.000
I'll give her next closer story because this allows you to diagnose what is happening in the kernel.

03:45:26.000 --> 03:45:28.000
So this is useful for that.

03:45:28.000 --> 03:45:32.000
So we can use that do the lab with this.

03:45:32.000 --> 03:45:39.000
But I strongly suggest that you deploy the Docker coin as well.

03:45:39.000 --> 03:45:48.000
I'll show you there is another lab in which we work directly with Docker coin, but it's it's probably simple what we want to do here.

03:45:48.000 --> 03:45:53.000
So OK, so first we will create the namespace.

03:45:53.000 --> 03:45:57.000
We are using something that is called an imperative deployment.

03:45:57.000 --> 03:46:11.000
This imperative deployment is just like the option of run an image, the one that we did previously or or with the command create deployment.

03:46:11.000 --> 03:46:12.000
What's the difference?

03:46:12.000 --> 03:46:23.000
When you use QCTL run, what you are doing is telling the cluster to run the path and nothing else.

03:46:23.000 --> 03:46:38.000
When you say use create deployment, you are telling the cluster, OK, please, let's say that will create a deployment, a replica set and the path, obviously.

03:46:38.000 --> 03:46:45.000
So it goes a little bit further than the wrong comment.

03:46:45.000 --> 03:46:52.000
Now, when we have that, we are going to discuss the deployment and the replica set like concept.

03:46:52.000 --> 03:46:56.000
So we agree on the meaning of this.

03:46:56.000 --> 03:46:59.000
So first, we create the namespace.

03:46:59.000 --> 03:47:02.000
After that, deploy the multi-tool image.

03:47:02.000 --> 03:47:05.000
Then we can test the deployment.

03:47:05.000 --> 03:47:10.000
So in order to test the deployment, we expose service.

03:47:10.000 --> 03:47:26.000
In this case, we are going to use we are going to use a node port service and we are going to access using the IP and others.

03:47:26.000 --> 03:47:31.000
So there are some comments here that will allow you to obtain that information.

03:47:31.000 --> 03:47:33.000
Oh, please notice.

03:47:33.000 --> 03:47:34.000
OK, yeah.

03:47:34.000 --> 03:47:40.000
So here you will find like the IP address so you can run this comments.

03:47:40.000 --> 03:47:54.000
Let me know if you have issues copying these because sometimes it gets like I mean the PDF file changes or damages these characters.

03:47:54.000 --> 03:47:59.000
So sometimes you need to copy and paste that for you.

03:47:59.000 --> 03:48:09.000
Once you have that access the service and you will see the this comment, you can execute.

03:48:09.000 --> 03:48:20.000
Well, it's not there, but I'll show you how to access the pod so you can explore also the tools that are within the cluster.

03:48:20.000 --> 03:48:24.000
Now, that will be the the imperative deployment.

03:48:24.000 --> 03:48:27.000
The other one will be the declarative deployment.

03:48:27.000 --> 03:48:31.000
In this case, what we are using is a Jamf file.

03:48:31.000 --> 03:48:36.000
So in this case, we are going to deploy engines.

03:48:36.000 --> 03:48:41.000
Engines and so engines, the Jamf file with engines.

03:48:41.000 --> 03:48:50.000
It's here, but I will show you.

03:48:50.000 --> 03:48:56.000
It's here in the in the folder K8A's advanced labs.

03:48:56.000 --> 03:49:01.000
Actually, let me it's better to see to see it here.

03:49:01.000 --> 03:49:04.000
So in this visual studio code, we have those files.

03:49:04.000 --> 03:49:09.000
So here you will find the engines Jamf.

03:49:09.000 --> 03:49:15.000
So this is this is called the declarative.

03:49:15.000 --> 03:49:22.000
Because.

03:49:22.000 --> 03:49:30.000
Because it declares rather than see, but it declares or explains how the deployment will be.

03:49:30.000 --> 03:49:35.000
So, oh, my God, let me see.

03:49:35.000 --> 03:49:38.000
OK, there is one.

03:49:38.000 --> 03:49:40.000
We can correct that here.

03:49:40.000 --> 03:49:43.000
I just noticed that there is an error here.

03:49:43.000 --> 03:49:50.000
This this name, this line namespace should be the same name of the namespace that you have created.

03:49:50.000 --> 03:49:56.000
So I'm going to check if there is something in the version of the file that was updated.

03:49:56.000 --> 03:49:59.000
But it will take a while.

03:49:59.000 --> 03:50:10.000
So with this NX, NX Jamf file, we create a deployment and we can see what happens and how it differs from the previous one.

03:50:10.000 --> 03:50:17.000
So also the service discovery will be like the like the like the same as well.

03:50:17.000 --> 03:50:23.000
Later in the same lab, we will create different services.

03:50:23.000 --> 03:50:28.000
So the cluster IP.

03:50:28.000 --> 03:50:31.000
The lab balancer and the node port.

03:50:31.000 --> 03:50:35.000
So we can explore the different ways to do that.

03:50:35.000 --> 03:50:41.000
So please go ahead and let's work with that.

03:50:41.000 --> 03:50:46.000
I'm going to to do it as well.

03:50:46.000 --> 03:50:50.000
So, but feel free to advance on your own.

03:50:50.000 --> 03:50:57.000
And just if you have any doubt, please don't hesitate in asking me.

03:50:57.000 --> 03:51:01.000
I'm here to help you with this.

03:51:01.000 --> 03:51:05.000
So.

03:51:05.000 --> 03:51:18.000
I'm going to check what happened with the file.

03:51:18.000 --> 03:51:23.000
OK, now it's only one file that had the error.

03:51:23.000 --> 03:51:26.000
So.

03:51:26.000 --> 03:51:27.000
We can fix it.

03:51:27.000 --> 03:51:33.000
You can fix it without issue.

03:51:33.000 --> 03:51:39.000
Remember to use the QBEN S command.

03:51:39.000 --> 03:51:45.000
To change the namespace and be there.

03:51:45.000 --> 03:51:52.000
So if you want to see which namespaces are available with QCTL get NS.

03:51:52.000 --> 03:51:59.000
And if you want to see in which namespace are you in with QNs, you can do it.

03:51:59.000 --> 03:52:02.000
So it shows me that I'm in the main space.

03:52:02.000 --> 03:52:08.000
So in the instructions, there is no for this lab is not the QNs.

03:52:08.000 --> 03:52:09.000
I need that.

03:52:09.000 --> 03:52:15.000
So actually, I'm going to have this in the file for the next version.

03:52:15.000 --> 03:52:19.000
But please be sure to be aware of that.

03:52:19.000 --> 03:52:25.000
So you don't lose.

03:52:25.000 --> 03:52:37.000
Don't deploy the applications in the different namespace.

03:52:37.000 --> 03:52:44.000
I use NS instead of namespace.

03:52:44.000 --> 03:52:49.000
There is a lot of stuff.

03:52:49.000 --> 03:52:54.000
Also, you can create an alias to QCTL.

03:52:54.000 --> 03:52:57.000
Let me show you.

03:52:57.000 --> 03:53:00.000
Because that is super useful.

03:53:00.000 --> 03:53:05.000
So you don't have to write QCTL all the time.

03:53:05.000 --> 03:53:11.000
So that is actually that is available in the sheet.

03:53:11.000 --> 03:53:15.000
Let me show you.

03:53:15.000 --> 03:53:22.000
So where is it?

03:53:34.000 --> 03:53:37.000
Oh, it's not here.

03:53:37.000 --> 03:53:40.000
It was here.

03:53:40.000 --> 03:53:46.000
Let me show you.

03:53:46.000 --> 03:53:52.000
So what you do is just alias K equal QCTL.

03:53:52.000 --> 03:54:03.000
And with that, you every time that you type K, you will have you will need to write everything.

03:54:03.000 --> 03:54:07.000
So if you want to do that, that will be super nice.

03:54:07.000 --> 03:54:10.000
It will help you.

03:54:10.000 --> 03:54:17.000
But just make yourself comfortable.

03:54:17.000 --> 03:54:33.000
OK, don't forget to change your namespace.

03:54:33.000 --> 03:54:47.000
Also, it would be a great idea if you type the comments, not just copy, but try at the beginning to to to type down the comment.

03:54:47.000 --> 03:54:56.000
And that is because your brain learns more if you use your hands to type.

03:54:56.000 --> 03:55:08.000
I mean, if you make that link between what your brain is reading and what your hands are typing, that will be a better way to get familiarized with these comments.

03:55:08.000 --> 03:55:13.000
Over the time, you will do this automatically.

03:55:13.000 --> 03:55:15.000
And it won't matter if you copy or not.

03:55:15.000 --> 03:55:19.000
But it will be a good idea for you to try to copy.

03:55:19.000 --> 03:55:26.000
Obviously, if it's too big, you need to help yourself.

03:55:26.000 --> 03:55:36.000
And for example, in the example, we are using that in imperative, but we don't really need that because we are already there.

03:55:36.000 --> 03:55:42.000
However, it's it's super common that you made a mistake.

03:55:42.000 --> 03:55:45.000
So that is why you're there.

03:55:45.000 --> 03:55:49.000
OK, so the image that we are going to use is this one.

03:55:49.000 --> 03:55:51.000
Let me show you the.

03:55:54.000 --> 03:56:01.000
The image first, this is value the.

03:56:01.000 --> 03:56:06.000
So this is the tool, the network multi tool.

03:56:06.000 --> 03:56:08.000
It's.

03:56:11.000 --> 03:56:14.000
Well, it has different comments included.

03:56:14.000 --> 03:56:19.000
Our P and to be down to the shark.

03:56:19.000 --> 03:56:23.000
Engines straight roads tell it.

03:56:23.000 --> 03:56:28.000
Apache benchmark Apache benchmark.

03:56:29.000 --> 03:56:44.000
So it's useful because one thing with two or nets and the best practice in general is that a container and image has a minimal set of tools.

03:56:44.000 --> 03:56:59.000
So it's even possible that you don't even have a shell within a container or a pinch or a host or an NS lookup or a T.C.

03:57:21.000 --> 03:57:25.000
So whenever you create something,

03:57:25.000 --> 03:57:32.000
deploy something, get used to run a get old, a Cuba, Cuba, Cuba, get old.

03:57:32.000 --> 03:57:34.000
I'm going to use the full comments.

03:57:34.000 --> 03:57:40.000
So so you see the comment because this will show you what is happening.

03:57:40.000 --> 03:57:48.000
If it's running or not, you can run the dead events as well.

03:57:48.000 --> 03:57:50.000
Because this shows you events.

03:57:50.000 --> 03:57:55.000
Usually is super common that the image is wrong.

03:57:55.000 --> 03:58:01.000
For example, if I'm going to delete this deployment.

03:58:06.000 --> 03:58:08.000
Just to show you something.

03:58:08.000 --> 03:58:11.000
So I deleted it.

03:58:12.000 --> 03:58:14.000
So there is nothing here.

03:58:14.000 --> 03:58:23.000
But if I try to create the deployment and I make a mistake with the image, for example.

03:58:23.000 --> 03:58:29.000
So I will have an error created creating the container.

03:58:29.000 --> 03:58:37.000
And it will show me an error in a school because there is no such image.

03:58:37.000 --> 03:58:41.000
And with events, I can see the same error.

03:58:41.000 --> 03:58:45.000
I mean, I can see like the detail of this error.

03:58:45.000 --> 03:58:52.000
So so just keep that in mind as well.

03:58:53.000 --> 03:58:57.000
I'm going to do something that runs here.

03:58:57.000 --> 03:59:00.000
I'm going to delete the deployment.

03:59:03.000 --> 03:59:06.000
And fix the error.

03:59:06.000 --> 03:59:09.000
Deployment.

03:59:15.000 --> 03:59:18.000
There is a lot for troubleshooting.

03:59:18.000 --> 03:59:22.000
So we do stuff like this.

03:59:22.000 --> 03:59:26.000
But it doesn't hurt to do it from now.

03:59:27.000 --> 03:59:34.000
Usually by the time when we reach troubleshooting, you already know how to troubleshoot.

03:59:34.000 --> 03:59:37.000
Because it fades.

03:59:46.000 --> 03:59:49.000
Let me show you another comment.

03:59:52.000 --> 03:59:58.000
I want to send the edit comment so you want to take a look.

04:00:00.000 --> 04:00:08.000
But I'm going to connect to the multi-tool part.

04:00:10.000 --> 04:00:13.000
So this is...

04:00:20.000 --> 04:00:23.000
This is the...

04:00:30.000 --> 04:00:37.000
This is the way in which you access a container directly.

04:00:37.000 --> 04:00:44.000
So what I'm doing here is to open a shell terminal within the container.

04:00:44.000 --> 04:00:49.000
That is not possible with all the containers.

04:00:49.000 --> 04:00:53.000
But the majority allows you to do this.

04:00:53.000 --> 04:00:59.000
But the best practice is to not even allow this kind of stuff that I'm doing here.

04:00:59.000 --> 04:01:05.000
So I'm doing this just to show you the comments that are available.

04:01:05.000 --> 04:01:08.000
Like this.

04:01:08.000 --> 04:01:12.000
So there are a lot of comments.

04:01:14.000 --> 04:01:25.000
Let's create the service.

04:01:44.000 --> 04:01:56.000
Remember, every time that you create something, take a look at the logs to the events to see what happens.

04:01:56.000 --> 04:02:02.000
I haven't shown you how to see the logs for a pot.

04:02:02.000 --> 04:02:07.000
So I'll use it to do it.

04:02:42.000 --> 04:02:43.000
That's it.

04:02:43.000 --> 04:02:46.000
That's a super big line.

04:02:46.000 --> 04:02:50.000
And this big line...

04:02:50.000 --> 04:03:17.000
So while this comments here...

04:03:25.000 --> 04:03:31.000
If you have reached the cluster IP segment, let me show you.

04:03:31.000 --> 04:03:37.000
You may find an issue that is this one, the cluster IP.

04:03:37.000 --> 04:03:43.000
So whenever you find this kind of comments or examples,

04:03:43.000 --> 04:03:52.000
what you need to do first is to try the internal comment and see the outcome, the result.

04:03:52.000 --> 04:03:54.000
Obviously, this is too long.

04:03:54.000 --> 04:03:56.000
So I'm going to copy.

04:03:56.000 --> 04:04:07.000
But when you run this, it is supposed to show me the IP address, but it's showing the services.

04:04:07.000 --> 04:04:09.000
And let me explain why is that.

04:04:09.000 --> 04:04:17.000
And actually, it was on purpose because I wanted to show you something regarding the cluster.

04:04:17.000 --> 04:04:26.000
So what this is doing here is to execute a Qt-CTL get notes.

04:04:29.000 --> 04:04:34.000
But in this case, it is selecting with this option.

04:04:37.000 --> 04:04:42.000
The notes tag with the role master.

04:04:42.000 --> 04:04:47.000
So if I run this, it shows nothing.

04:04:47.000 --> 04:04:50.000
And that is because the role...

04:04:50.000 --> 04:04:53.000
And here you can see it.

04:04:53.000 --> 04:04:57.000
The role that is available here is control plane.

04:04:57.000 --> 04:05:08.000
So if I change this for control plane, it will show me a note.

04:05:08.000 --> 04:05:23.000
So that line that we are using here needs to be changed to 222 control plane.

04:05:40.000 --> 04:05:45.000
Oh, but it dumped a lot of stuff. Why?

04:05:54.000 --> 04:05:55.000
Okay.

04:05:55.000 --> 04:05:59.000
So it doesn't have the internal IP.

04:05:59.000 --> 04:06:05.000
I think it's because I'm using the backend for Calico.

04:06:05.000 --> 04:06:08.000
So perhaps the IP address change.

04:06:09.000 --> 04:06:18.000
However, we can find the IP address for other way.

04:06:18.000 --> 04:06:19.000
Let me see. Okay.

04:06:19.000 --> 04:06:22.000
It's IP before address.

04:06:28.000 --> 04:06:34.000
So what we are seeing here is the JSON object.

04:06:34.000 --> 04:06:47.000
And which is what the basic information or the raw information is saved in Kubernetes.

04:06:47.000 --> 04:06:54.000
So there is this JSON viewer online that allows you to...

04:06:54.000 --> 04:06:55.000
What happened?

04:06:55.000 --> 04:06:58.000
That allows you to see...

04:06:58.000 --> 04:07:01.000
That allows you to...

04:07:01.000 --> 04:07:03.000
To...

04:07:03.000 --> 04:07:04.000
To...

04:07:04.000 --> 04:07:08.000
To rectify the output.

04:07:08.000 --> 04:07:11.000
So you can understand what is in there.

04:07:11.000 --> 04:07:12.000
So this is huge.

04:07:12.000 --> 04:07:16.000
I mean, it's dumping a lot of stuff.

04:07:16.000 --> 04:07:19.000
Oops.

04:07:22.000 --> 04:07:28.000
So this is all the information.

04:07:28.000 --> 04:07:31.000
We are looking at the IP address.

04:07:31.000 --> 04:07:36.000
This happens also when there is a change in the API.

04:07:36.000 --> 04:07:41.000
So you need to deal with the JSON and try to find what you want.

04:07:41.000 --> 04:07:49.000
So I just want to find the key for the IP address that I saw it.

04:07:49.000 --> 04:07:50.000
Okay, it's here.

04:07:50.000 --> 04:07:53.000
Well, this is this one.

04:07:53.000 --> 04:08:01.000
Oh, it's internal IP, but it's way hidden between here.

04:08:01.000 --> 04:08:05.000
Spec interface, internal IP.

04:08:05.000 --> 04:08:08.000
It's not easy to find that key.

04:08:08.000 --> 04:08:13.000
So...

04:08:13.000 --> 04:08:21.000
Because this part changes from what we are seeing in this JSON.

04:08:21.000 --> 04:08:22.000
It's different.

04:08:22.000 --> 04:08:27.000
So interface...

04:08:27.000 --> 04:08:30.000
Interface address.

04:08:30.000 --> 04:08:36.000
So it will be easier to find it in a different way, which is...

04:08:36.000 --> 04:08:39.000
This is a local kernel, a local cluster.

04:08:39.000 --> 04:08:49.000
What we can do here is just to see in which node our pod is running.

04:08:49.000 --> 04:09:00.000
So in order to do that, what we can do is execute a describe on the node.

04:09:00.000 --> 04:09:10.000
So with Juke.cpl describe nodes, we need to...

04:09:10.000 --> 04:09:14.000
You can see which pods are running here.

04:09:14.000 --> 04:09:23.000
So...

04:09:23.000 --> 04:09:41.000
I will go see it too.

04:09:41.000 --> 04:09:53.000
I will see it here.

04:09:53.000 --> 04:09:55.000
Here is the swagger.

04:09:55.000 --> 04:09:59.000
Okay, it's here, the multi-tool in the second.

04:09:59.000 --> 04:10:08.000
So this has...

04:10:08.000 --> 04:10:10.000
This IP address.

04:10:10.000 --> 04:10:27.000
We can try this IP address.

04:10:27.000 --> 04:10:32.000
Or we can just take a look here to this cluster IP address as well.

04:10:32.000 --> 04:10:33.000
We can see that.

04:10:33.000 --> 04:10:42.000
We can try this one first here in the pod in the browser.

04:10:42.000 --> 04:10:44.000
Okay, yeah, we can see that.

04:10:44.000 --> 04:10:49.000
Because as we have this tunnel, this tunnel is giving us that access.

04:10:49.000 --> 04:10:51.000
So we can see that.

04:10:51.000 --> 04:10:58.000
So it will be easier to just get the service and use the IP address.

04:10:58.000 --> 04:11:09.000
Or try the node port address, the host address.

04:11:09.000 --> 04:11:36.000
So let me just give me just a second.

04:11:36.000 --> 04:11:40.000
So these will be the end.

04:12:11.000 --> 04:12:13.000
Okay, no, it's jumping directly.

04:12:13.000 --> 04:12:17.000
So this will be the only way to use it.

04:12:17.000 --> 04:12:19.000
Because it's not using this one.

04:12:19.000 --> 04:12:24.000
So this is just a basic example.

04:12:24.000 --> 04:12:29.000
Try the other one, the declarative.

04:12:29.000 --> 04:12:40.000
So in this case, we have the Enginx.yml file for the declarative one.

04:12:40.000 --> 04:12:41.000
Where is it?

04:12:41.000 --> 04:12:42.000
Yeah, this is one.

04:12:42.000 --> 04:12:49.000
In this case, there is the deployment.

04:12:49.000 --> 04:12:52.000
The deployment, the full deployment.

04:12:52.000 --> 04:13:02.000
So this deployment, this is the standard format for a deployment.

04:13:02.000 --> 04:13:08.000
And there is a few stuff here that is like mandatory.

04:13:08.000 --> 04:13:13.000
The API version, the kind of resource.

04:13:13.000 --> 04:13:25.000
This metadata, it's not mandatory, but it's useful because here is where you can label an application.

04:13:25.000 --> 04:13:27.000
You can define the namespace here.

04:13:27.000 --> 04:13:36.000
Please change that code we start to the one that is in the document, which is declarative.

04:13:36.000 --> 04:13:45.000
We need to create another namespace.

04:13:45.000 --> 04:13:56.000
And here in the spec, in the deployment, you can define the replicas, the number of replicas,

04:13:56.000 --> 04:14:02.000
which is the amount of parts that you will have in this deployment.

04:14:02.000 --> 04:14:04.000
In this case, it's one.

04:14:04.000 --> 04:14:20.000
So when you use that, you will create by default a replica set, which is the controller that is in charge of securing that there is this number of replicas running in your cluster.

04:14:20.000 --> 04:14:23.000
So this is important.

04:14:23.000 --> 04:14:27.000
And the other important is this containers part.

04:14:27.000 --> 04:14:30.000
So here is where you define the containers.

04:14:30.000 --> 04:14:33.000
You can have more than one container.

04:14:33.000 --> 04:14:35.000
Here.

04:14:35.000 --> 04:14:40.000
So those are like patterns for Kubernetes, different patterns available.

04:14:40.000 --> 04:14:44.000
But we are just covering the basic one, which is one container.

04:14:44.000 --> 04:14:52.000
So here you will have the image that you want to run and the port that you want to expose.

04:14:52.000 --> 04:15:00.000
So if you use this deployment, I'm going to do it here.

04:15:00.000 --> 04:15:08.000
So I'm going to create the namespace declarative, which is the one that we say.

04:15:08.000 --> 04:15:14.000
I'm going to move to that namespace.

04:15:14.000 --> 04:15:18.000
And see if I have since year, which is now.

04:15:18.000 --> 04:15:21.000
So let's deploy that.

04:15:21.000 --> 04:15:32.000
So here we are using the common apply, which is the which is the the the.

04:15:32.000 --> 04:15:36.000
The option to apply a manifest.

04:15:36.000 --> 04:15:38.000
And this works.

04:15:38.000 --> 04:15:47.000
I mean, whenever you apply a manifest, you will look for those resources to see if they are already there.

04:15:47.000 --> 04:15:53.000
If they are, it will try to update whenever whatever you have changed.

04:15:53.000 --> 04:15:59.000
If not, it will just create whatever you have defined in this.

04:15:59.000 --> 04:16:07.000
So in this case, we use the apply GEO dash file.

04:16:07.000 --> 04:16:19.000
And if you notice in the in the line of the lab, we are using the dash dash record equal to.

04:16:19.000 --> 04:16:36.000
So these record equal to is not I mean, it's depreciated, but we are using it here because this is a way to record the deployment in order to do a rollback.

04:16:36.000 --> 04:16:41.000
Well, it was the way to do a rollback to go back in a version.

04:16:41.000 --> 04:16:53.000
So these record creates a history of deployments, but that is now incorporated within within the deployment.

04:16:53.000 --> 04:16:57.000
So it's not needed.

04:16:57.000 --> 04:17:01.000
So if it's there, you can see the deployment.

04:17:01.000 --> 04:17:05.000
The deployment cubes, CPL.

04:17:05.000 --> 04:17:10.000
That deployments.

04:17:10.000 --> 04:17:13.000
And it will be running.

04:17:13.000 --> 04:17:17.000
As well, the QCTL.

04:17:17.000 --> 04:17:19.000
Services.

04:17:19.000 --> 04:17:21.000
We don't have any terms.

04:17:21.000 --> 04:17:28.000
The box.

04:17:28.000 --> 04:17:35.000
If you want to repeat these two with Docker coins, I'm going to do it here.

04:17:35.000 --> 04:17:43.000
What I will suggest is to create a namespace.

04:17:43.000 --> 04:17:52.000
So in this case, create a namespace called Docker coins.

04:17:52.000 --> 04:17:58.000
As we have in this case, we have.

04:17:58.000 --> 04:18:00.000
A manifest.

04:18:00.000 --> 04:18:01.000
A Jaml file.

04:18:01.000 --> 04:18:13.000
This manifest is way more complex than the one that we were working because this manifest have all the application.

04:18:13.000 --> 04:18:15.000
Embedded.

04:18:15.000 --> 04:18:17.000
This architecture.

04:18:17.000 --> 04:18:19.000
Is described it.

04:18:19.000 --> 04:18:21.000
Here in this manifest.

04:18:21.000 --> 04:18:27.000
So we are just going to deploy it later.

04:18:27.000 --> 04:18:32.000
We can explore in detail this manifest.

04:18:32.000 --> 04:18:36.000
But you just need to.

04:18:36.000 --> 04:18:38.000
Q events.

04:18:38.000 --> 04:18:40.000
Docker.

04:18:41.000 --> 04:18:45.000
We just want to deploy this.

04:18:45.000 --> 04:18:48.000
So apply.

04:18:48.000 --> 04:18:54.000
By Docker coins.

04:18:54.000 --> 04:19:04.000
And you can see that this creates the services already.

04:19:04.000 --> 04:19:06.000
So it's a little bit bigger.

04:19:06.000 --> 04:19:12.000
If you go to the dashboard, you will see a lot going on.

04:19:12.000 --> 04:19:14.000
Hopefully.

04:19:14.000 --> 04:19:16.000
So.

04:19:16.000 --> 04:19:24.000
So you should see all the deployments that are available.

04:19:24.000 --> 04:19:26.000
Some pending.

04:19:26.000 --> 04:19:27.000
Intended status.

04:19:27.000 --> 04:19:30.000
This is because.

04:19:30.000 --> 04:19:36.000
It may be facing an issue or it's just.

04:19:36.000 --> 04:19:38.000
Downloading.

04:19:38.000 --> 04:19:42.000
Pulling the image and deploying the image.

04:19:42.000 --> 04:19:45.000
So in this case, it was just that.

04:19:45.000 --> 04:19:50.000
But by now we do have or I have at least 22 bots.

04:19:50.000 --> 04:19:53.000
So we are 12 deployments.

04:19:53.000 --> 04:19:55.000
So we have almost double.

04:19:55.000 --> 04:19:57.000
The amount of.

04:19:57.000 --> 04:19:58.000
Of.

04:19:58.000 --> 04:20:00.000
That we started with.

04:20:00.000 --> 04:20:03.000
So it was as simple as that.

04:20:03.000 --> 04:20:05.000
So.

04:20:05.000 --> 04:20:08.000
Just wanted to show you that.

04:20:08.000 --> 04:20:19.000
I'm going to send the call so you can.

04:20:19.000 --> 04:20:24.000
That if you want to.

04:20:24.000 --> 04:20:27.000
And let's keep doing the services.

04:20:27.000 --> 04:20:31.000
Part.

04:20:31.000 --> 04:20:32.000
Yeah.

04:20:32.000 --> 04:20:34.000
Go find the web.

04:20:34.000 --> 04:20:35.000
The UI.

04:20:35.000 --> 04:20:37.000
I.

04:20:37.000 --> 04:20:44.000
If I take a look here in the dashboard, I can find the address.

04:20:44.000 --> 04:20:46.000
You need to.

04:20:46.000 --> 04:20:53.000
To dig a little bit, but it's here at services and the web UI.

04:21:17.000 --> 04:21:22.000
So it's running with four in my case, four hashes per second.

04:21:22.000 --> 04:21:23.000
So.

04:21:23.000 --> 04:21:26.000
Leave it like that in the meantime.

04:22:17.000 --> 04:22:21.000
You can open a terminal and see.

04:22:21.000 --> 04:22:24.000
From with K9S.

04:22:24.000 --> 04:22:26.000
What is.

04:22:26.000 --> 04:22:29.000
What is showing up so.

04:22:29.000 --> 04:22:33.000
That is cool as well.

04:22:33.000 --> 04:22:36.000
It helps.

04:22:36.000 --> 04:22:39.000
I mean, it's easier to navigate here.

04:22:39.000 --> 04:22:42.000
And we can change.

04:22:42.000 --> 04:22:44.000
Okay, with zero.

04:22:44.000 --> 04:22:47.000
You can see all the namespaces.

04:22:49.000 --> 04:22:52.000
And you can kill stuff and everything.

04:22:52.000 --> 04:22:54.000
So.

04:22:54.000 --> 04:22:57.000
Play around.

04:24:11.000 --> 04:24:12.000
Yeah.

04:24:32.000 --> 04:24:36.000
So in this case, in the.

04:24:36.000 --> 04:24:39.000
In the point number four.

04:24:39.000 --> 04:24:42.000
The step just before the service is correct.

04:24:42.000 --> 04:24:45.000
You can see.

04:24:45.000 --> 04:24:47.000
Or you can.

04:24:47.000 --> 04:24:50.000
Increase.

04:24:50.000 --> 04:24:53.000
Some replicas for the engines.

04:24:53.000 --> 04:24:56.000
So in order to do that.

04:24:56.000 --> 04:24:59.000
Or let me do it from the.

04:24:59.000 --> 04:25:00.000
From the.

04:25:00.000 --> 04:25:02.000
From here from the.

04:25:02.000 --> 04:25:05.000
We saw code.

04:25:05.000 --> 04:25:08.000
We saw code so I can change this replica.

04:25:08.000 --> 04:25:11.000
This line instead of one.

04:25:11.000 --> 04:25:14.000
I can say let's do three.

04:25:14.000 --> 04:25:17.000
I'm going to save that.

04:25:17.000 --> 04:25:20.000
And I apply that again.

04:25:20.000 --> 04:25:23.000
Doing that with the engine. So I mean the.

04:25:23.000 --> 04:25:26.000
In the imperative namespace.

04:25:26.000 --> 04:25:29.000
Just to show that.

04:25:29.000 --> 04:25:32.000
So where is it?

04:25:32.000 --> 04:25:35.000
So QCPL.

04:25:35.000 --> 04:25:38.000
Apply that.

04:25:38.000 --> 04:25:41.000
Engines.

04:25:41.000 --> 04:25:44.000
So if I do that.

04:25:44.000 --> 04:25:47.000
Here in the get pods watch.

04:25:47.000 --> 04:25:50.000
You will see that it kicks off.

04:25:50.000 --> 04:25:53.000
The launching of multiple pods.

04:25:53.000 --> 04:25:56.000
Because what we did with that.

04:25:56.000 --> 04:25:59.000
Line replica is to change this.

04:25:59.000 --> 04:26:02.000
Replicaset.

04:26:02.000 --> 04:26:05.000
So let me show you.

04:26:05.000 --> 04:26:08.000
If I run.

04:26:08.000 --> 04:26:11.000
QCPL.

04:26:11.000 --> 04:26:14.000
Get RS.

04:26:14.000 --> 04:26:17.000
It will show me that now we have three.

04:26:17.000 --> 04:26:20.000
Replicasets. If you do that.

04:26:20.000 --> 04:26:23.000
With the Docker coins.

04:26:23.000 --> 04:26:26.000
Deployment. You will see an increase.

04:26:26.000 --> 04:26:29.000
In the hash.

04:26:29.000 --> 04:26:32.000
In the hash output.

04:26:32.000 --> 04:26:35.000
But you will also see an increase in the number of pods.

04:26:35.000 --> 04:26:38.000
But in the case of the Docker coins.

04:26:38.000 --> 04:26:41.000
You need to think a little bit.

04:26:41.000 --> 04:26:44.000
What should I increase?

04:26:44.000 --> 04:26:47.000
I mean should I have more workers?

04:26:47.000 --> 04:26:50.000
Or more hashers?

04:26:50.000 --> 04:26:53.000
Or more random generators?

04:26:53.000 --> 04:26:56.000
So.

04:26:56.000 --> 04:26:59.000
This is where the software architecture.

04:26:59.000 --> 04:27:02.000
Enters the room.

04:27:02.000 --> 04:27:05.000
To discuss that part.

04:27:05.000 --> 04:27:08.000
If you are curious about the code.

04:27:08.000 --> 04:27:11.000
Everything. All the code is available.

04:27:11.000 --> 04:27:14.000
I mean from the labs.

04:27:14.000 --> 04:27:17.000
It's available. Let me show you here.

04:27:17.000 --> 04:27:20.000
There is this other folder.

04:27:20.000 --> 04:27:23.000
You will see that as well.

04:27:23.000 --> 04:27:26.000
It's the repo. The kit clone repo.

04:27:26.000 --> 04:27:29.000
Which is in the slides.

04:27:29.000 --> 04:27:32.000
There is a folder labs.

04:27:32.000 --> 04:27:35.000
That has every one of the labs.

04:27:35.000 --> 04:27:38.000
That we are running here.

04:27:38.000 --> 04:27:41.000
And actually some more labs.

04:27:41.000 --> 04:27:44.000
So you can check the code.

04:27:44.000 --> 04:27:47.000
The Docker coins comes from containment training.

04:27:47.000 --> 04:27:50.000
The code for these applications.

04:27:50.000 --> 04:27:53.000
So.

04:27:53.000 --> 04:27:56.000
For example the hasher is a Ruby application.

04:27:56.000 --> 04:27:59.000
So if you are curious about that.

04:27:59.000 --> 04:28:02.000
You can play with that as well.

04:28:21.000 --> 04:28:24.000
.

04:28:24.000 --> 04:28:27.000
.

04:28:27.000 --> 04:28:30.000
.

04:28:30.000 --> 04:28:33.000
.

04:28:33.000 --> 04:28:36.000
.

04:28:36.000 --> 04:28:39.000
.

04:28:39.000 --> 04:28:42.000
.

04:28:42.000 --> 04:28:45.000
.

04:28:45.000 --> 04:28:48.000
.

04:28:48.000 --> 04:28:51.000
.

04:28:51.000 --> 04:28:54.000
.

04:28:54.000 --> 04:28:57.000
.

04:28:57.000 --> 04:29:00.000
.

04:29:00.000 --> 04:29:03.000
.

04:29:03.000 --> 04:29:06.000
.

04:29:06.000 --> 04:29:09.000
.

04:29:09.000 --> 04:29:12.000
.

04:29:12.000 --> 04:29:15.000
.

04:29:15.000 --> 04:29:18.000
.

04:29:18.000 --> 04:29:21.000
.

04:29:21.000 --> 04:29:24.000
.

04:29:24.000 --> 04:29:27.000
.

04:29:27.000 --> 04:29:30.000
.

04:29:30.000 --> 04:29:33.000
.

04:29:33.000 --> 04:29:36.000
.

04:29:36.000 --> 04:29:39.000
.

04:29:39.000 --> 04:29:42.000
.

04:29:42.000 --> 04:29:45.000
.

04:29:45.000 --> 04:29:48.000
.

04:29:48.000 --> 04:29:51.000
.

04:29:51.000 --> 04:29:54.000
.

04:29:54.000 --> 04:29:57.000
.

04:29:57.000 --> 04:30:00.000
.

04:30:00.000 --> 04:30:03.000
.

04:30:03.000 --> 04:30:06.000
.

04:30:06.000 --> 04:30:09.000
.

04:30:09.000 --> 04:30:12.000
.

04:30:12.000 --> 04:30:15.000
.

04:30:15.000 --> 04:30:18.000
.

04:30:18.000 --> 04:30:21.000
.

04:30:21.000 --> 04:30:24.000
.

04:30:24.000 --> 04:30:27.000
.

04:30:27.000 --> 04:30:30.000
.

04:30:30.000 --> 04:30:33.000
.

04:30:33.000 --> 04:30:36.000
.

04:30:36.000 --> 04:30:39.000
.

04:30:39.000 --> 04:30:42.000
.

04:30:42.000 --> 04:30:45.000
.

04:30:45.000 --> 04:30:48.000
.

04:30:48.000 --> 04:30:51.000
.

04:30:51.000 --> 04:30:54.000
.

04:30:54.000 --> 04:30:57.000
.

04:30:57.000 --> 04:31:00.000
.

04:31:00.000 --> 04:31:03.000
.

04:31:03.000 --> 04:31:06.000
.

04:31:06.000 --> 04:31:09.000
.

04:31:09.000 --> 04:31:12.000
.

04:31:12.000 --> 04:31:15.000
.

04:31:15.000 --> 04:31:18.000
.

04:31:18.000 --> 04:31:21.000
.

04:31:21.000 --> 04:31:24.000
.

04:31:24.000 --> 04:31:27.000
.

04:31:27.000 --> 04:31:30.000
.

04:31:30.000 --> 04:31:33.000
.

04:31:33.000 --> 04:31:36.000
.

04:31:36.000 --> 04:31:39.000
.

04:31:39.000 --> 04:31:42.000
.

04:31:42.000 --> 04:31:45.000
.

04:31:45.000 --> 04:31:48.000
.

04:31:48.000 --> 04:31:51.000
.

04:31:51.000 --> 04:31:54.000
.

04:31:54.000 --> 04:31:57.000
.

04:31:57.000 --> 04:32:00.000
.

04:32:00.000 --> 04:32:03.000
.

04:32:03.000 --> 04:32:06.000
.

04:32:06.000 --> 04:32:09.000
.

04:32:09.000 --> 04:32:12.000
.

04:32:12.000 --> 04:32:15.000
.

04:32:15.000 --> 04:32:18.000
.

04:32:18.000 --> 04:32:21.000
.

04:32:21.000 --> 04:32:24.000
.

04:32:24.000 --> 04:32:27.000
.

04:32:27.000 --> 04:32:30.000
.

04:32:30.000 --> 04:32:33.000
.

04:32:33.000 --> 04:32:36.000
.

04:32:36.000 --> 04:32:39.000
.

04:32:39.000 --> 04:32:42.000
.

04:32:42.000 --> 04:32:45.000
.

04:32:45.000 --> 04:32:48.000
.

04:32:58.000 --> 04:33:01.000
.

04:33:01.000 --> 04:33:04.000
.

04:33:04.000 --> 04:33:07.000
.

04:33:07.000 --> 04:33:10.000
.

04:33:10.000 --> 04:33:13.000
.

04:33:13.000 --> 04:33:16.000
.

04:33:16.000 --> 04:33:19.000
.

04:33:19.000 --> 04:33:22.000
.

04:33:22.000 --> 04:33:25.000
.

04:33:25.000 --> 04:33:28.000
.

04:33:28.000 --> 04:33:31.000
.

04:33:31.000 --> 04:33:34.000
.

04:33:34.000 --> 04:33:37.000
.

04:33:37.000 --> 04:33:40.000
.

04:33:40.000 --> 04:33:43.000
.

04:33:43.000 --> 04:33:46.000
.

04:33:46.000 --> 04:33:49.000
.

04:33:49.000 --> 04:33:52.000
.

04:33:52.000 --> 04:33:55.000
.

04:33:55.000 --> 04:33:58.000
.

04:33:58.000 --> 04:34:01.000
.

04:34:01.000 --> 04:34:04.000
.

04:34:04.000 --> 04:34:07.000
.

04:34:07.000 --> 04:34:10.000
.

04:34:10.000 --> 04:34:13.000
.

04:34:13.000 --> 04:34:16.000
.

04:34:16.000 --> 04:34:19.000
.

04:34:19.000 --> 04:34:22.000
.

04:34:22.000 --> 04:34:25.000
.

04:34:25.000 --> 04:34:28.000
.

04:34:28.000 --> 04:34:31.000
.

04:34:31.000 --> 04:34:34.000
.

04:34:34.000 --> 04:34:37.000
.

04:34:37.000 --> 04:34:40.000
.

04:34:40.000 --> 04:34:43.000
.

04:34:43.000 --> 04:34:46.000
.

04:34:46.000 --> 04:34:49.000
.

04:34:49.000 --> 04:34:52.000
.

04:34:52.000 --> 04:34:55.000
.

04:34:55.000 --> 04:34:58.000
.

04:34:58.000 --> 04:35:01.000
.

04:35:01.000 --> 04:35:04.000
.

04:35:04.000 --> 04:35:07.000
.

04:35:07.000 --> 04:35:10.000
.

04:35:10.000 --> 04:35:13.000
.

04:35:13.000 --> 04:35:16.000
.

04:35:16.000 --> 04:35:19.000
.

04:35:19.000 --> 04:35:22.000
.

04:35:22.000 --> 04:35:25.000
.

04:35:25.000 --> 04:35:28.000
.

04:35:28.000 --> 04:35:31.000
.

04:35:31.000 --> 04:35:34.000
.

04:35:34.000 --> 04:35:37.000
.

04:35:37.000 --> 04:35:40.000
.

04:35:40.000 --> 04:35:43.000
.

04:35:43.000 --> 04:35:46.000
.

04:35:46.000 --> 04:35:49.000
.

04:35:49.000 --> 04:35:52.000
.

04:35:52.000 --> 04:35:55.000
.

04:35:55.000 --> 04:35:58.000
.

04:35:58.000 --> 04:36:01.000
.

04:36:01.000 --> 04:36:04.000
.

04:36:04.000 --> 04:36:07.000
.

04:36:07.000 --> 04:36:10.000
.

04:36:10.000 --> 04:36:13.000
.

04:36:13.000 --> 04:36:16.000
.

04:36:16.000 --> 04:36:19.000
.

04:36:19.000 --> 04:36:22.000
.

04:36:22.000 --> 04:36:25.000
.

04:36:49.000 --> 04:36:52.000
.

04:36:52.000 --> 04:36:55.000
.

04:36:55.000 --> 04:36:58.000
.

04:36:58.000 --> 04:37:01.000
.

04:37:01.000 --> 04:37:04.000
.

04:37:04.000 --> 04:37:07.000
.

04:37:07.000 --> 04:37:10.000
.

04:37:10.000 --> 04:37:13.000
.

04:37:13.000 --> 04:37:16.000
.

04:37:16.000 --> 04:37:19.000
.

04:37:19.000 --> 04:37:22.000
.

04:37:22.000 --> 04:37:25.000
.

04:37:25.000 --> 04:37:28.000
.

04:37:28.000 --> 04:37:31.000
.

04:37:31.000 --> 04:37:34.000
.

04:37:34.000 --> 04:37:37.000
.

04:37:37.000 --> 04:37:40.000
.

04:37:40.000 --> 04:37:43.000
.

04:37:43.000 --> 04:37:46.000
.

04:37:46.000 --> 04:37:49.000
.

04:37:49.000 --> 04:37:52.000
.

04:37:52.000 --> 04:37:55.000
.

04:37:55.000 --> 04:37:58.000
.

04:37:58.000 --> 04:38:01.000
.

04:38:01.000 --> 04:38:04.000
.

04:38:04.000 --> 04:38:07.000
.

04:38:07.000 --> 04:38:10.000
.

04:38:10.000 --> 04:38:13.000
.

04:38:13.000 --> 04:38:16.000
.

04:38:16.000 --> 04:38:19.000
.

04:38:19.000 --> 04:38:22.000
.

04:38:22.000 --> 04:38:25.000
.

04:38:25.000 --> 04:38:28.000
.

04:38:28.000 --> 04:38:31.000
.

04:38:31.000 --> 04:38:34.000
.

04:38:34.000 --> 04:38:37.000
.

04:38:37.000 --> 04:38:40.000
.

04:38:40.000 --> 04:38:43.000
.

04:38:43.000 --> 04:38:46.000
.

04:38:46.000 --> 04:38:49.000
.

04:38:49.000 --> 04:38:52.000
.

04:38:52.000 --> 04:38:55.000
.

04:38:55.000 --> 04:38:58.000
.

04:38:58.000 --> 04:39:01.000
.

04:39:01.000 --> 04:39:04.000
.

04:39:04.000 --> 04:39:07.000
.

04:39:07.000 --> 04:39:10.000
.

04:39:10.000 --> 04:39:13.000
.

04:39:13.000 --> 04:39:16.000
.

04:39:16.000 --> 04:39:19.000
.

04:39:19.000 --> 04:39:22.000
.

04:39:22.000 --> 04:39:25.000
.

04:39:25.000 --> 04:39:28.000
.

04:39:28.000 --> 04:39:31.000
.

04:39:31.000 --> 04:39:34.000
.

04:39:34.000 --> 04:39:37.000
.

04:39:37.000 --> 04:39:40.000
.

04:39:40.000 --> 04:39:43.000
.

04:39:43.000 --> 04:39:46.000
.

04:39:46.000 --> 04:39:49.000
.

04:39:49.000 --> 04:39:52.000
.

04:39:52.000 --> 04:39:55.000
.

04:39:55.000 --> 04:39:58.000
.

04:39:58.000 --> 04:40:01.000
.

04:40:01.000 --> 04:40:04.000
.

04:40:04.000 --> 04:40:07.000
.

04:40:07.000 --> 04:40:10.000
.

04:40:10.000 --> 04:40:13.000
.

04:40:13.000 --> 04:40:16.000
.

04:40:16.000 --> 04:40:19.000
.

04:40:19.000 --> 04:40:22.000
.

04:40:22.000 --> 04:40:25.000
.

04:40:25.000 --> 04:40:28.000
.

04:40:28.000 --> 04:40:31.000
.

04:40:31.000 --> 04:40:34.000
.

04:40:34.000 --> 04:40:37.000
.

04:40:37.000 --> 04:40:40.000
.

04:40:40.000 --> 04:40:43.000
.

04:40:43.000 --> 04:40:46.000
.

04:40:46.000 --> 04:40:49.000
.

04:40:49.000 --> 04:40:52.000
.

04:40:52.000 --> 04:40:55.000
.

04:40:55.000 --> 04:40:58.000
.

04:40:58.000 --> 04:41:01.000
.

04:41:01.000 --> 04:41:04.000
.

04:41:04.000 --> 04:41:07.000
.

04:41:07.000 --> 04:41:10.000
.

04:41:10.000 --> 04:41:13.000
.

04:41:13.000 --> 04:41:16.000
.

04:41:16.000 --> 04:41:19.000
.

04:41:19.000 --> 04:41:22.000
.

04:41:22.000 --> 04:41:25.000
.

04:41:25.000 --> 04:41:28.000
.

04:41:28.000 --> 04:41:31.000
.

04:41:31.000 --> 04:41:34.000
.

04:41:34.000 --> 04:41:37.000
.

04:41:37.000 --> 04:41:40.000
.

04:41:40.000 --> 04:41:43.000
.

04:41:43.000 --> 04:41:46.000
.

04:41:46.000 --> 04:41:49.000
.

04:41:49.000 --> 04:41:52.000
.

04:41:52.000 --> 04:41:55.000
.

04:41:55.000 --> 04:41:58.000
.

04:41:58.000 --> 04:42:01.000
.

04:42:01.000 --> 04:42:04.000
.

04:42:04.000 --> 04:42:07.000
.

04:42:07.000 --> 04:42:10.000
.

04:42:10.000 --> 04:42:13.000
.

04:42:13.000 --> 04:42:16.000
.

04:42:16.000 --> 04:42:19.000
.

04:42:19.000 --> 04:42:22.000
.

04:42:22.000 --> 04:42:25.000
.

04:42:25.000 --> 04:42:28.000
.

04:42:28.000 --> 04:42:31.000
.

04:42:31.000 --> 04:42:34.000
.

04:42:34.000 --> 04:42:37.000
.

04:42:37.000 --> 04:42:40.000
.

04:42:40.000 --> 04:42:43.000
.

04:42:43.000 --> 04:42:46.000
.

04:42:46.000 --> 04:42:49.000
.

04:42:49.000 --> 04:42:52.000
.

04:42:52.000 --> 04:42:55.000
.

04:42:55.000 --> 04:42:58.000
.

04:42:58.000 --> 04:43:01.000
.

04:43:01.000 --> 04:43:04.000
.

04:43:04.000 --> 04:43:07.000
.

04:43:07.000 --> 04:43:10.000
.

04:43:10.000 --> 04:43:13.000
.

04:43:13.000 --> 04:43:16.000
.

04:43:16.000 --> 04:43:19.000
.

04:43:19.000 --> 04:43:22.000
.

04:43:22.000 --> 04:43:25.000
.

04:43:25.000 --> 04:43:28.000
.

04:43:28.000 --> 04:43:31.000
.

04:43:31.000 --> 04:43:34.000
.

04:43:34.000 --> 04:43:37.000
.

04:43:37.000 --> 04:43:40.000
.

04:43:40.000 --> 04:43:43.000
.

04:43:43.000 --> 04:43:46.000
.

04:43:46.000 --> 04:43:49.000
.

04:43:49.000 --> 04:43:52.000
.

04:43:52.000 --> 04:43:55.000
.

04:43:55.000 --> 04:43:58.000
.

04:43:58.000 --> 04:44:01.000
.

04:44:01.000 --> 04:44:04.000
.

04:44:04.000 --> 04:44:07.000
.

04:44:07.000 --> 04:44:10.000
.

04:44:10.000 --> 04:44:13.000
.

04:44:13.000 --> 04:44:16.000
.

04:44:16.000 --> 04:44:19.000
.

04:44:19.000 --> 04:44:22.000
.

04:44:22.000 --> 04:44:25.000
.

04:44:25.000 --> 04:44:28.000
.

04:44:28.000 --> 04:44:31.000
.

04:44:31.000 --> 04:44:34.000
.

04:44:34.000 --> 04:44:37.000
.

04:44:37.000 --> 04:44:40.000
.

04:44:40.000 --> 04:44:43.000
.

04:44:43.000 --> 04:44:46.000
.

04:44:46.000 --> 04:44:49.000
.

04:44:49.000 --> 04:44:52.000
.

04:44:52.000 --> 04:44:55.000
.

04:44:55.000 --> 04:44:58.000
.

04:44:58.000 --> 04:45:01.000
.

04:45:01.000 --> 04:45:04.000
.

04:45:04.000 --> 04:45:07.000
.

04:45:07.000 --> 04:45:10.000
.

04:45:10.000 --> 04:45:13.000
.

04:45:13.000 --> 04:45:16.000
.

04:45:16.000 --> 04:45:19.000
.

04:45:19.000 --> 04:45:22.000
.

04:45:22.000 --> 04:45:25.000
.

04:45:25.000 --> 04:45:28.000
.

04:45:28.000 --> 04:45:31.000
.

04:45:31.000 --> 04:45:34.000
.

04:45:34.000 --> 04:45:37.000
.

04:45:37.000 --> 04:45:40.000
.

04:45:40.000 --> 04:45:43.000
.

04:45:43.000 --> 04:45:46.000
.

04:45:46.000 --> 04:45:49.000
.

04:45:49.000 --> 04:45:52.000
.

04:45:52.000 --> 04:45:55.000
.

04:45:55.000 --> 04:45:58.000
.

04:45:58.000 --> 04:46:01.000
.

04:46:01.000 --> 04:46:04.000
.

04:46:04.000 --> 04:46:07.000
.

04:46:07.000 --> 04:46:10.000
.

04:46:10.000 --> 04:46:13.000
.

04:46:13.000 --> 04:46:16.000
.

04:46:16.000 --> 04:46:19.000
.

04:46:19.000 --> 04:46:22.000
.

04:46:22.000 --> 04:46:25.000
.

04:46:25.000 --> 04:46:28.000
.

04:46:28.000 --> 04:46:31.000
.

04:46:31.000 --> 04:46:34.000
.

04:46:34.000 --> 04:46:37.000
.

04:46:37.000 --> 04:46:40.000
.

04:46:40.000 --> 04:46:43.000
.

04:46:43.000 --> 04:46:46.000
.

04:46:46.000 --> 04:46:49.000
.

04:46:49.000 --> 04:46:52.000
.

04:46:52.000 --> 04:46:55.000
.

04:46:55.000 --> 04:46:58.000
.

04:46:58.000 --> 04:47:01.000
.

04:47:01.000 --> 04:47:04.000
.

04:47:04.000 --> 04:47:07.000
.

04:47:07.000 --> 04:47:10.000
.

04:47:10.000 --> 04:47:13.000
.

04:47:13.000 --> 04:47:16.000
.

04:47:16.000 --> 04:47:19.000
.

04:47:19.000 --> 04:47:22.000
.

04:47:22.000 --> 04:47:25.000
.

04:47:25.000 --> 04:47:28.000
.

04:47:28.000 --> 04:47:31.000
.

04:47:31.000 --> 04:47:34.000
.

04:47:34.000 --> 04:47:37.000
.

04:47:37.000 --> 04:47:40.000
.

04:47:40.000 --> 04:47:43.000
.

04:47:43.000 --> 04:47:46.000
.

04:47:46.000 --> 04:47:49.000
.

04:47:49.000 --> 04:47:52.000
.

04:47:52.000 --> 04:47:55.000
.

04:47:55.000 --> 04:47:58.000
.

04:47:58.000 --> 04:48:01.000
.

04:48:01.000 --> 04:48:04.000
.

04:48:04.000 --> 04:48:07.000
.

04:48:07.000 --> 04:48:10.000
.

04:48:10.000 --> 04:48:13.000
.

04:48:13.000 --> 04:48:16.000
.

04:48:16.000 --> 04:48:19.000
.

04:48:19.000 --> 04:48:22.000
.

04:48:22.000 --> 04:48:25.000
.

04:48:25.000 --> 04:48:28.000
.

04:48:28.000 --> 04:48:31.000
.

04:48:31.000 --> 04:48:34.000
.

04:48:34.000 --> 04:48:37.000
.

04:48:37.000 --> 04:48:40.000
.

04:48:40.000 --> 04:48:43.000
.

04:48:43.000 --> 04:48:46.000
.

04:48:46.000 --> 04:48:49.000
.

04:48:49.000 --> 04:48:52.000
.

04:48:52.000 --> 04:48:55.000
.

04:48:55.000 --> 04:48:58.000
.

04:48:58.000 --> 04:49:01.000
.

04:49:01.000 --> 04:49:04.000
.

04:49:04.000 --> 04:49:07.000
.

04:49:07.000 --> 04:49:10.000
.

04:49:10.000 --> 04:49:13.000
.

04:49:13.000 --> 04:49:16.000
.

04:49:16.000 --> 04:49:19.000
.

04:49:19.000 --> 04:49:22.000
.

04:49:22.000 --> 04:49:25.000
.

04:49:25.000 --> 04:49:28.000
.

04:49:28.000 --> 04:49:31.000
.

04:49:31.000 --> 04:49:34.000
.

04:49:34.000 --> 04:49:37.000
.

04:49:37.000 --> 04:49:40.000
.

04:49:40.000 --> 04:49:43.000
.

04:49:43.000 --> 04:49:46.000
.

04:49:46.000 --> 04:49:49.000
.

04:49:49.000 --> 04:49:52.000
.

04:49:52.000 --> 04:49:55.000
.

04:49:55.000 --> 04:49:58.000
.

04:49:58.000 --> 04:50:01.000
.

04:50:01.000 --> 04:50:04.000
.

04:50:04.000 --> 04:50:07.000
.

04:50:07.000 --> 04:50:10.000
.

04:50:10.000 --> 04:50:13.000
.

04:50:13.000 --> 04:50:16.000
.

04:50:16.000 --> 04:50:19.000
.

04:50:19.000 --> 04:50:22.000
.

04:50:22.000 --> 04:50:25.000
.

04:50:25.000 --> 04:50:28.000
.

04:50:28.000 --> 04:50:31.000
.

04:50:31.000 --> 04:50:34.000
.

04:50:34.000 --> 04:50:37.000
.

04:50:37.000 --> 04:50:40.000
.

04:50:40.000 --> 04:50:43.000
.

04:50:43.000 --> 04:50:46.000
.

04:50:46.000 --> 04:50:49.000
.

04:50:49.000 --> 04:50:52.000
.

04:50:52.000 --> 04:50:55.000
.

04:50:55.000 --> 04:50:58.000
.

04:50:58.000 --> 04:51:01.000
.

04:51:01.000 --> 04:51:04.000
.

04:51:04.000 --> 04:51:07.000
.

04:51:07.000 --> 04:51:10.000
.

04:51:10.000 --> 04:51:13.000
.

04:51:13.000 --> 04:51:16.000
.

04:51:16.000 --> 04:51:19.000
.

04:51:19.000 --> 04:51:22.000
.

04:51:22.000 --> 04:51:25.000
.

04:51:25.000 --> 04:51:28.000
.

04:51:28.000 --> 04:51:31.000
.

04:51:31.000 --> 04:51:34.000
.

04:51:34.000 --> 04:51:37.000
.

04:51:37.000 --> 04:51:40.000
.

04:51:40.000 --> 04:51:43.000
.

04:51:43.000 --> 04:51:46.000
.

04:51:46.000 --> 04:51:49.000
.

04:51:49.000 --> 04:51:52.000
.

04:51:52.000 --> 04:51:55.000
.

04:51:55.000 --> 04:51:58.000
.

04:51:58.000 --> 04:52:01.000
.

04:52:01.000 --> 04:52:04.000
.

04:52:04.000 --> 04:52:07.000
.

04:52:07.000 --> 04:52:10.000
.

04:52:10.000 --> 04:52:13.000
.

04:52:13.000 --> 04:52:16.000
.

04:52:16.000 --> 04:52:19.000
.

04:52:19.000 --> 04:52:22.000
.

04:52:22.000 --> 04:52:25.000
.

04:52:25.000 --> 04:52:28.000
.

04:52:28.000 --> 04:52:31.000
.

04:52:31.000 --> 04:52:34.000
.

04:52:34.000 --> 04:52:37.000
.

04:52:37.000 --> 04:52:40.000
.

04:52:40.000 --> 04:52:43.000
.

04:52:43.000 --> 04:52:46.000
.

04:52:46.000 --> 04:52:49.000
.

04:52:49.000 --> 04:52:52.000
.

04:52:52.000 --> 04:52:55.000
.

04:52:55.000 --> 04:52:58.000
.

04:52:58.000 --> 04:53:01.000
.

04:53:01.000 --> 04:53:04.000
.

04:53:04.000 --> 04:53:07.000
.

04:53:07.000 --> 04:53:10.000
.

04:53:10.000 --> 04:53:13.000
.

04:53:13.000 --> 04:53:16.000
.

04:53:16.000 --> 04:53:19.000
.

04:53:19.000 --> 04:53:22.000
.

04:53:22.000 --> 04:53:25.000
.

04:53:25.000 --> 04:53:28.000
.

04:53:28.000 --> 04:53:31.000
.

04:53:31.000 --> 04:53:34.000
.

04:53:34.000 --> 04:53:37.000
.

04:53:37.000 --> 04:53:40.000
.

04:53:40.000 --> 04:53:43.000
.

04:53:43.000 --> 04:53:46.000
.

04:53:46.000 --> 04:53:49.000
.

04:53:49.000 --> 04:53:52.000
.

04:53:52.000 --> 04:53:55.000
.

04:53:55.000 --> 04:53:58.000
.

04:53:58.000 --> 04:54:01.000
.

04:54:01.000 --> 04:54:04.000
.

04:54:04.000 --> 04:54:07.000
.

04:54:07.000 --> 04:54:10.000
.

04:54:10.000 --> 04:54:13.000
.

04:54:13.000 --> 04:54:16.000
.

04:54:16.000 --> 04:54:19.000
.

04:54:19.000 --> 04:54:22.000
.

04:54:22.000 --> 04:54:25.000
.

04:54:25.000 --> 04:54:28.000
.

04:54:28.000 --> 04:54:31.000
.

04:54:31.000 --> 04:54:34.000
.

04:54:34.000 --> 04:54:37.000
.

04:54:37.000 --> 04:54:40.000
.

04:54:40.000 --> 04:54:43.000
.

04:54:43.000 --> 04:54:46.000
.

04:54:46.000 --> 04:54:49.000
.

04:54:49.000 --> 04:54:52.000
.

04:54:52.000 --> 04:54:55.000
.

04:54:55.000 --> 04:54:58.000
.

04:54:58.000 --> 04:55:01.000
.

04:55:01.000 --> 04:55:04.000
.

04:55:04.000 --> 04:55:07.000
.

04:55:07.000 --> 04:55:10.000
.

04:55:10.000 --> 04:55:13.000
.

04:55:13.000 --> 04:55:16.000
.

04:55:16.000 --> 04:55:19.000
.

04:55:19.000 --> 04:55:22.000
.

04:55:22.000 --> 04:55:25.000
.

04:55:25.000 --> 04:55:28.000
.

04:55:28.000 --> 04:55:31.000
.

04:55:31.000 --> 04:55:34.000
.

04:55:34.000 --> 04:55:37.000
.

04:55:37.000 --> 04:55:40.000
.

04:55:40.000 --> 04:55:43.000
.

04:55:43.000 --> 04:55:46.000
.

04:55:46.000 --> 04:55:49.000
.

04:55:49.000 --> 04:55:52.000
.

04:55:52.000 --> 04:55:55.000
.

04:55:55.000 --> 04:55:58.000
.

04:55:58.000 --> 04:56:01.000
.

04:56:01.000 --> 04:56:04.000
.

04:56:04.000 --> 04:56:07.000
.

04:56:07.000 --> 04:56:10.000
.

04:56:10.000 --> 04:56:13.000
.

04:56:13.000 --> 04:56:16.000
.

04:56:16.000 --> 04:56:19.000
.

04:56:19.000 --> 04:56:22.000
.

04:56:22.000 --> 04:56:25.000
.

04:56:25.000 --> 04:56:28.000
.

04:56:28.000 --> 04:56:31.000
.

04:56:31.000 --> 04:56:34.000
.

04:56:34.000 --> 04:56:37.000
.

04:56:37.000 --> 04:56:40.000
.

04:56:40.000 --> 04:56:43.000
.

04:56:43.000 --> 04:56:46.000
.

04:56:46.000 --> 04:56:49.000
.

04:56:49.000 --> 04:56:52.000
.

04:56:52.000 --> 04:56:55.000
.

04:56:55.000 --> 04:56:58.000
.

04:56:58.000 --> 04:57:01.000
.

04:57:01.000 --> 04:57:04.000
.

04:57:04.000 --> 04:57:07.000
.

04:57:07.000 --> 04:57:10.000
.

04:57:10.000 --> 04:57:13.000
.

04:57:13.000 --> 04:57:16.000
.

04:57:16.000 --> 04:57:19.000
.

04:57:19.000 --> 04:57:22.000
.

04:57:22.000 --> 04:57:25.000
.

04:57:25.000 --> 04:57:28.000
.

04:57:28.000 --> 04:57:31.000
.

04:57:31.000 --> 04:57:34.000
.

04:57:34.000 --> 04:57:37.000
.

04:57:37.000 --> 04:57:40.000
.

04:57:40.000 --> 04:57:43.000
.

04:57:43.000 --> 04:57:46.000
.

04:57:46.000 --> 04:57:49.000
.

04:57:49.000 --> 04:57:52.000
.

04:57:52.000 --> 04:57:55.000
.

04:57:55.000 --> 04:57:58.000
.

04:57:58.000 --> 04:58:01.000
.

04:58:01.000 --> 04:58:04.000
.

04:58:04.000 --> 04:58:07.000
.

04:58:07.000 --> 04:58:10.000
.

04:58:10.000 --> 04:58:13.000
.

04:58:13.000 --> 04:58:16.000
.

04:58:16.000 --> 04:58:19.000
.

04:58:19.000 --> 04:58:22.000
.

04:58:22.000 --> 04:58:25.000
.

04:58:25.000 --> 04:58:28.000
.

04:58:28.000 --> 04:58:31.000
.

04:58:31.000 --> 04:58:34.000
.

04:58:34.000 --> 04:58:37.000
.

04:58:37.000 --> 04:58:40.000
.

04:58:40.000 --> 04:58:43.000
.

04:58:43.000 --> 04:58:46.000
.

04:58:46.000 --> 04:58:49.000
.

04:58:49.000 --> 04:58:52.000
.

04:58:52.000 --> 04:58:55.000
.

04:58:55.000 --> 04:58:58.000
.

04:58:58.000 --> 04:59:01.000
.

04:59:01.000 --> 04:59:04.000
.

04:59:04.000 --> 04:59:07.000
.

04:59:07.000 --> 04:59:10.000
.

04:59:10.000 --> 04:59:13.000
.

04:59:13.000 --> 04:59:16.000
.

04:59:16.000 --> 04:59:19.000
.

04:59:19.000 --> 04:59:22.000
.

04:59:22.000 --> 04:59:25.000
.

04:59:25.000 --> 04:59:28.000
.

04:59:28.000 --> 04:59:31.000
.

04:59:31.000 --> 04:59:34.000
.

04:59:34.000 --> 04:59:37.000
.

04:59:37.000 --> 04:59:40.000
.

04:59:40.000 --> 04:59:43.000
.

04:59:43.000 --> 04:59:46.000
.

04:59:46.000 --> 04:59:49.000
.

04:59:49.000 --> 04:59:52.000
.

04:59:52.000 --> 04:59:55.000
.

04:59:55.000 --> 04:59:58.000
.

04:59:58.000 --> 05:00:01.000
.

05:00:01.000 --> 05:00:04.000
.

05:00:04.000 --> 05:00:07.000
.

05:00:07.000 --> 05:00:10.000
.

05:00:10.000 --> 05:00:13.000
.

05:00:13.000 --> 05:00:16.000
.

05:00:16.000 --> 05:00:19.000
.

05:00:19.000 --> 05:00:22.000
.

05:00:22.000 --> 05:00:25.000
.

05:00:25.000 --> 05:00:28.000
.

05:00:28.000 --> 05:00:31.000
.

05:00:31.000 --> 05:00:34.000
.

05:00:34.000 --> 05:00:37.000
.

05:00:37.000 --> 05:00:40.000
.

05:00:40.000 --> 05:00:43.000
.

05:00:43.000 --> 05:00:46.000
.

05:00:46.000 --> 05:00:49.000
.

05:00:49.000 --> 05:00:52.000
.

05:00:52.000 --> 05:00:55.000
.

05:00:55.000 --> 05:00:58.000
.

05:00:58.000 --> 05:01:01.000
.

05:01:01.000 --> 05:01:04.000
.

05:01:04.000 --> 05:01:07.000
.

05:01:07.000 --> 05:01:10.000
.

05:01:10.000 --> 05:01:13.000
.

05:01:13.000 --> 05:01:16.000
.

05:01:16.000 --> 05:01:19.000
.

05:01:19.000 --> 05:01:22.000
.

05:01:22.000 --> 05:01:25.000
.

05:01:25.000 --> 05:01:28.000
.

05:01:28.000 --> 05:01:31.000
.

05:01:31.000 --> 05:01:34.000
.

05:01:34.000 --> 05:01:37.000
.

05:01:37.000 --> 05:01:40.000
.

05:01:40.000 --> 05:01:43.000
.

05:01:43.000 --> 05:01:46.000
.

05:01:46.000 --> 05:01:49.000
.

05:01:49.000 --> 05:01:52.000
.

05:01:52.000 --> 05:01:55.000
.

05:01:55.000 --> 05:01:58.000
.

05:01:58.000 --> 05:02:01.000
.

05:02:01.000 --> 05:02:04.000
.

05:02:04.000 --> 05:02:07.000
.

05:02:07.000 --> 05:02:10.000
.

05:02:10.000 --> 05:02:13.000
.

05:02:13.000 --> 05:02:16.000
.

05:02:16.000 --> 05:02:19.000
.

05:02:19.000 --> 05:02:22.000
.

05:02:22.000 --> 05:02:25.000
.

05:02:25.000 --> 05:02:28.000
.

05:02:28.000 --> 05:02:31.000
.

05:02:31.000 --> 05:02:34.000
.

05:02:34.000 --> 05:02:37.000
.

05:02:37.000 --> 05:02:40.000
.

05:02:40.000 --> 05:02:43.000
.

05:02:43.000 --> 05:02:46.000
.

05:02:46.000 --> 05:02:49.000
.

05:02:49.000 --> 05:02:52.000
.

05:02:52.000 --> 05:02:55.000
.

05:02:55.000 --> 05:02:58.000
.

05:02:58.000 --> 05:03:01.000
.

05:03:01.000 --> 05:03:04.000
.

05:03:04.000 --> 05:03:07.000
.

05:03:07.000 --> 05:03:10.000
.

05:03:10.000 --> 05:03:13.000
.

05:03:13.000 --> 05:03:16.000
.

05:03:16.000 --> 05:03:19.000
.

05:03:19.000 --> 05:03:22.000
.

05:03:22.000 --> 05:03:25.000
.

05:03:25.000 --> 05:03:28.000
.

05:03:28.000 --> 05:03:31.000
.

05:03:31.000 --> 05:03:34.000
.

05:03:34.000 --> 05:03:37.000
.

05:03:37.000 --> 05:03:40.000
.

05:03:40.000 --> 05:03:43.000
.

05:03:43.000 --> 05:03:46.000
.

05:03:46.000 --> 05:03:49.000
.

05:03:49.000 --> 05:03:52.000
.

05:03:52.000 --> 05:03:55.000
.

05:03:55.000 --> 05:03:58.000
.

05:03:58.000 --> 05:04:01.000
.

05:04:01.000 --> 05:04:04.000
.

05:04:04.000 --> 05:04:07.000
.

05:04:07.000 --> 05:04:10.000
.

05:04:10.000 --> 05:04:13.000
.

05:04:13.000 --> 05:04:16.000
.

05:04:16.000 --> 05:04:19.000
.

05:04:19.000 --> 05:04:22.000
.

05:04:22.000 --> 05:04:25.000
.

05:04:25.000 --> 05:04:28.000
.

05:04:28.000 --> 05:04:31.000
.

05:04:31.000 --> 05:04:34.000
.

05:04:34.000 --> 05:04:37.000
.

05:04:37.000 --> 05:04:40.000
.

05:04:40.000 --> 05:04:43.000
.

05:04:43.000 --> 05:04:46.000
.

05:04:46.000 --> 05:04:49.000
.

05:04:49.000 --> 05:04:52.000
.

05:04:52.000 --> 05:04:55.000
.

05:04:55.000 --> 05:04:58.000
.

05:04:58.000 --> 05:05:01.000
.

05:05:01.000 --> 05:05:04.000
.

05:05:04.000 --> 05:05:07.000
.

05:05:07.000 --> 05:05:10.000
.

05:05:10.000 --> 05:05:13.000
.

05:05:13.000 --> 05:05:16.000
.

05:05:16.000 --> 05:05:19.000
.

05:05:19.000 --> 05:05:22.000
.

05:05:22.000 --> 05:05:25.000
.

05:05:25.000 --> 05:05:28.000
.

05:05:28.000 --> 05:05:31.000
.

05:05:31.000 --> 05:05:34.000
.

05:05:34.000 --> 05:05:37.000
.

05:05:37.000 --> 05:05:40.000
.

05:05:40.000 --> 05:05:43.000
.

05:05:43.000 --> 05:05:46.000
.

05:05:46.000 --> 05:05:49.000
.

05:05:49.000 --> 05:05:52.000
.

05:05:52.000 --> 05:05:55.000
.

05:05:55.000 --> 05:05:58.000
.

05:05:58.000 --> 05:06:01.000
.

05:06:01.000 --> 05:06:04.000
.

05:06:04.000 --> 05:06:07.000
.

05:06:07.000 --> 05:06:10.000
.

05:06:10.000 --> 05:06:13.000
.

05:06:13.000 --> 05:06:16.000
.

05:06:16.000 --> 05:06:19.000
.

05:06:19.000 --> 05:06:22.000
.

05:06:22.000 --> 05:06:25.000
.

05:06:25.000 --> 05:06:28.000
.

05:06:28.000 --> 05:06:31.000
.

05:06:31.000 --> 05:06:34.000
.

05:06:34.000 --> 05:06:37.000
.

05:06:37.000 --> 05:06:40.000
.

05:06:40.000 --> 05:06:43.000
.

05:06:43.000 --> 05:06:46.000
.

05:06:46.000 --> 05:06:49.000
.

05:06:49.000 --> 05:06:52.000
.

05:06:52.000 --> 05:06:55.000
.

05:06:55.000 --> 05:06:58.000
.

05:06:58.000 --> 05:07:01.000
.

05:07:01.000 --> 05:07:04.000
.

05:07:04.000 --> 05:07:07.000
.

05:07:07.000 --> 05:07:10.000
.

05:07:10.000 --> 05:07:13.000
.

05:07:13.000 --> 05:07:16.000
.

05:07:16.000 --> 05:07:19.000
.

05:07:19.000 --> 05:07:22.000
.

05:07:22.000 --> 05:07:25.000
.

05:07:25.000 --> 05:07:28.000
.

05:07:28.000 --> 05:07:31.000
.

05:07:31.000 --> 05:07:34.000
.

05:07:34.000 --> 05:07:37.000
.

05:07:37.000 --> 05:07:40.000
.

05:07:40.000 --> 05:07:43.000
.

05:07:43.000 --> 05:07:46.000
.

05:07:46.000 --> 05:07:49.000
.

05:07:49.000 --> 05:07:52.000
.

05:07:52.000 --> 05:07:55.000
.

05:07:55.000 --> 05:07:58.000
.

05:07:58.000 --> 05:08:01.000
.

05:08:01.000 --> 05:08:04.000
.

05:08:04.000 --> 05:08:07.000
.

05:08:07.000 --> 05:08:10.000
.

05:08:10.000 --> 05:08:13.000
.

05:08:13.000 --> 05:08:16.000
.

05:08:16.000 --> 05:08:19.000
.

05:08:19.000 --> 05:08:22.000
.

05:08:22.000 --> 05:08:25.000
.

05:08:25.000 --> 05:08:28.000
.

05:08:28.000 --> 05:08:31.000
.

05:08:31.000 --> 05:08:34.000
.

05:08:34.000 --> 05:08:37.000
.

05:08:37.000 --> 05:08:40.000
.

05:08:40.000 --> 05:08:43.000
.

05:08:43.000 --> 05:08:46.000
.

05:08:46.000 --> 05:08:49.000
.

05:08:49.000 --> 05:08:52.000
.

05:08:52.000 --> 05:08:55.000
.

05:08:55.000 --> 05:08:58.000
.

05:08:58.000 --> 05:09:01.000
.

05:09:01.000 --> 05:09:04.000
.

05:09:04.000 --> 05:09:07.000
.

05:09:07.000 --> 05:09:10.000
.

05:09:10.000 --> 05:09:13.000
.

05:09:13.000 --> 05:09:16.000
.

05:09:16.000 --> 05:09:19.000
.

05:09:19.000 --> 05:09:22.000
.

05:09:22.000 --> 05:09:25.000
.

05:09:25.000 --> 05:09:28.000
.

05:09:28.000 --> 05:09:31.000
.

05:09:31.000 --> 05:09:34.000
.

05:09:34.000 --> 05:09:37.000
.

05:09:37.000 --> 05:09:40.000
.

05:09:40.000 --> 05:09:43.000
.

05:09:43.000 --> 05:09:46.000
.

05:09:46.000 --> 05:09:49.000
.

05:09:49.000 --> 05:09:52.000
.

05:09:52.000 --> 05:09:55.000
.

05:09:55.000 --> 05:09:58.000
.

05:09:58.000 --> 05:10:01.000
.

05:10:01.000 --> 05:10:04.000
.

05:10:04.000 --> 05:10:07.000
.

05:10:07.000 --> 05:10:10.000
.

05:10:10.000 --> 05:10:13.000
.

05:10:13.000 --> 05:10:16.000
.

05:10:16.000 --> 05:10:19.000
.

05:10:19.000 --> 05:10:22.000
.

05:10:22.000 --> 05:10:25.000
.

05:10:25.000 --> 05:10:28.000
.

05:10:28.000 --> 05:10:31.000
.

05:10:31.000 --> 05:10:34.000
.

05:10:34.000 --> 05:10:37.000
.

05:10:37.000 --> 05:10:40.000
.

05:10:40.000 --> 05:10:43.000
.

05:10:43.000 --> 05:10:46.000
.

05:10:46.000 --> 05:10:49.000
.

05:10:49.000 --> 05:10:52.000
.

05:10:52.000 --> 05:10:55.000
.

05:10:55.000 --> 05:10:58.000
.

05:10:58.000 --> 05:11:01.000
.

05:11:01.000 --> 05:11:04.000
.

05:11:04.000 --> 05:11:07.000
.

05:11:07.000 --> 05:11:10.000
.

05:11:10.000 --> 05:11:13.000
.

05:11:13.000 --> 05:11:16.000
.

05:11:16.000 --> 05:11:19.000
.

05:11:19.000 --> 05:11:22.000
.

05:11:22.000 --> 05:11:25.000
.

05:11:25.000 --> 05:11:28.000
.

05:11:28.000 --> 05:11:31.000
.

05:11:31.000 --> 05:11:34.000
.

05:11:34.000 --> 05:11:37.000
.

05:11:37.000 --> 05:11:40.000
.

05:11:40.000 --> 05:11:43.000
.

05:11:43.000 --> 05:11:46.000
.

05:11:46.000 --> 05:11:49.000
.

05:11:49.000 --> 05:11:52.000
.

05:11:52.000 --> 05:11:55.000
.

05:11:55.000 --> 05:11:58.000
.

05:11:58.000 --> 05:12:01.000
.

05:12:01.000 --> 05:12:04.000
.

05:12:04.000 --> 05:12:07.000
.

05:12:07.000 --> 05:12:10.000
.

05:12:10.000 --> 05:12:13.000
.

05:12:13.000 --> 05:12:16.000
.

05:12:16.000 --> 05:12:19.000
.

05:12:19.000 --> 05:12:22.000
.

05:12:22.000 --> 05:12:25.000
.

05:12:25.000 --> 05:12:28.000
.

05:12:28.000 --> 05:12:31.000
.

05:12:31.000 --> 05:12:34.000
.

05:12:34.000 --> 05:12:37.000
.

05:12:37.000 --> 05:12:40.000
.

05:12:40.000 --> 05:12:43.000
.

05:12:43.000 --> 05:12:46.000
.

05:12:46.000 --> 05:12:49.000
.

05:12:49.000 --> 05:12:52.000
.

05:12:52.000 --> 05:12:55.000
.

05:12:55.000 --> 05:12:58.000
.

05:12:58.000 --> 05:13:01.000
.

05:13:01.000 --> 05:13:04.000
.

05:13:04.000 --> 05:13:07.000
.

05:13:07.000 --> 05:13:10.000
.

05:13:10.000 --> 05:13:13.000
.

05:13:13.000 --> 05:13:16.000
.

05:13:16.000 --> 05:13:19.000
.

05:13:19.000 --> 05:13:22.000
.

05:13:22.000 --> 05:13:25.000
.

05:13:25.000 --> 05:13:28.000
.

05:13:28.000 --> 05:13:31.000
.

05:13:31.000 --> 05:13:34.000
.

05:13:34.000 --> 05:13:37.000
.

05:13:37.000 --> 05:13:40.000
.

05:13:40.000 --> 05:13:43.000
.

05:13:43.000 --> 05:13:46.000
.

05:13:46.000 --> 05:13:49.000
.

05:13:49.000 --> 05:13:52.000
.

05:13:52.000 --> 05:13:55.000
.

05:13:55.000 --> 05:13:58.000
.

05:13:58.000 --> 05:14:01.000
.

05:14:01.000 --> 05:14:04.000
.

05:14:04.000 --> 05:14:07.000
.

05:14:07.000 --> 05:14:10.000
.

05:14:10.000 --> 05:14:13.000
.

05:14:13.000 --> 05:14:16.000
.

05:14:16.000 --> 05:14:19.000
.

05:14:19.000 --> 05:14:22.000
.

05:14:22.000 --> 05:14:25.000
.

05:14:25.000 --> 05:14:28.000
.

05:14:28.000 --> 05:14:31.000
.

05:14:31.000 --> 05:14:34.000
.

05:14:34.000 --> 05:14:37.000
.

05:14:37.000 --> 05:14:40.000
.

05:14:40.000 --> 05:14:43.000
.

05:14:43.000 --> 05:14:46.000
.

05:14:46.000 --> 05:14:49.000
.

05:14:49.000 --> 05:14:52.000
.

05:14:52.000 --> 05:14:55.000
.

05:14:55.000 --> 05:14:58.000
.

05:14:58.000 --> 05:15:01.000
.

05:15:01.000 --> 05:15:04.000
.

05:15:04.000 --> 05:15:07.000
.

05:15:07.000 --> 05:15:10.000
.

05:15:10.000 --> 05:15:13.000
.

05:15:13.000 --> 05:15:16.000
.

05:15:16.000 --> 05:15:19.000
.

05:15:19.000 --> 05:15:22.000
.

05:15:22.000 --> 05:15:25.000
.

05:15:25.000 --> 05:15:28.000
.

05:15:28.000 --> 05:15:31.000
.

05:15:31.000 --> 05:15:34.000
.

05:15:34.000 --> 05:15:37.000
.

05:15:37.000 --> 05:15:40.000
.

05:15:40.000 --> 05:15:43.000
.

05:15:43.000 --> 05:15:46.000
.

05:15:46.000 --> 05:15:49.000
.

05:15:49.000 --> 05:15:52.000
.

05:15:52.000 --> 05:15:55.000
.

05:15:55.000 --> 05:15:58.000
.

05:15:58.000 --> 05:16:01.000
.

05:16:01.000 --> 05:16:04.000
.

05:16:04.000 --> 05:16:07.000
.

05:16:07.000 --> 05:16:10.000
.

05:16:10.000 --> 05:16:13.000
.

05:16:13.000 --> 05:16:16.000
.

05:16:16.000 --> 05:16:19.000
.

05:16:19.000 --> 05:16:22.000
.

05:16:22.000 --> 05:16:25.000
.

05:16:25.000 --> 05:16:28.000
.

05:16:28.000 --> 05:16:31.000
.

05:16:31.000 --> 05:16:34.000
.

05:16:34.000 --> 05:16:37.000
.

05:16:37.000 --> 05:16:40.000
.

05:16:40.000 --> 05:16:43.000
.

05:16:43.000 --> 05:16:46.000
.

05:16:46.000 --> 05:16:49.000
.

05:16:49.000 --> 05:16:52.000
.

05:16:52.000 --> 05:16:55.000
.

05:16:55.000 --> 05:16:58.000
.

05:16:58.000 --> 05:17:01.000
.

05:17:01.000 --> 05:17:04.000
.

05:17:04.000 --> 05:17:07.000
.

05:17:07.000 --> 05:17:10.000
.

05:17:10.000 --> 05:17:13.000
.

05:17:13.000 --> 05:17:16.000
.

05:17:16.000 --> 05:17:19.000
.

05:17:19.000 --> 05:17:22.000
.

05:17:22.000 --> 05:17:25.000
.

05:17:25.000 --> 05:17:28.000
.

05:17:28.000 --> 05:17:31.000
.

05:17:31.000 --> 05:17:34.000
.

05:17:34.000 --> 05:17:37.000
.

05:17:37.000 --> 05:17:40.000
.

05:17:40.000 --> 05:17:43.000
.

05:17:43.000 --> 05:17:46.000
.

05:17:46.000 --> 05:17:49.000
.

05:17:49.000 --> 05:17:52.000
.

05:17:52.000 --> 05:17:55.000
.

05:17:55.000 --> 05:17:58.000
.

05:17:58.000 --> 05:18:01.000
.

05:18:01.000 --> 05:18:04.000
.

05:18:04.000 --> 05:18:07.000
.

05:18:07.000 --> 05:18:10.000
.

05:18:10.000 --> 05:18:13.000
.

05:18:13.000 --> 05:18:16.000
.

05:18:16.000 --> 05:18:19.000
.

05:18:19.000 --> 05:18:22.000
.

05:18:22.000 --> 05:18:25.000
.

05:18:25.000 --> 05:18:28.000
.

05:18:28.000 --> 05:18:31.000
.

05:18:31.000 --> 05:18:34.000
.

05:18:34.000 --> 05:18:37.000
.

05:18:37.000 --> 05:18:40.000
.

05:18:40.000 --> 05:18:43.000
.

05:18:43.000 --> 05:18:46.000
.

05:18:46.000 --> 05:18:49.000
.

05:18:49.000 --> 05:18:52.000
.

05:18:52.000 --> 05:18:55.000
.

05:18:55.000 --> 05:18:58.000
.

05:18:58.000 --> 05:19:01.000
.

05:19:01.000 --> 05:19:04.000
.

05:19:04.000 --> 05:19:07.000
.

05:19:07.000 --> 05:19:10.000
.

05:19:10.000 --> 05:19:13.000
.

05:19:13.000 --> 05:19:16.000
.

05:19:16.000 --> 05:19:19.000
.

05:19:19.000 --> 05:19:22.000
.

05:19:22.000 --> 05:19:25.000
.

05:19:25.000 --> 05:19:28.000
.

05:19:28.000 --> 05:19:31.000
.

05:19:31.000 --> 05:19:34.000
.

05:19:34.000 --> 05:19:37.000
.

05:19:37.000 --> 05:19:40.000
.

05:19:40.000 --> 05:19:43.000
.

05:19:43.000 --> 05:19:46.000
.

05:19:46.000 --> 05:19:49.000
.

05:19:49.000 --> 05:19:52.000
.

05:19:52.000 --> 05:19:55.000
.

05:19:55.000 --> 05:19:58.000
.

05:19:58.000 --> 05:20:01.000
.

05:20:01.000 --> 05:20:04.000
.

05:20:04.000 --> 05:20:07.000
.

05:20:07.000 --> 05:20:10.000
.

05:20:10.000 --> 05:20:13.000
.

05:20:13.000 --> 05:20:16.000
.

05:20:16.000 --> 05:20:19.000
.

05:20:19.000 --> 05:20:22.000
.

05:20:22.000 --> 05:20:25.000
.

05:20:25.000 --> 05:20:28.000
.

05:20:28.000 --> 05:20:31.000
.

05:20:31.000 --> 05:20:34.000
.

05:20:34.000 --> 05:20:37.000
.

05:20:37.000 --> 05:20:40.000
.

05:20:40.000 --> 05:20:43.000
.

05:20:43.000 --> 05:20:46.000
.

05:20:46.000 --> 05:20:49.000
.

05:20:49.000 --> 05:20:52.000
.

05:20:52.000 --> 05:20:55.000
.

05:20:55.000 --> 05:20:58.000
.

05:20:58.000 --> 05:21:01.000
.

05:21:01.000 --> 05:21:04.000
.

05:21:04.000 --> 05:21:07.000
.

05:21:07.000 --> 05:21:10.000
.

05:21:10.000 --> 05:21:13.000
.

05:21:13.000 --> 05:21:16.000
.

05:21:16.000 --> 05:21:19.000
.

05:21:19.000 --> 05:21:22.000
.

05:21:22.000 --> 05:21:25.000
.

05:21:25.000 --> 05:21:28.000
.

05:21:28.000 --> 05:21:31.000
.

05:21:31.000 --> 05:21:34.000
.

05:21:34.000 --> 05:21:37.000
.

05:21:37.000 --> 05:21:40.000
.

05:21:40.000 --> 05:21:43.000
.

05:21:43.000 --> 05:21:46.000
.

05:21:46.000 --> 05:21:49.000
.

05:21:49.000 --> 05:21:52.000
.

05:21:52.000 --> 05:21:55.000
.

05:21:55.000 --> 05:21:58.000
.

05:21:58.000 --> 05:22:01.000
.

05:22:01.000 --> 05:22:04.000
.

05:22:04.000 --> 05:22:07.000
.

05:22:07.000 --> 05:22:10.000
.

05:22:10.000 --> 05:22:13.000
.

05:22:13.000 --> 05:22:16.000
.

05:22:16.000 --> 05:22:19.000
.

05:22:19.000 --> 05:22:22.000
.

05:22:22.000 --> 05:22:25.000
.

05:22:25.000 --> 05:22:28.000
.

05:22:28.000 --> 05:22:31.000
.

05:22:31.000 --> 05:22:34.000
.

05:22:34.000 --> 05:22:37.000
.

05:22:37.000 --> 05:22:40.000
.

05:22:40.000 --> 05:22:43.000
.

05:22:43.000 --> 05:22:46.000
.

05:22:46.000 --> 05:22:49.000
.

05:22:49.000 --> 05:22:52.000
.

05:22:52.000 --> 05:22:55.000
.

05:22:55.000 --> 05:22:58.000
.

05:22:58.000 --> 05:23:01.000
.

05:23:01.000 --> 05:23:04.000
.

05:23:04.000 --> 05:23:07.000
.

05:23:07.000 --> 05:23:10.000
.

05:23:10.000 --> 05:23:13.000
.

05:23:13.000 --> 05:23:16.000
.

05:23:16.000 --> 05:23:19.000
.

05:23:19.000 --> 05:23:22.000
.

05:23:22.000 --> 05:23:25.000
.

05:23:25.000 --> 05:23:28.000
.

05:23:28.000 --> 05:23:31.000
.

05:23:31.000 --> 05:23:34.000
.

05:23:34.000 --> 05:23:37.000
.

05:23:37.000 --> 05:23:40.000
.

05:23:40.000 --> 05:23:43.000
.

05:23:43.000 --> 05:23:46.000
.

05:23:46.000 --> 05:23:49.000
.

05:23:49.000 --> 05:23:52.000
.

05:23:52.000 --> 05:23:55.000
.

05:23:55.000 --> 05:23:58.000
.

05:23:58.000 --> 05:24:01.000
.

05:24:01.000 --> 05:24:04.000
.

05:24:04.000 --> 05:24:07.000
.

05:24:07.000 --> 05:24:10.000
.

05:24:10.000 --> 05:24:13.000
.

05:24:13.000 --> 05:24:16.000
.

05:24:16.000 --> 05:24:19.000
.

05:24:19.000 --> 05:24:22.000
.

05:24:22.000 --> 05:24:25.000
.

05:24:25.000 --> 05:24:28.000
.

05:24:28.000 --> 05:24:31.000
.

05:24:31.000 --> 05:24:34.000
.

05:24:34.000 --> 05:24:37.000
.

05:24:37.000 --> 05:24:40.000
.

05:24:40.000 --> 05:24:43.000
.

05:24:43.000 --> 05:24:46.000
.

05:24:46.000 --> 05:24:49.000
.

05:24:49.000 --> 05:24:52.000
.

05:24:52.000 --> 05:24:55.000
.

05:24:55.000 --> 05:24:58.000
.

05:24:58.000 --> 05:25:01.000
.

05:25:01.000 --> 05:25:04.000
.

05:25:04.000 --> 05:25:07.000
.

05:25:07.000 --> 05:25:10.000
.

05:25:10.000 --> 05:25:13.000
.

05:25:13.000 --> 05:25:16.000
.

05:25:16.000 --> 05:25:19.000
.

05:25:19.000 --> 05:25:22.000
.

05:25:22.000 --> 05:25:25.000
.

05:25:25.000 --> 05:25:28.000
.

05:25:28.000 --> 05:25:31.000
.

05:25:31.000 --> 05:25:34.000
.

05:25:34.000 --> 05:25:37.000
.

05:25:37.000 --> 05:25:40.000
.

05:25:40.000 --> 05:25:43.000
.

05:25:43.000 --> 05:25:46.000
.

05:25:46.000 --> 05:25:49.000
.

05:25:49.000 --> 05:25:52.000
.

05:25:52.000 --> 05:25:55.000
.

05:25:55.000 --> 05:25:58.000
.

05:25:58.000 --> 05:26:01.000
.

05:26:01.000 --> 05:26:04.000
.

05:26:04.000 --> 05:26:07.000
.

05:26:07.000 --> 05:26:10.000
.

05:26:10.000 --> 05:26:13.000
.

05:26:13.000 --> 05:26:16.000
.

05:26:16.000 --> 05:26:19.000
.

05:26:19.000 --> 05:26:22.000
.

05:26:22.000 --> 05:26:25.000
.

05:26:25.000 --> 05:26:28.000
.

05:26:28.000 --> 05:26:31.000
.

05:26:31.000 --> 05:26:34.000
.

05:26:34.000 --> 05:26:37.000
.

05:26:37.000 --> 05:26:40.000
.

05:26:40.000 --> 05:26:43.000
.

05:26:43.000 --> 05:26:46.000
.

05:26:46.000 --> 05:26:49.000
.

05:26:49.000 --> 05:26:52.000
.

05:26:52.000 --> 05:26:55.000
.

05:26:55.000 --> 05:26:58.000
.

05:26:58.000 --> 05:27:01.000
.

05:27:01.000 --> 05:27:04.000
.

05:27:04.000 --> 05:27:07.000
.

05:27:07.000 --> 05:27:10.000
.

05:27:10.000 --> 05:27:13.000
.

05:27:13.000 --> 05:27:16.000
.

05:27:16.000 --> 05:27:19.000
.

05:27:19.000 --> 05:27:22.000
.

05:27:22.000 --> 05:27:25.000
.

05:27:25.000 --> 05:27:28.000
.

05:27:28.000 --> 05:27:31.000
.

05:27:31.000 --> 05:27:34.000
.

05:27:34.000 --> 05:27:37.000
.

05:27:37.000 --> 05:27:40.000
.

05:27:40.000 --> 05:27:43.000
.

05:27:43.000 --> 05:27:46.000
.

05:27:46.000 --> 05:27:49.000
.

05:27:49.000 --> 05:27:52.000
.

05:27:52.000 --> 05:27:55.000
.

05:27:55.000 --> 05:27:58.000
.

05:27:58.000 --> 05:28:01.000
.

05:28:01.000 --> 05:28:04.000
.

05:28:04.000 --> 05:28:07.000
.

05:28:07.000 --> 05:28:10.000
.

05:28:10.000 --> 05:28:13.000
.

05:28:13.000 --> 05:28:16.000
.

05:28:16.000 --> 05:28:19.000
.

05:28:19.000 --> 05:28:22.000
.

05:28:22.000 --> 05:28:25.000
.

05:28:25.000 --> 05:28:28.000
.

05:28:28.000 --> 05:28:31.000
.

05:28:31.000 --> 05:28:34.000
.

05:28:34.000 --> 05:28:37.000
.

05:28:37.000 --> 05:28:40.000
.

05:28:40.000 --> 05:28:43.000
.

05:28:43.000 --> 05:28:46.000
.

05:28:46.000 --> 05:28:49.000
.

05:28:49.000 --> 05:28:52.000
.

05:28:52.000 --> 05:28:55.000
.

05:28:55.000 --> 05:28:58.000
.

05:28:58.000 --> 05:29:01.000
.

05:29:01.000 --> 05:29:04.000
.

05:29:04.000 --> 05:29:07.000
.

05:29:07.000 --> 05:29:10.000
.

05:29:10.000 --> 05:29:13.000
.

05:29:13.000 --> 05:29:16.000
.

05:29:16.000 --> 05:29:19.000
.

05:29:19.000 --> 05:29:22.000
.

05:29:22.000 --> 05:29:25.000
.

05:29:25.000 --> 05:29:28.000
.

05:29:28.000 --> 05:29:31.000
.

05:29:31.000 --> 05:29:34.000
.

05:29:34.000 --> 05:29:37.000
.

05:29:37.000 --> 05:29:40.000
.

05:29:40.000 --> 05:29:43.000
.

05:29:43.000 --> 05:29:46.000
.

05:29:46.000 --> 05:29:49.000
.

05:29:49.000 --> 05:29:52.000
.

05:29:52.000 --> 05:29:55.000
.

05:29:55.000 --> 05:29:58.000
.

05:29:58.000 --> 05:30:01.000
.

05:30:01.000 --> 05:30:04.000
.

05:30:04.000 --> 05:30:07.000
.

05:30:07.000 --> 05:30:10.000
.

05:30:10.000 --> 05:30:13.000
.

05:30:13.000 --> 05:30:16.000
.

05:30:16.000 --> 05:30:19.000
.

05:30:19.000 --> 05:30:22.000
.

05:30:22.000 --> 05:30:25.000
.

05:30:25.000 --> 05:30:28.000
.

05:30:28.000 --> 05:30:31.000
.

05:30:31.000 --> 05:30:34.000
.

05:30:34.000 --> 05:30:37.000
.

05:30:37.000 --> 05:30:40.000
.

05:30:40.000 --> 05:30:43.000
.

05:30:43.000 --> 05:30:46.000
.

05:30:46.000 --> 05:30:49.000
.

05:30:49.000 --> 05:30:52.000
.

05:30:52.000 --> 05:30:55.000
.

05:30:55.000 --> 05:30:58.000
.

05:30:58.000 --> 05:31:01.000
.

05:31:01.000 --> 05:31:04.000
.

05:31:04.000 --> 05:31:07.000
.

05:31:07.000 --> 05:31:10.000
.

05:31:10.000 --> 05:31:13.000
.

05:31:13.000 --> 05:31:16.000
.

05:31:16.000 --> 05:31:19.000
.

05:31:19.000 --> 05:31:22.000
.

05:31:22.000 --> 05:31:25.000
.

05:31:25.000 --> 05:31:28.000
.

05:31:28.000 --> 05:31:31.000
.

05:31:31.000 --> 05:31:34.000
.

05:31:34.000 --> 05:31:37.000
.

05:31:37.000 --> 05:31:40.000
.

05:31:40.000 --> 05:31:43.000
.

05:31:43.000 --> 05:31:46.000
.

05:31:46.000 --> 05:31:49.000
.

05:31:49.000 --> 05:31:52.000
.

05:31:52.000 --> 05:31:55.000
.

05:31:55.000 --> 05:31:58.000
.

05:31:58.000 --> 05:32:01.000
.

05:32:01.000 --> 05:32:04.000
.

05:32:04.000 --> 05:32:07.000
.

05:32:07.000 --> 05:32:10.000
.

05:32:10.000 --> 05:32:13.000
.

05:32:13.000 --> 05:32:16.000
.

05:32:16.000 --> 05:32:19.000
.

05:32:19.000 --> 05:32:22.000
.

05:32:22.000 --> 05:32:25.000
.

05:32:25.000 --> 05:32:28.000
.

05:32:28.000 --> 05:32:31.000
.

05:32:31.000 --> 05:32:34.000
.

05:32:34.000 --> 05:32:37.000
.

05:32:37.000 --> 05:32:40.000
.

05:32:40.000 --> 05:32:43.000
.

05:32:43.000 --> 05:32:46.000
.

05:32:46.000 --> 05:32:49.000
.

05:32:49.000 --> 05:32:52.000
.

05:32:52.000 --> 05:32:55.000
.

05:32:55.000 --> 05:32:58.000
.

05:32:58.000 --> 05:33:01.000
.

05:33:01.000 --> 05:33:04.000
.

05:33:04.000 --> 05:33:07.000
.

05:33:07.000 --> 05:33:10.000
.

05:33:10.000 --> 05:33:13.000
.

05:33:13.000 --> 05:33:16.000
.

05:33:16.000 --> 05:33:19.000
.

05:33:19.000 --> 05:33:22.000
.

05:33:22.000 --> 05:33:25.000
.

05:33:25.000 --> 05:33:28.000
.

05:33:28.000 --> 05:33:31.000
.

05:33:31.000 --> 05:33:34.000
.

05:33:34.000 --> 05:33:37.000
.

05:33:37.000 --> 05:33:40.000
.

05:33:40.000 --> 05:33:43.000
.

05:33:43.000 --> 05:33:46.000
.

05:33:46.000 --> 05:33:49.000
.

05:33:49.000 --> 05:33:52.000
.

05:33:52.000 --> 05:33:55.000
.

05:33:55.000 --> 05:33:58.000
.

05:33:58.000 --> 05:34:01.000
.

05:34:01.000 --> 05:34:04.000
.

05:34:04.000 --> 05:34:07.000
.

05:34:07.000 --> 05:34:10.000
.

05:34:10.000 --> 05:34:13.000
.

05:34:13.000 --> 05:34:16.000
.

05:34:16.000 --> 05:34:19.000
.

05:34:19.000 --> 05:34:22.000
.

05:34:22.000 --> 05:34:25.000
.

05:34:25.000 --> 05:34:28.000
.

05:34:28.000 --> 05:34:31.000
.

05:34:31.000 --> 05:34:34.000
.

05:34:34.000 --> 05:34:37.000
.

05:34:37.000 --> 05:34:40.000
.

05:34:40.000 --> 05:34:43.000
.

05:34:43.000 --> 05:34:46.000
.

05:34:46.000 --> 05:34:49.000
.

05:34:49.000 --> 05:34:52.000
.

05:34:52.000 --> 05:34:55.000
.

05:34:55.000 --> 05:34:58.000
.

05:34:58.000 --> 05:35:01.000
.

05:35:01.000 --> 05:35:04.000
.

05:35:04.000 --> 05:35:07.000
.

05:35:07.000 --> 05:35:10.000
.

05:35:10.000 --> 05:35:13.000
.

05:35:13.000 --> 05:35:16.000
.

05:35:16.000 --> 05:35:19.000
.

05:35:19.000 --> 05:35:22.000
.

05:35:22.000 --> 05:35:25.000
.

05:35:25.000 --> 05:35:28.000
.

05:35:28.000 --> 05:35:31.000
.

05:35:31.000 --> 05:35:34.000
.

05:35:34.000 --> 05:35:37.000
.

05:35:37.000 --> 05:35:40.000
.

05:35:40.000 --> 05:35:43.000
.

05:35:43.000 --> 05:35:46.000
.

05:35:46.000 --> 05:35:49.000
.

05:35:49.000 --> 05:35:52.000
.

05:35:52.000 --> 05:35:55.000
.

05:35:55.000 --> 05:35:58.000
.

05:35:58.000 --> 05:36:01.000
.

05:36:01.000 --> 05:36:04.000
.

05:36:04.000 --> 05:36:07.000
.

05:36:07.000 --> 05:36:10.000
.

05:36:10.000 --> 05:36:13.000
.

05:36:13.000 --> 05:36:16.000
.

05:36:16.000 --> 05:36:19.000
.

05:36:19.000 --> 05:36:22.000
.

05:36:22.000 --> 05:36:25.000
.

05:36:25.000 --> 05:36:28.000
.

05:36:28.000 --> 05:36:31.000
.

05:36:31.000 --> 05:36:34.000
.

05:36:34.000 --> 05:36:37.000
.

05:36:37.000 --> 05:36:40.000
.

05:36:40.000 --> 05:36:43.000
.

05:36:43.000 --> 05:36:46.000
.

05:36:46.000 --> 05:36:49.000
.

05:36:49.000 --> 05:36:52.000
.

05:36:52.000 --> 05:36:55.000
.

05:36:55.000 --> 05:36:58.000
.

05:36:58.000 --> 05:37:01.000
.

05:37:01.000 --> 05:37:04.000
.

05:37:04.000 --> 05:37:07.000
.

05:37:07.000 --> 05:37:10.000
.

05:37:10.000 --> 05:37:13.000
.

05:37:13.000 --> 05:37:16.000
.

05:37:16.000 --> 05:37:19.000
.

05:37:19.000 --> 05:37:22.000
.

05:37:22.000 --> 05:37:25.000
.

05:37:25.000 --> 05:37:28.000
.

05:37:28.000 --> 05:37:31.000
.

05:37:31.000 --> 05:37:34.000
.

05:37:34.000 --> 05:37:37.000
.

05:37:37.000 --> 05:37:40.000
.

05:37:40.000 --> 05:37:43.000
.

05:37:43.000 --> 05:37:46.000
.

05:37:46.000 --> 05:37:49.000
.

05:37:49.000 --> 05:37:52.000
.

05:37:52.000 --> 05:37:55.000
.

05:37:55.000 --> 05:37:58.000
.

05:37:58.000 --> 05:38:01.000
.

05:38:01.000 --> 05:38:04.000
.

05:38:04.000 --> 05:38:07.000
.

05:38:07.000 --> 05:38:10.000
.

05:38:10.000 --> 05:38:13.000
.

05:38:13.000 --> 05:38:16.000
.

05:38:16.000 --> 05:38:19.000
.

05:38:19.000 --> 05:38:22.000
.

05:38:22.000 --> 05:38:25.000
.

05:38:25.000 --> 05:38:28.000
.

05:38:28.000 --> 05:38:31.000
.

05:38:31.000 --> 05:38:34.000
.

05:38:34.000 --> 05:38:37.000
.

05:38:37.000 --> 05:38:40.000
.

05:38:40.000 --> 05:38:43.000
.

05:38:43.000 --> 05:38:46.000
.

05:38:46.000 --> 05:38:49.000
.

05:38:49.000 --> 05:38:52.000
.

05:38:52.000 --> 05:38:55.000
.

05:38:55.000 --> 05:38:58.000
.

05:38:58.000 --> 05:39:01.000
.

05:39:01.000 --> 05:39:04.000
.

05:39:04.000 --> 05:39:07.000
.

05:39:07.000 --> 05:39:10.000
.

05:39:10.000 --> 05:39:13.000
.

05:39:13.000 --> 05:39:16.000
.

05:39:16.000 --> 05:39:19.000
.

05:39:19.000 --> 05:39:22.000
.

05:39:22.000 --> 05:39:25.000
.

05:39:25.000 --> 05:39:28.000
.

05:39:28.000 --> 05:39:31.000
.

05:39:31.000 --> 05:39:34.000
.

05:39:34.000 --> 05:39:37.000
.

05:39:37.000 --> 05:39:40.000
.

05:39:40.000 --> 05:39:43.000
.

05:39:43.000 --> 05:39:46.000
.

05:39:46.000 --> 05:39:49.000
.

05:39:49.000 --> 05:39:52.000
.

05:39:52.000 --> 05:39:55.000
.

05:39:55.000 --> 05:39:58.000
.

05:39:58.000 --> 05:40:01.000
.

05:40:01.000 --> 05:40:04.000
.

05:40:04.000 --> 05:40:07.000
.

05:40:07.000 --> 05:40:10.000
.

05:40:10.000 --> 05:40:13.000
.

05:40:13.000 --> 05:40:16.000
.

05:40:16.000 --> 05:40:19.000
.

05:40:19.000 --> 05:40:22.000
.

05:40:22.000 --> 05:40:25.000
.

05:40:25.000 --> 05:40:28.000
.

05:40:28.000 --> 05:40:31.000
.

05:40:31.000 --> 05:40:34.000
.

05:40:34.000 --> 05:40:37.000
.

05:40:37.000 --> 05:40:40.000
.

05:40:40.000 --> 05:40:43.000
.

05:40:43.000 --> 05:40:46.000
.

05:40:46.000 --> 05:40:49.000
.

05:40:49.000 --> 05:40:52.000
.

05:40:52.000 --> 05:40:55.000
.

05:40:55.000 --> 05:40:58.000
.

05:40:58.000 --> 05:41:01.000
.

05:41:01.000 --> 05:41:04.000
.

05:41:04.000 --> 05:41:07.000
.

05:41:07.000 --> 05:41:10.000
.

05:41:10.000 --> 05:41:13.000
.

05:41:13.000 --> 05:41:16.000
.

05:41:16.000 --> 05:41:19.000
.

05:41:19.000 --> 05:41:22.000
.

05:41:22.000 --> 05:41:25.000
.

05:41:25.000 --> 05:41:28.000
.

05:41:28.000 --> 05:41:31.000
.

05:41:31.000 --> 05:41:34.000
.

05:41:34.000 --> 05:41:37.000
.

05:41:37.000 --> 05:41:40.000
.

05:41:40.000 --> 05:41:43.000
.

05:41:43.000 --> 05:41:46.000
.

05:41:46.000 --> 05:41:49.000
.

05:41:49.000 --> 05:41:52.000
.

05:41:52.000 --> 05:41:55.000
.

05:41:55.000 --> 05:41:58.000
.

05:41:58.000 --> 05:42:01.000
.

05:42:01.000 --> 05:42:04.000
.

05:42:04.000 --> 05:42:07.000
.

05:42:07.000 --> 05:42:10.000
.

05:42:10.000 --> 05:42:13.000
.

05:42:13.000 --> 05:42:16.000
.

05:42:16.000 --> 05:42:19.000
.

05:42:19.000 --> 05:42:22.000
.

05:42:22.000 --> 05:42:25.000
.

05:42:25.000 --> 05:42:28.000
.

05:42:28.000 --> 05:42:31.000
.

05:42:31.000 --> 05:42:34.000
.

05:42:34.000 --> 05:42:37.000
.

05:42:37.000 --> 05:42:40.000
.

05:42:40.000 --> 05:42:43.000
.

05:42:43.000 --> 05:42:46.000
.

05:42:46.000 --> 05:42:49.000
.

05:42:49.000 --> 05:42:52.000
.

05:42:52.000 --> 05:42:55.000
.

05:42:55.000 --> 05:42:58.000
.

05:42:58.000 --> 05:43:01.000
.

05:43:01.000 --> 05:43:04.000
.

05:43:04.000 --> 05:43:07.000
.

05:43:07.000 --> 05:43:10.000
.

05:43:10.000 --> 05:43:13.000
.

05:43:13.000 --> 05:43:16.000
.

05:43:16.000 --> 05:43:19.000
.

05:43:19.000 --> 05:43:22.000
.

05:43:22.000 --> 05:43:25.000
.

05:43:25.000 --> 05:43:28.000
.

05:43:28.000 --> 05:43:31.000
.

05:43:31.000 --> 05:43:34.000
.

05:43:34.000 --> 05:43:37.000
.

05:43:37.000 --> 05:43:40.000
.

05:43:40.000 --> 05:43:43.000
.

05:43:43.000 --> 05:43:46.000
.

05:43:46.000 --> 05:43:49.000
.

05:43:49.000 --> 05:43:52.000
.

05:43:52.000 --> 05:43:55.000
.

05:43:55.000 --> 05:43:58.000
.

05:43:58.000 --> 05:44:01.000
.

05:44:01.000 --> 05:44:04.000
.

05:44:04.000 --> 05:44:07.000
.

05:44:07.000 --> 05:44:10.000
.

05:44:10.000 --> 05:44:13.000
.

05:44:13.000 --> 05:44:16.000
.

05:44:16.000 --> 05:44:19.000
.

05:44:19.000 --> 05:44:22.000
.

05:44:22.000 --> 05:44:25.000
.

05:44:25.000 --> 05:44:28.000
.

05:44:28.000 --> 05:44:31.000
.

05:44:31.000 --> 05:44:34.000
.

05:44:34.000 --> 05:44:37.000
.

05:44:37.000 --> 05:44:40.000
.

05:44:40.000 --> 05:44:43.000
.

05:44:43.000 --> 05:44:46.000
.

05:44:46.000 --> 05:44:49.000
.

05:44:49.000 --> 05:44:52.000
.

05:44:52.000 --> 05:44:55.000
.

05:44:55.000 --> 05:44:58.000
.

05:44:58.000 --> 05:45:01.000
.

05:45:01.000 --> 05:45:04.000
.

05:45:04.000 --> 05:45:07.000
.

05:45:07.000 --> 05:45:10.000
.

05:45:10.000 --> 05:45:13.000
.

05:45:13.000 --> 05:45:16.000
.

05:45:16.000 --> 05:45:19.000
.

05:45:19.000 --> 05:45:22.000
.

05:45:22.000 --> 05:45:25.000
.

05:45:25.000 --> 05:45:28.000
.

05:45:28.000 --> 05:45:31.000
.

05:45:31.000 --> 05:45:34.000
.

05:45:34.000 --> 05:45:37.000
.

05:45:37.000 --> 05:45:40.000
.

05:45:40.000 --> 05:45:43.000
.

05:45:43.000 --> 05:45:46.000
.

05:45:46.000 --> 05:45:49.000
.

05:45:49.000 --> 05:45:52.000
.

05:45:52.000 --> 05:45:55.000
.

05:45:55.000 --> 05:45:58.000
.

05:45:58.000 --> 05:46:01.000
.

05:46:01.000 --> 05:46:04.000
.

05:46:04.000 --> 05:46:07.000
.

05:46:07.000 --> 05:46:10.000
.

05:46:10.000 --> 05:46:13.000
.

05:46:13.000 --> 05:46:16.000
.

05:46:16.000 --> 05:46:19.000
.

05:46:19.000 --> 05:46:22.000
.

05:46:22.000 --> 05:46:25.000
.

05:46:25.000 --> 05:46:28.000
.

05:46:28.000 --> 05:46:31.000
.

05:46:31.000 --> 05:46:34.000
.

05:46:34.000 --> 05:46:37.000
.

05:46:37.000 --> 05:46:40.000
.

05:46:40.000 --> 05:46:43.000
.

05:46:43.000 --> 05:46:46.000
.

05:46:46.000 --> 05:46:49.000
.

05:46:49.000 --> 05:46:52.000
.

05:46:52.000 --> 05:46:55.000
.

05:46:55.000 --> 05:46:58.000
.

05:46:58.000 --> 05:47:01.000
.

05:47:01.000 --> 05:47:04.000
.

05:47:04.000 --> 05:47:07.000
.

05:47:07.000 --> 05:47:10.000
.

05:47:10.000 --> 05:47:13.000
.

05:47:13.000 --> 05:47:16.000
.

05:47:16.000 --> 05:47:19.000
.

05:47:19.000 --> 05:47:22.000
.

05:47:22.000 --> 05:47:25.000
.

05:47:25.000 --> 05:47:28.000
.

05:47:28.000 --> 05:47:31.000
.

05:47:31.000 --> 05:47:34.000
.

05:47:34.000 --> 05:47:37.000
.

05:47:37.000 --> 05:47:40.000
.

05:47:40.000 --> 05:47:43.000
.

05:47:43.000 --> 05:47:46.000
.

05:47:46.000 --> 05:47:49.000
.

05:47:49.000 --> 05:47:52.000
.

05:47:52.000 --> 05:47:55.000
.

05:47:55.000 --> 05:47:58.000
.

05:47:58.000 --> 05:48:01.000
.

05:48:01.000 --> 05:48:04.000
.

05:48:04.000 --> 05:48:07.000
.

05:48:07.000 --> 05:48:10.000
.

05:48:10.000 --> 05:48:13.000
.

05:48:13.000 --> 05:48:16.000
.

05:48:16.000 --> 05:48:19.000
.

05:48:19.000 --> 05:48:22.000
.

05:48:22.000 --> 05:48:25.000
.

05:48:25.000 --> 05:48:28.000
.

05:48:28.000 --> 05:48:31.000
.

05:48:31.000 --> 05:48:34.000
.

05:48:34.000 --> 05:48:37.000
.

05:48:37.000 --> 05:48:40.000
.

05:48:40.000 --> 05:48:43.000
.

05:48:43.000 --> 05:48:46.000
.

05:48:46.000 --> 05:48:49.000
.

05:48:49.000 --> 05:48:52.000
.

05:48:52.000 --> 05:48:55.000
.

05:48:55.000 --> 05:48:58.000
.

05:48:58.000 --> 05:49:01.000
.

05:49:01.000 --> 05:49:04.000
.

05:49:04.000 --> 05:49:07.000
.

05:49:07.000 --> 05:49:10.000
.

05:49:10.000 --> 05:49:13.000
.

05:49:13.000 --> 05:49:16.000
.

05:49:16.000 --> 05:49:19.000
.

05:49:19.000 --> 05:49:22.000
.

05:49:22.000 --> 05:49:25.000
.

05:49:25.000 --> 05:49:28.000
.

05:49:28.000 --> 05:49:31.000
.

05:49:31.000 --> 05:49:34.000
.

05:49:34.000 --> 05:49:37.000
.

05:49:37.000 --> 05:49:40.000
.

05:49:40.000 --> 05:49:43.000
.

05:49:43.000 --> 05:49:46.000
.

05:49:46.000 --> 05:49:49.000
.

05:49:49.000 --> 05:49:52.000
.

05:49:52.000 --> 05:49:55.000
.

05:49:55.000 --> 05:49:58.000
.

05:49:58.000 --> 05:50:01.000
.

05:50:01.000 --> 05:50:04.000
.

05:50:04.000 --> 05:50:07.000
.

05:50:07.000 --> 05:50:10.000
.

05:50:10.000 --> 05:50:13.000
.

05:50:13.000 --> 05:50:16.000
.

05:50:16.000 --> 05:50:19.000
.

05:50:19.000 --> 05:50:22.000
.

05:50:22.000 --> 05:50:25.000
.

05:50:25.000 --> 05:50:28.000
.

05:50:28.000 --> 05:50:31.000
.

05:50:31.000 --> 05:50:34.000
.

05:50:34.000 --> 05:50:37.000
.

05:50:37.000 --> 05:50:40.000
.

05:50:40.000 --> 05:50:43.000
.

05:50:43.000 --> 05:50:46.000
.

05:50:46.000 --> 05:50:49.000
.

05:50:49.000 --> 05:50:52.000
.

05:50:52.000 --> 05:50:55.000
.

05:50:55.000 --> 05:50:58.000
.

05:50:58.000 --> 05:51:01.000
.

05:51:01.000 --> 05:51:04.000
.

05:51:04.000 --> 05:51:07.000
.

05:51:07.000 --> 05:51:10.000
.

05:51:10.000 --> 05:51:13.000
.

05:51:13.000 --> 05:51:16.000
.

05:51:16.000 --> 05:51:19.000
.

05:51:19.000 --> 05:51:22.000
.

05:51:22.000 --> 05:51:25.000
.

05:51:25.000 --> 05:51:28.000
.

05:51:28.000 --> 05:51:31.000
.

05:51:31.000 --> 05:51:34.000
.

05:51:34.000 --> 05:51:37.000
.

05:51:37.000 --> 05:51:40.000
.

05:51:40.000 --> 05:51:43.000
.

05:51:43.000 --> 05:51:46.000
.

05:51:46.000 --> 05:51:49.000
.

05:51:49.000 --> 05:51:52.000
.

05:51:52.000 --> 05:51:55.000
.

05:51:55.000 --> 05:51:58.000
.

05:51:58.000 --> 05:52:01.000
.

05:52:01.000 --> 05:52:04.000
.

05:52:04.000 --> 05:52:07.000
.

05:52:07.000 --> 05:52:10.000
.

05:52:10.000 --> 05:52:13.000
.

05:52:13.000 --> 05:52:16.000
.

05:52:16.000 --> 05:52:19.000
.

05:52:19.000 --> 05:52:22.000
.

05:52:22.000 --> 05:52:25.000
.

05:52:25.000 --> 05:52:28.000
.

05:52:28.000 --> 05:52:31.000
.

05:52:31.000 --> 05:52:34.000
.

05:52:34.000 --> 05:52:37.000
.

05:52:37.000 --> 05:52:40.000
.

05:52:40.000 --> 05:52:43.000
.

05:52:43.000 --> 05:52:46.000
.

05:52:46.000 --> 05:52:49.000
.

05:52:49.000 --> 05:52:52.000
.

05:52:52.000 --> 05:52:55.000
.

05:52:55.000 --> 05:52:58.000
.

05:52:58.000 --> 05:53:01.000
.

05:53:01.000 --> 05:53:04.000
.

05:53:04.000 --> 05:53:07.000
.

05:53:07.000 --> 05:53:10.000
.

05:53:10.000 --> 05:53:13.000
.

05:53:13.000 --> 05:53:16.000
.

05:53:16.000 --> 05:53:19.000
.

05:53:19.000 --> 05:53:22.000
.

05:53:22.000 --> 05:53:25.000
.

05:53:25.000 --> 05:53:28.000
.

05:53:28.000 --> 05:53:31.000
.

05:53:31.000 --> 05:53:34.000
.

05:53:34.000 --> 05:53:37.000
.

05:53:37.000 --> 05:53:40.000
.

05:53:40.000 --> 05:53:43.000
.

05:53:43.000 --> 05:53:46.000
.

05:53:46.000 --> 05:53:49.000
.

05:53:49.000 --> 05:53:52.000
.

05:53:52.000 --> 05:53:55.000
.

05:53:55.000 --> 05:53:58.000
.

05:53:58.000 --> 05:54:01.000
.

05:54:01.000 --> 05:54:04.000
.

05:54:04.000 --> 05:54:07.000
.

05:54:07.000 --> 05:54:10.000
.

05:54:10.000 --> 05:54:13.000
.

05:54:13.000 --> 05:54:16.000
.

05:54:16.000 --> 05:54:19.000
.

05:54:19.000 --> 05:54:22.000
.

05:54:22.000 --> 05:54:25.000
.

05:54:25.000 --> 05:54:28.000
.

05:54:28.000 --> 05:54:31.000
.

05:54:31.000 --> 05:54:34.000
.

05:54:34.000 --> 05:54:37.000
.

05:54:37.000 --> 05:54:40.000
.

05:54:40.000 --> 05:54:43.000
.

05:54:43.000 --> 05:54:46.000
.

05:54:46.000 --> 05:54:49.000
.

05:54:49.000 --> 05:54:52.000
.

05:54:52.000 --> 05:54:55.000
.

05:54:55.000 --> 05:54:58.000
.

05:54:58.000 --> 05:55:01.000
.

05:55:01.000 --> 05:55:04.000
.

05:55:04.000 --> 05:55:07.000
.

05:55:07.000 --> 05:55:10.000
.

05:55:10.000 --> 05:55:13.000
.

05:55:13.000 --> 05:55:16.000
.

05:55:16.000 --> 05:55:19.000
.

05:55:19.000 --> 05:55:22.000
.

05:55:22.000 --> 05:55:25.000
.

05:55:25.000 --> 05:55:28.000
.

05:55:28.000 --> 05:55:31.000
.

05:55:31.000 --> 05:55:34.000
.

05:55:34.000 --> 05:55:37.000
.

05:55:37.000 --> 05:55:40.000
.

05:55:40.000 --> 05:55:43.000
.

05:55:43.000 --> 05:55:46.000
.

05:55:46.000 --> 05:55:49.000
.

05:55:49.000 --> 05:55:52.000
.

05:55:52.000 --> 05:55:55.000
.

05:55:55.000 --> 05:55:58.000
.

05:55:58.000 --> 05:56:01.000
.

05:56:01.000 --> 05:56:04.000
.

05:56:04.000 --> 05:56:07.000
.

05:56:07.000 --> 05:56:10.000
.

05:56:10.000 --> 05:56:13.000
.

05:56:13.000 --> 05:56:16.000
.

05:56:16.000 --> 05:56:19.000
.

05:56:19.000 --> 05:56:22.000
.

05:56:22.000 --> 05:56:25.000
.

05:56:25.000 --> 05:56:28.000
.

05:56:28.000 --> 05:56:31.000
.

05:56:31.000 --> 05:56:34.000
.

05:56:34.000 --> 05:56:37.000
.

05:56:37.000 --> 05:56:40.000
.

05:56:40.000 --> 05:56:43.000
.

05:56:43.000 --> 05:56:46.000
.

05:56:46.000 --> 05:56:49.000
.

05:56:49.000 --> 05:56:52.000
.

05:56:52.000 --> 05:56:55.000
.

05:56:55.000 --> 05:56:58.000
.

05:56:58.000 --> 05:57:01.000
.

05:57:01.000 --> 05:57:04.000
.

05:57:04.000 --> 05:57:07.000
.

05:57:07.000 --> 05:57:10.000
.

05:57:10.000 --> 05:57:13.000
.

05:57:13.000 --> 05:57:16.000
.

05:57:16.000 --> 05:57:19.000
.

05:57:19.000 --> 05:57:22.000
.

05:57:22.000 --> 05:57:25.000
.

05:57:25.000 --> 05:57:28.000
.

05:57:28.000 --> 05:57:31.000
.

05:57:31.000 --> 05:57:34.000
.

05:57:34.000 --> 05:57:37.000
.

05:57:37.000 --> 05:57:40.000
.

05:57:40.000 --> 05:57:43.000
.

05:57:43.000 --> 05:57:46.000
.

05:57:46.000 --> 05:57:49.000
.

05:57:49.000 --> 05:57:52.000
.

05:57:52.000 --> 05:57:55.000
.

05:57:55.000 --> 05:57:58.000
.

05:57:58.000 --> 05:58:01.000
.

05:58:01.000 --> 05:58:04.000
.

05:58:04.000 --> 05:58:07.000
.

05:58:07.000 --> 05:58:10.000
.

05:58:10.000 --> 05:58:13.000
.

05:58:13.000 --> 05:58:16.000
.

05:58:16.000 --> 05:58:19.000
.

05:58:19.000 --> 05:58:22.000
.

05:58:22.000 --> 05:58:25.000
.

05:58:25.000 --> 05:58:28.000
.

05:58:28.000 --> 05:58:31.000
.

05:58:31.000 --> 05:58:34.000
.

05:58:34.000 --> 05:58:37.000
.

05:58:37.000 --> 05:58:40.000
.

05:58:40.000 --> 05:58:43.000
.

05:58:43.000 --> 05:58:46.000
.

05:58:46.000 --> 05:58:49.000
.

05:58:49.000 --> 05:58:52.000
.

05:58:52.000 --> 05:58:55.000
.

05:58:55.000 --> 05:58:58.000
.

05:58:58.000 --> 05:59:01.000
.

05:59:01.000 --> 05:59:04.000
.

05:59:04.000 --> 05:59:07.000
.

05:59:07.000 --> 05:59:10.000
.

05:59:10.000 --> 05:59:13.000
.

05:59:13.000 --> 05:59:16.000
.

05:59:16.000 --> 05:59:19.000
.

05:59:19.000 --> 05:59:22.000
.

05:59:22.000 --> 05:59:25.000
.

05:59:25.000 --> 05:59:28.000
.

05:59:28.000 --> 05:59:31.000
.

05:59:31.000 --> 05:59:34.000
.

05:59:34.000 --> 05:59:37.000
.

05:59:37.000 --> 05:59:40.000
.

05:59:42.000 --> 05:59:45.000
.

05:59:45.000 --> 05:59:48.000
.

05:59:48.000 --> 05:59:51.000
.

05:59:51.000 --> 05:59:54.000
.

05:59:54.000 --> 05:59:57.000
.

05:59:57.000 --> 06:00:00.000
.

06:00:00.000 --> 06:00:03.000
.

06:00:03.000 --> 06:00:06.000
.

06:00:06.000 --> 06:00:09.000
.

06:00:09.000 --> 06:00:12.000
.

06:00:12.000 --> 06:00:15.000
.

06:00:15.000 --> 06:00:18.000
.

06:00:18.000 --> 06:00:21.000
.

06:00:21.000 --> 06:00:24.000
.

06:00:24.000 --> 06:00:27.000
.

06:00:27.000 --> 06:00:30.000
.

06:00:30.000 --> 06:00:33.000
.

06:00:33.000 --> 06:00:36.000
.

06:00:36.000 --> 06:00:39.000
.

06:00:39.000 --> 06:00:42.000
.

06:00:42.000 --> 06:00:45.000
.

06:00:45.000 --> 06:00:48.000
.

06:00:48.000 --> 06:00:51.000
.

06:00:51.000 --> 06:00:54.000
.

06:00:54.000 --> 06:00:57.000
.

06:00:57.000 --> 06:01:00.000
.

06:01:00.000 --> 06:01:03.000
.

06:01:03.000 --> 06:01:06.000
.

06:01:06.000 --> 06:01:09.000
.

06:01:09.000 --> 06:01:12.000
.

06:01:12.000 --> 06:01:15.000
.

06:01:15.000 --> 06:01:18.000
.

06:01:18.000 --> 06:01:21.000
.

06:01:21.000 --> 06:01:24.000
.

06:01:24.000 --> 06:01:27.000
.

06:01:27.000 --> 06:01:30.000
.

06:01:30.000 --> 06:01:33.000
.

06:01:33.000 --> 06:01:36.000
.

06:01:36.000 --> 06:01:39.000
.

06:01:39.000 --> 06:01:42.000
.

06:01:42.000 --> 06:01:45.000
.

06:01:45.000 --> 06:01:48.000
.

06:01:48.000 --> 06:01:51.000
.

06:01:51.000 --> 06:01:54.000
.

06:01:54.000 --> 06:01:57.000
.

06:01:57.000 --> 06:02:00.000
.

06:02:00.000 --> 06:02:03.000
.

06:02:03.000 --> 06:02:06.000
.

06:02:06.000 --> 06:02:09.000
.

06:02:09.000 --> 06:02:12.000
.

06:02:12.000 --> 06:02:15.000
.

06:02:15.000 --> 06:02:18.000
.

06:02:18.000 --> 06:02:21.000
.

06:02:21.000 --> 06:02:24.000
.

06:02:24.000 --> 06:02:27.000
.

06:02:27.000 --> 06:02:30.000
.

06:02:30.000 --> 06:02:33.000
.

06:02:33.000 --> 06:02:36.000
.

06:02:36.000 --> 06:02:39.000
.

06:02:39.000 --> 06:02:42.000
.

06:02:42.000 --> 06:02:45.000
.

06:02:45.000 --> 06:02:48.000
.

06:02:48.000 --> 06:02:51.000
.

06:02:51.000 --> 06:02:54.000
.

06:02:54.000 --> 06:02:57.000
.

06:02:57.000 --> 06:03:00.000
.

06:03:00.000 --> 06:03:03.000
.

06:03:03.000 --> 06:03:06.000
.

06:03:06.000 --> 06:03:09.000
.

06:03:09.000 --> 06:03:12.000
.

06:03:12.000 --> 06:03:15.000
.

06:03:15.000 --> 06:03:18.000
.

06:03:18.000 --> 06:03:21.000
.

06:03:21.000 --> 06:03:24.000
.

06:03:24.000 --> 06:03:27.000
.

06:03:27.000 --> 06:03:30.000
.

06:03:30.000 --> 06:03:33.000
.

06:03:33.000 --> 06:03:36.000
.

06:03:36.000 --> 06:03:39.000
.

06:03:39.000 --> 06:03:42.000
.

06:03:42.000 --> 06:03:45.000
.

06:03:45.000 --> 06:03:48.000
.

06:03:48.000 --> 06:03:51.000
.

06:03:51.000 --> 06:03:54.000
.

06:03:54.000 --> 06:03:57.000
.

06:03:57.000 --> 06:04:00.000
.

06:04:00.000 --> 06:04:03.000
.

06:04:03.000 --> 06:04:06.000
.

06:04:06.000 --> 06:04:09.000
.

06:04:09.000 --> 06:04:12.000
.

06:04:12.000 --> 06:04:15.000
.

06:04:15.000 --> 06:04:18.000
.

06:04:18.000 --> 06:04:21.000
.

06:04:21.000 --> 06:04:24.000
.

06:04:24.000 --> 06:04:27.000
.

06:04:27.000 --> 06:04:30.000
.

06:04:30.000 --> 06:04:33.000
.

06:04:33.000 --> 06:04:36.000
.

06:04:36.000 --> 06:04:39.000
.

06:04:39.000 --> 06:04:42.000
.

06:04:42.000 --> 06:04:45.000
.

06:04:45.000 --> 06:04:48.000
.

06:04:48.000 --> 06:04:51.000
.

06:04:51.000 --> 06:04:54.000
.

06:04:54.000 --> 06:04:57.000
.

06:04:57.000 --> 06:05:00.000
.

06:05:00.000 --> 06:05:03.000
.

06:05:03.000 --> 06:05:06.000
.

06:05:06.000 --> 06:05:09.000
.

06:05:09.000 --> 06:05:12.000
.

06:05:12.000 --> 06:05:15.000
.

06:05:15.000 --> 06:05:18.000
.

06:05:18.000 --> 06:05:21.000
.

06:05:21.000 --> 06:05:24.000
.

06:05:24.000 --> 06:05:27.000
.

06:05:27.000 --> 06:05:30.000
.

06:05:30.000 --> 06:05:33.000
.

06:05:33.000 --> 06:05:36.000
.

06:05:36.000 --> 06:05:39.000
.

06:05:39.000 --> 06:05:42.000
.

06:05:42.000 --> 06:05:45.000
.

06:05:45.000 --> 06:05:48.000
.

06:05:48.000 --> 06:05:51.000
.

06:05:51.000 --> 06:05:54.000
.

06:05:54.000 --> 06:05:57.000
.

06:05:57.000 --> 06:06:00.000
.

06:06:02.000 --> 06:06:05.000
.

06:06:05.000 --> 06:06:08.000
.

06:06:08.000 --> 06:06:11.000
.

06:06:11.000 --> 06:06:14.000
.

06:06:14.000 --> 06:06:17.000
.

06:06:17.000 --> 06:06:20.000
.

06:06:20.000 --> 06:06:23.000
.

06:06:23.000 --> 06:06:26.000
.

06:06:45.000 --> 06:06:48.000
.

06:06:48.000 --> 06:06:51.000
.

06:06:51.000 --> 06:06:54.000
.

06:06:54.000 --> 06:06:57.000
.

06:06:57.000 --> 06:07:00.000
.

06:07:00.000 --> 06:07:03.000
.

06:07:03.000 --> 06:07:06.000
.

06:07:06.000 --> 06:07:09.000
.

06:07:09.000 --> 06:07:12.000
.

06:07:12.000 --> 06:07:15.000
.

06:07:15.000 --> 06:07:18.000
.

06:07:18.000 --> 06:07:21.000
.

06:07:21.000 --> 06:07:24.000
.

06:07:24.000 --> 06:07:27.000
.

06:07:27.000 --> 06:07:30.000
.

06:07:30.000 --> 06:07:33.000
.

06:07:33.000 --> 06:07:36.000
.

06:07:36.000 --> 06:07:39.000
.

06:07:39.000 --> 06:07:42.000
.

06:07:42.000 --> 06:07:45.000
.

06:07:45.000 --> 06:07:48.000
.

06:07:48.000 --> 06:07:51.000
.

06:07:51.000 --> 06:07:54.000
.

06:07:54.000 --> 06:07:57.000
.

06:07:57.000 --> 06:08:00.000
.

06:08:00.000 --> 06:08:03.000
.

06:08:03.000 --> 06:08:06.000
.

06:08:06.000 --> 06:08:09.000
.

06:08:09.000 --> 06:08:12.000
.

06:08:12.000 --> 06:08:15.000
.

06:08:15.000 --> 06:08:18.000
.

06:08:18.000 --> 06:08:21.000
.

06:08:21.000 --> 06:08:24.000
.

06:08:24.000 --> 06:08:27.000
.

06:08:27.000 --> 06:08:30.000
.

06:08:30.000 --> 06:08:33.000
.

06:08:33.000 --> 06:08:36.000
.

06:08:36.000 --> 06:08:39.000
.

06:08:39.000 --> 06:08:42.000
.

06:08:42.000 --> 06:08:45.000
.

06:08:45.000 --> 06:08:48.000
.

06:08:48.000 --> 06:08:51.000
.

06:08:51.000 --> 06:08:54.000
.

06:08:54.000 --> 06:08:57.000
.

06:08:57.000 --> 06:09:00.000
.

06:09:00.000 --> 06:09:03.000
.

06:09:03.000 --> 06:09:06.000
.

06:09:06.000 --> 06:09:09.000
.

06:09:31.000 --> 06:09:34.000
Let's see.

06:09:34.000 --> 06:09:37.000
From one of these

06:09:37.000 --> 06:09:40.000
.

06:09:40.000 --> 06:09:43.000
Where is this running?

06:09:43.000 --> 06:09:46.000
.

06:09:46.000 --> 06:09:49.000
.

06:09:49.000 --> 06:09:52.000
.

06:09:52.000 --> 06:09:55.000
.

06:09:55.000 --> 06:09:58.000
.

06:09:58.000 --> 06:10:01.000
.

06:10:01.000 --> 06:10:04.000
.

06:10:10.000 --> 06:10:13.000
.

06:10:13.000 --> 06:10:16.000
.

06:10:16.000 --> 06:10:19.000
.

06:10:19.000 --> 06:10:22.000
.

06:10:22.000 --> 06:10:25.000
.

06:10:25.000 --> 06:10:28.000
.

06:10:28.000 --> 06:10:31.000
.

06:10:31.000 --> 06:10:34.000
.

06:10:34.000 --> 06:10:37.000
.

06:10:37.000 --> 06:10:40.000
.

06:10:40.000 --> 06:10:43.000
.

06:10:43.000 --> 06:10:46.000
.

06:10:46.000 --> 06:10:49.000
.

06:10:49.000 --> 06:10:52.000
.

06:10:52.000 --> 06:10:55.000
.

06:10:55.000 --> 06:10:58.000
.

06:10:58.000 --> 06:11:01.000
.

06:11:01.000 --> 06:11:04.000
.

06:11:04.000 --> 06:11:07.000
.

06:11:07.000 --> 06:11:10.000
.

06:11:10.000 --> 06:11:13.000
.

06:11:13.000 --> 06:11:16.000
.

06:11:16.000 --> 06:11:19.000
.

06:11:19.000 --> 06:11:22.000
.

06:11:22.000 --> 06:11:25.000
.

06:11:25.000 --> 06:11:28.000
.

06:11:28.000 --> 06:11:31.000
.

06:11:31.000 --> 06:11:34.000
.

06:11:34.000 --> 06:11:37.000
.

06:11:37.000 --> 06:11:40.000
.

06:11:40.000 --> 06:11:43.000
.

06:11:43.000 --> 06:11:46.000
.

06:11:46.000 --> 06:11:49.000
.

06:11:49.000 --> 06:11:52.000
.

06:11:52.000 --> 06:11:55.000
.

06:11:55.000 --> 06:11:58.000
.

06:11:58.000 --> 06:12:01.000
.

06:12:01.000 --> 06:12:04.000
.

06:12:04.000 --> 06:12:07.000
.

06:12:07.000 --> 06:12:10.000
.

06:12:10.000 --> 06:12:13.000
.

06:12:13.000 --> 06:12:16.000
.

06:12:16.000 --> 06:12:19.000
.

06:12:19.000 --> 06:12:22.000
.

06:12:22.000 --> 06:12:25.000
.

06:12:25.000 --> 06:12:28.000
.

06:12:28.000 --> 06:12:31.000
.

06:12:31.000 --> 06:12:34.000
.

06:12:34.000 --> 06:12:37.000
.

06:12:37.000 --> 06:12:40.000
.

06:12:40.000 --> 06:12:43.000
.

06:12:43.000 --> 06:12:46.000
.

06:12:46.000 --> 06:12:49.000
.

06:12:49.000 --> 06:12:52.000
.

06:12:52.000 --> 06:12:55.000
.

06:12:55.000 --> 06:12:58.000
.

06:12:58.000 --> 06:13:01.000
.

06:13:01.000 --> 06:13:04.000
.

06:13:04.000 --> 06:13:07.000
.

06:13:07.000 --> 06:13:10.000
.

06:13:10.000 --> 06:13:13.000
.

06:13:13.000 --> 06:13:16.000
.

06:13:16.000 --> 06:13:19.000
.

06:13:19.000 --> 06:13:22.000
.

06:13:22.000 --> 06:13:25.000
.

06:13:25.000 --> 06:13:28.000
.

06:13:28.000 --> 06:13:31.000
.

06:13:31.000 --> 06:13:34.000
.

06:13:34.000 --> 06:13:37.000
.

06:13:37.000 --> 06:13:40.000
.

06:13:40.000 --> 06:13:43.000
.

06:13:43.000 --> 06:13:46.000
.

06:13:46.000 --> 06:13:49.000
.

06:13:49.000 --> 06:13:52.000
.

06:13:52.000 --> 06:13:55.000
.

06:13:55.000 --> 06:13:58.000
.

06:13:58.000 --> 06:14:01.000
.

06:14:01.000 --> 06:14:04.000
.

06:14:04.000 --> 06:14:07.000
.

06:14:07.000 --> 06:14:10.000
.

06:14:10.000 --> 06:14:13.000
.

06:14:13.000 --> 06:14:16.000
.

06:14:16.000 --> 06:14:19.000
.

06:14:19.000 --> 06:14:22.000
.

06:14:22.000 --> 06:14:25.000
.

06:14:25.000 --> 06:14:28.000
.

06:14:28.000 --> 06:14:31.000
.

06:14:31.000 --> 06:14:34.000
.

06:14:34.000 --> 06:14:37.000
.

06:14:37.000 --> 06:14:40.000
.

06:14:40.000 --> 06:14:43.000
.

06:14:43.000 --> 06:14:46.000
.

06:14:46.000 --> 06:14:49.000
.

06:14:49.000 --> 06:14:52.000
.

06:14:52.000 --> 06:14:55.000
.

06:14:55.000 --> 06:14:58.000
.

06:14:58.000 --> 06:15:01.000
.

06:15:01.000 --> 06:15:04.000
.

06:15:04.000 --> 06:15:07.000
.

06:15:07.000 --> 06:15:10.000
.

06:15:10.000 --> 06:15:13.000
.

06:15:13.000 --> 06:15:16.000
.

06:15:16.000 --> 06:15:19.000
.

06:15:19.000 --> 06:15:22.000
.

06:15:22.000 --> 06:15:25.000
.

06:15:25.000 --> 06:15:28.000
.

06:15:28.000 --> 06:15:31.000
.

06:15:31.000 --> 06:15:34.000
.

06:15:34.000 --> 06:15:37.000
.

06:15:37.000 --> 06:15:40.000
.

06:15:40.000 --> 06:15:43.000
.

06:15:43.000 --> 06:15:46.000
.

06:15:46.000 --> 06:15:49.000
.

06:15:49.000 --> 06:15:52.000
.

06:15:52.000 --> 06:15:55.000
.

06:15:55.000 --> 06:15:58.000
.

06:15:58.000 --> 06:16:01.000
.

06:16:01.000 --> 06:16:04.000
.

06:16:04.000 --> 06:16:07.000
.

06:16:07.000 --> 06:16:10.000
.

06:16:10.000 --> 06:16:13.000
.

06:16:13.000 --> 06:16:16.000
.

06:16:16.000 --> 06:16:19.000
.

06:16:19.000 --> 06:16:22.000
.

06:16:22.000 --> 06:16:25.000
.

06:16:25.000 --> 06:16:28.000
.

06:16:28.000 --> 06:16:31.000
.

06:16:31.000 --> 06:16:34.000
.

06:16:34.000 --> 06:16:37.000
.

06:16:37.000 --> 06:16:40.000
.

06:16:40.000 --> 06:16:43.000
.

06:16:43.000 --> 06:16:46.000
.

06:16:46.000 --> 06:16:49.000
.

06:16:49.000 --> 06:16:52.000
.

06:16:52.000 --> 06:16:55.000
.

06:16:55.000 --> 06:16:58.000
.

06:16:58.000 --> 06:17:01.000
.

06:17:01.000 --> 06:17:04.000
.

06:17:04.000 --> 06:17:07.000
.

06:17:07.000 --> 06:17:10.000
.

06:17:10.000 --> 06:17:13.000
.

06:17:13.000 --> 06:17:16.000
.

06:17:16.000 --> 06:17:19.000
.

06:17:19.000 --> 06:17:22.000
.

06:17:22.000 --> 06:17:25.000
.

06:17:25.000 --> 06:17:28.000
.

06:17:28.000 --> 06:17:31.000
.

06:17:31.000 --> 06:17:34.000
.

06:17:34.000 --> 06:17:37.000
.

06:17:37.000 --> 06:17:40.000
.

06:17:40.000 --> 06:17:43.000
.

06:17:43.000 --> 06:17:46.000
.

06:17:46.000 --> 06:17:49.000
.

06:17:49.000 --> 06:17:52.000
.

06:17:52.000 --> 06:17:55.000
.

06:17:55.000 --> 06:17:58.000
.

06:17:58.000 --> 06:18:01.000
.

06:18:01.000 --> 06:18:04.000
.

06:18:04.000 --> 06:18:07.000
.

06:18:07.000 --> 06:18:10.000
.

06:18:10.000 --> 06:18:13.000
.

06:18:13.000 --> 06:18:16.000
.

06:18:16.000 --> 06:18:19.000
.

06:18:19.000 --> 06:18:22.000
.

06:18:22.000 --> 06:18:25.000
.

06:18:25.000 --> 06:18:26.000
.

                
2 videos