← Back
Mischa Vandenburg October 14, 2025 32m

The Kubernetes Homelab That Prints Job Offers (Simple & Proven)

Read full transcript 25 segments
  1. I run a five node Kubernetes cluster in I run a five node Kubernetes cluster in my basement. This line on your resume my basement. This line on your resume my basement. This line on your resume will make you stand out from 99% of will make you stand out from 99% of will make you stand out from 99% of DevOps job seekers. And in this video, DevOps job seekers. And in this video, DevOps job seekers. And in this video, I'm going to show you how to build a I'm going to show you how to build a I'm going to show you how to build a Kubernetes home lab from scratch. The Kubernetes home lab from scratch. The Kubernetes home lab from scratch. The first thing we're going to talk about is first thing we're going to talk about is first thing we're going to talk about is hardware. I don't recommend using hardware. I don't recommend using hardware. I don't recommend using virtual machines. I recommend using bare virtual machines. I recommend using bare virtual machines. I recommend using bare metal devices. And the reason for this metal devices. And the reason for this metal devices. And the reason for this is that virtualization is that virtualization is that virtualization adds an extra layer of abstraction to adds an extra layer of abstraction to adds an extra layer of abstraction to your learning that you might not be your learning that you might not be your learning that you might not be interested in if your goal is to learn interested in if your goal is to learn interested in if your goal is to learn Kubernetes because Kubernetes is the Kubernetes because Kubernetes is the Kubernetes because Kubernetes is the tool to focus on if your goal is to land tool to focus on if your goal is to land tool to focus on if your goal is to land a DevOps job. So I recommend getting as a DevOps job. So I recommend getting as a DevOps job. So I recommend getting as close to the source as possible close to the source as possible close to the source as possible basically and you do that by running basically and you do that by running basically and you do that by running bare metal devices. Also, there is bare metal devices. Also, there is bare metal devices. Also, there is something about actually seeing the something about actually seeing the something about actually seeing the device like I have behind me here. device like I have behind me here. device like I have behind me here. There's something about actually seeing There's something about actually seeing There's something about actually seeing the device and if you run an application the device and if you run an application the device and if you run an application knowing that it's actually running on knowing that it's actually running on knowing that it's actually running on that device rather than on an that device rather than on an that device rather than on an abstraction on that device. It's abstraction on that device. It's abstraction on that device. It's something you have to experience for something you have to experience for something you have to experience for yourself, but there's something really yourself, but there's something really yourself, but there's something really satisfying about that. Now, you don't satisfying about that. Now, you don't satisfying about that. Now, you don't need a huge rack. You don't need fancy need a huge rack. You don't need fancy need a huge rack. You don't need fancy RGB lighting. You don't need these huge RGB lighting. You don't need these huge RGB lighting. You don't need these huge setups that you see in other people's setups that you see in other people's setups that you see in other people's YouTube videos. I am 5 years into my YouTube videos. I am 5 years into my YouTube videos. I am 5 years into my career now, and this little rack is the career now, and this little rack is the career now, and this little rack is the first rack that I've bought. So far, first rack that I've bought. So far, first rack that I've bought. So far, I've only been using old refurbished I've only been using old refurbished I've only been using old refurbished hardware. So, in this video, we're going hardware. So, in this video, we're going hardware. So, in this video, we're going to be using two Raspberry Pies, but you to be using two Raspberry Pies, but you to be using two Raspberry Pies, but you don't need to use Raspberry Pies. I'm

  2. don't need to use Raspberry Pies. I'm don't need to use Raspberry Pies. I'm just doing that because I have them just doing that because I have them just doing that because I have them lying around and I want to start using lying around and I want to start using lying around and I want to start using them. But up until this point, I have them. But up until this point, I have them. But up until this point, I have used old laptops or old refurbished used old laptops or old refurbished used old laptops or old refurbished enterprise hardware for my home labbing. enterprise hardware for my home labbing. enterprise hardware for my home labbing. You can really literally get started You can really literally get started You can really literally get started with an old laptop you have lying with an old laptop you have lying with an old laptop you have lying around. So, don't take the hardware uh around. So, don't take the hardware uh around. So, don't take the hardware uh requirements as something you have to requirements as something you have to requirements as something you have to have. There's a recent trend happening have. There's a recent trend happening have. There's a recent trend happening with mini home lab racks and that really with mini home lab racks and that really with mini home lab racks and that really spoke to me because I live in a small spoke to me because I live in a small spoke to me because I live in a small apartment and I'm also very sensitive to apartment and I'm also very sensitive to apartment and I'm also very sensitive to noise. So I can't really have a huge noise. So I can't really have a huge noise. So I can't really have a huge rack with enterprisegrade rack mounted rack with enterprisegrade rack mounted rack with enterprisegrade rack mounted servers in there because they are noisy servers in there because they are noisy servers in there because they are noisy and they take up a lot of space. So I and they take up a lot of space. So I and they take up a lot of space. So I really like this idea of doing a mini really like this idea of doing a mini really like this idea of doing a mini rack. So I I bought some hardware and I rack. So I I bought some hardware and I rack. So I I bought some hardware and I already had the pies lying around. So it already had the pies lying around. So it already had the pies lying around. So it was a good match and that's why I went was a good match and that's why I went was a good match and that's why I went for it. In this video, I'm going to be for it. In this video, I'm going to be for it. In this video, I'm going to be using two Raspberry Pi 5s, one of 8 GB using two Raspberry Pi 5s, one of 8 GB using two Raspberry Pi 5s, one of 8 GB and one of 4 GB. And I'm I mounted them and one of 4 GB. And I'm I mounted them and one of 4 GB. And I'm I mounted them in a Geekpie 10-in rack with eight in a Geekpie 10-in rack with eight in a Geekpie 10-in rack with eight units. I also got the rack mount for units. I also got the rack mount for units. I also got the rack mount for Raspberry Pi 5, which holds two Raspberry Pi 5, which holds two Raspberry Pi 5, which holds two Raspberry Pies. And I really like this Raspberry Pies. And I really like this Raspberry Pies. And I really like this mount because it shows two HDMI ports mount because it shows two HDMI ports mount because it shows two HDMI ports that I can just easily access from the that I can just easily access from the that I can just easily access from the outside if I need to. And it just looks outside if I need to. And it just looks outside if I need to. And it just looks really clean with the LED lights and really clean with the LED lights and really clean with the LED lights and such. You can get the full parts list such. You can get the full parts list such. You can get the full parts list and hardware specification by and hardware specification by and hardware specification by downloading the full written home lab downloading the full written home lab downloading the full written home lab guide from the description below. So, guide from the description below. So, guide from the description below. So, now that we have covered hardware, let's now that we have covered hardware, let's now that we have covered hardware, let's dig in. I'm using two SD cards. So, each dig in. I'm using two SD cards. So, each dig in. I'm using two SD cards. So, each of these pies, the rack is holding two of these pies, the rack is holding two of these pies, the rack is holding two pies, and each of them has an S 64 GB SD

  3. pies, and each of them has an S 64 GB SD pies, and each of them has an S 64 GB SD card, and I just used the Raspberry Pi card, and I just used the Raspberry Pi card, and I just used the Raspberry Pi imager to flash those. I used the imager to flash those. I used the imager to flash those. I used the Raspian uh OS, so the the one that you Raspian uh OS, so the the one that you Raspian uh OS, so the the one that you get with the graphical environment. And get with the graphical environment. And get with the graphical environment. And in terms of settings, all I've done is in terms of settings, all I've done is in terms of settings, all I've done is set a password and give them a public set a password and give them a public set a password and give them a public SSH key. I haven't done any other SSH key. I haven't done any other SSH key. I haven't done any other settings. Uh because you you you get settings. Uh because you you you get settings. Uh because you you you get that when you do the imager, you get that when you do the imager, you get that when you do the imager, you get some settings that you can do and apply some settings that you can do and apply some settings that you can do and apply them right away into the Pi. All I did them right away into the Pi. All I did them right away into the Pi. All I did was add my user password and a public was add my user password and a public was add my user password and a public SSH key. Nothing else. So these devices SSH key. Nothing else. So these devices SSH key. Nothing else. So these devices are now on my network with the following are now on my network with the following are now on my network with the following IP addresses 10.39 and 10.60. 60 and I IP addresses 10.39 and 10.60. 60 and I IP addresses 10.39 and 10.60. 60 and I gave them an alias in my Etsy hosts gave them an alias in my Etsy hosts gave them an alias in my Etsy hosts file. So what I can do now is SSH file. So what I can do now is SSH file. So what I can do now is SSH Misha at pi1. Misha at pi1. Misha at pi1. Then this is going to prompt me for my Then this is going to prompt me for my Then this is going to prompt me for my SSH key. And now I am sshed into it. So SSH key. And now I am sshed into it. So SSH key. And now I am sshed into it. So my PI1 my PI1 my PI1 has um free sh the the PI1 has 7.9 GB of has um free sh the the PI1 has 7.9 GB of has um free sh the the PI1 has 7.9 GB of RAM. And if I split this, let's do a RAM. And if I split this, let's do a RAM. And if I split this, let's do a horizontal split. SSH Misha at Pi 2.

  4. horizontal split. SSH Misha at Pi 2. horizontal split. SSH Misha at Pi 2. Yes. Yes. Yes. And And And now I'm SSH into the second PI. And this now I'm SSH into the second PI. And this now I'm SSH into the second PI. And this one has 4 GB of RAM as we see. So when I one has 4 GB of RAM as we see. So when I one has 4 GB of RAM as we see. So when I was preparing for this video, I was was preparing for this video, I was was preparing for this video, I was actually mapping out all of the steps actually mapping out all of the steps actually mapping out all of the steps and thinking of doing a pretty polished and thinking of doing a pretty polished and thinking of doing a pretty polished video. But actually, I think there's video. But actually, I think there's video. But actually, I think there's more value if you see my thinking more value if you see my thinking more value if you see my thinking process as I'm going along with this process as I'm going along with this process as I'm going along with this video, as I'm actually building it. And video, as I'm actually building it. And video, as I'm actually building it. And I figured I I'm just going to do this I figured I I'm just going to do this I figured I I'm just going to do this off the cuff. I'm going to make a bunch off the cuff. I'm going to make a bunch off the cuff. I'm going to make a bunch of mistakes along the way. I going to of mistakes along the way. I going to of mistakes along the way. I going to need to do to do some debugging. I think need to do to do some debugging. I think need to do to do some debugging. I think that's actually much more valuable that's actually much more valuable that's actually much more valuable rather than just giving you a list of rather than just giving you a list of rather than just giving you a list of steps. Now, I have done this thing many steps. Now, I have done this thing many steps. Now, I have done this thing many times before. I know what to do, but I times before. I know what to do, but I times before. I know what to do, but I am still going to show you the process. am still going to show you the process. am still going to show you the process. It has been a while since I've set up a It has been a while since I've set up a It has been a while since I've set up a K3S cluster, so I figured I would just K3S cluster, so I figured I would just K3S cluster, so I figured I would just approach it that way. So, we're going to approach it that way. So, we're going to approach it that way. So, we're going to be setting up a Kubernetes cluster and be setting up a Kubernetes cluster and be setting up a Kubernetes cluster and we're going to be using K3S for that. we're going to be using K3S for that. we're going to be using K3S for that. Now, there's a couple of reasons why I Now, there's a couple of reasons why I Now, there's a couple of reasons why I always recommend K3S to my students, at always recommend K3S to my students, at always recommend K3S to my students, at least in the beginning. The first reason least in the beginning. The first reason least in the beginning. The first reason is don't start with Cube ADM because is don't start with Cube ADM because is don't start with Cube ADM because it's too intimidating if you're a it's too intimidating if you're a it's too intimidating if you're a beginner and it's just going to lead to beginner and it's just going to lead to beginner and it's just going to lead to frustration and you're not going to get frustration and you're not going to get frustration and you're not going to get this, oh, I'm learning something. this this, oh, I'm learning something. this this, oh, I'm learning something. this this feeling of um early mastery. You're this feeling of um early mastery. You're this feeling of um early mastery. You're not going to get that and that's it's not going to get that and that's it's not going to get that and that's it's really important to get some positive really important to get some positive really important to get some positive reinforcement early in your learning reinforcement early in your learning reinforcement early in your learning process. So don't start there. You can process. So don't start there. You can process. So don't start there. You can move to that when you are a bit more move to that when you are a bit more move to that when you are a bit more advanced. And the thing that I am advanced. And the thing that I am advanced. And the thing that I am actually using in my home lab is Talos.

  5. actually using in my home lab is Talos. actually using in my home lab is Talos. But again, I don't recommend going into But again, I don't recommend going into But again, I don't recommend going into Talos Linux as a beginner because it's Talos Linux as a beginner because it's Talos Linux as a beginner because it's much more valuable to actually have much more valuable to actually have much more valuable to actually have access to your Linux OS. So, Talos access to your Linux OS. So, Talos access to your Linux OS. So, Talos actually takes over your entire disk and actually takes over your entire disk and actually takes over your entire disk and it only exposes an API. You can't even it only exposes an API. You can't even it only exposes an API. You can't even SSH into Talos, which is why it's great SSH into Talos, which is why it's great SSH into Talos, which is why it's great because it's completely secure. But if because it's completely secure. But if because it's completely secure. But if you use K3S, you still keep your Linux you use K3S, you still keep your Linux you use K3S, you still keep your Linux operating system. I'm running Raspian OS operating system. I'm running Raspian OS operating system. I'm running Raspian OS on these pies now. And after my on these pies now. And after my on these pies now. And after my Kubernetes cluster is set up, I can Kubernetes cluster is set up, I can Kubernetes cluster is set up, I can still tinker with Linux. there are still still tinker with Linux. there are still still tinker with Linux. there are still things I can do on that Pi besides things I can do on that Pi besides things I can do on that Pi besides running a Kubernetes cluster. So that's running a Kubernetes cluster. So that's running a Kubernetes cluster. So that's the reason why we choose K3S. Finally, the reason why we choose K3S. Finally, the reason why we choose K3S. Finally, K3S is great because it's easy to set K3S is great because it's easy to set K3S is great because it's easy to set up. It works out of the box and it runs up. It works out of the box and it runs up. It works out of the box and it runs as a single single binary which is as a single single binary which is as a single single binary which is amazing. Now we can get started. I have amazing. Now we can get started. I have amazing. Now we can get started. I have my both pies set up and all I did was my both pies set up and all I did was my both pies set up and all I did was just install the image and that's it. just install the image and that's it. just install the image and that's it. Now I'm sshed into them. But the first Now I'm sshed into them. But the first Now I'm sshed into them. But the first thing that we need to do is to set the thing that we need to do is to set the thing that we need to do is to set the host name because as you see here, both host name because as you see here, both host name because as you see here, both of my pies have the same host name and of my pies have the same host name and of my pies have the same host name and that is always a bad idea. So this is my that is always a bad idea. So this is my that is always a bad idea. So this is my Pi 2. So pseudo I'm going to change that Pi 2. So pseudo I'm going to change that Pi 2. So pseudo I'm going to change that with pseudo systemctl with pseudo systemctl with pseudo systemctl uh pseudo uh pseudo uh pseudo host name ctl host name ctl host name ctl set host name pi 2. If I now run host set host name pi 2. If I now run host set host name pi 2. If I now run host name is pi 2. If I here write host name name is pi 2. If I here write host name name is pi 2. If I here write host name You see it still have Raspberry Pi. So

  6. You see it still have Raspberry Pi. So You see it still have Raspberry Pi. So sudo host name ctl set host name PI 1. sudo host name ctl set host name PI 1. sudo host name ctl set host name PI 1. So now we have set our host names. So now we have set our host names. So now we have set our host names. That's always a good practice to do. And That's always a good practice to do. And That's always a good practice to do. And you see that my Pi is still it's still you see that my Pi is still it's still you see that my Pi is still it's still called Raspberry Pi. But if I would exit called Raspberry Pi. But if I would exit called Raspberry Pi. But if I would exit this session and then SSH back into it, this session and then SSH back into it, this session and then SSH back into it, then we see that the host name is now then we see that the host name is now then we see that the host name is now changed in the prompt. So it's just a a changed in the prompt. So it's just a a changed in the prompt. So it's just a a prompt thing here. So I've changed my prompt thing here. So I've changed my prompt thing here. So I've changed my host name. This is all working well. And host name. This is all working well. And host name. This is all working well. And then now the next step is to just go then now the next step is to just go then now the next step is to just go through K3, search for K3S and open up through K3, search for K3S and open up through K3, search for K3S and open up the K3S documentation. the K3S documentation. the K3S documentation. And literally this is how easy it is to And literally this is how easy it is to And literally this is how easy it is to install K3S. We're just going to curl install K3S. We're just going to curl install K3S. We're just going to curl this installation script this installation script this installation script and that is going to download the and that is going to download the and that is going to download the binaries and set everything up for us binaries and set everything up for us binaries and set everything up for us that we need to set up. and we errored that we need to set up. and we errored that we need to set up. and we errored out. So it is already showing us why it out. So it is already showing us why it out. So it is already showing us why it errored out. Here is um the info line errored out. Here is um the info line errored out. Here is um the info line here. It says you may need to add croup here. It says you may need to add croup here. It says you may need to add croup memory one and enable memory if you are memory one and enable memory if you are memory one and enable memory if you are using a Raspberry Pi. So that's very using a Raspberry Pi. So that's very using a Raspberry Pi. So that's very convenient. So let's check out what this convenient. So let's check out what this convenient. So let's check out what this boot command line txt is all about.

  7. boot command line txt is all about. boot command line txt is all about. Do not edit this file. Okay, so Do not edit this file. Okay, so Do not edit this file. Okay, so apparently on the Pi it has moved. So apparently on the Pi it has moved. So apparently on the Pi it has moved. So let's open that and see what it's like. let's open that and see what it's like. let's open that and see what it's like. Oh, and right away I see that it's Oh, and right away I see that it's Oh, and right away I see that it's opened as read only. So it would not opened as read only. So it would not opened as read only. So it would not make sense to make any changes here make sense to make any changes here make sense to make any changes here because I I will need to you edit this because I I will need to you edit this because I I will need to you edit this as root. So I'm just going to do sudo as root. So I'm just going to do sudo as root. So I'm just going to do sudo like that. That's going to rerun the like that. That's going to rerun the like that. That's going to rerun the same command. and it wants me to add same command. and it wants me to add same command. and it wants me to add here croup memory and croup enable here croup memory and croup enable here croup memory and croup enable memory to it. So let's just do that. memory to it. So let's just do that. memory to it. So let's just do that. Then Then Then croup memory and croup enable memory croup memory and croup enable memory croup memory and croup enable memory like that. like that. like that. Let's also do the same on the other Pi. Let's also do the same on the other Pi. Let's also do the same on the other Pi. And actually let's just um reboot this. And actually let's just um reboot this. And actually let's just um reboot this. But before I do it, I still see this But before I do it, I still see this But before I do it, I still see this unable to resolve host PI one. And I unable to resolve host PI one. And I unable to resolve host PI one. And I think that might be yeah, this is probably the reason it yeah, this is probably the reason it this is still set to Raspberry Pi. So, this is still set to Raspberry Pi. So, this is still set to Raspberry Pi. So, let's set this to Pi 1. Like that.

  8. Like that. Yeah. And now I I will re Like that. Yeah. And now I I will re reboot this one. And you you should see reboot this one. And you you should see reboot this one. And you you should see in the back. Yeah, now the light has in the back. Yeah, now the light has in the back. Yeah, now the light has gone off. So that's actually pretty cool gone off. So that's actually pretty cool gone off. So that's actually pretty cool to see. So this one is now closed. Uh we to see. So this one is now closed. Uh we to see. So this one is now closed. Uh we can do the same on this one. So we're can do the same on this one. So we're can do the same on this one. So we're going to open the command line file. And going to open the command line file. And going to open the command line file. And here I'm also going to add croup enable here I'm also going to add croup enable here I'm also going to add croup enable memory like this. memory like this. memory like this. And I'm also going to edit the Etsy hosts file edit the Etsy hosts file and change this to and change this to and change this to PI 2 PI 2 PI 2 like that. And let's reboot that as like that. And let's reboot that as like that. And let's reboot that as well. So if I now go back to PI one, host name, host name is set up properly. host name, host name is set up properly. And now we can try running the script And now we can try running the script And now we can try running the script again. again. again. It's still in my history. So I'm just It's still in my history. So I'm just It's still in my history. So I'm just rerunning the same command.

  9. rerunning the same command. rerunning the same command. And now we see that our K3S has started. And now we see that our K3S has started. And now we see that our K3S has started. So let's see p sudo. I know that I can So let's see p sudo. I know that I can So let's see p sudo. I know that I can just try cubectl get nodes. We see that just try cubectl get nodes. We see that just try cubectl get nodes. We see that the at rancher k3s.yaml that is actually the at rancher k3s.yaml that is actually the at rancher k3s.yaml that is actually set with root permissions. So let's do p set with root permissions. So let's do p set with root permissions. So let's do p sudo cubectl get nodes. And here we go. sudo cubectl get nodes. And here we go. sudo cubectl get nodes. And here we go. We see that we have a node called pi 1 We see that we have a node called pi 1 We see that we have a node called pi 1 which is a control plane. Awesome. So which is a control plane. Awesome. So which is a control plane. Awesome. So now we can see how our second pi is now we can see how our second pi is now we can see how our second pi is going. going. going. This one is working too. Our host name This one is working too. Our host name This one is working too. Our host name is set up properly. is set up properly. is set up properly. And then we can add this one as a node And then we can add this one as a node And then we can add this one as a node in the same cluster. So now we have the in the same cluster. So now we have the in the same cluster. So now we have the control plane running here, but we want control plane running here, but we want control plane running here, but we want to configure this one as a node in the to configure this one as a node in the to configure this one as a node in the same cluster. same cluster. same cluster. And And And let's see in the documentation let's see in the documentation let's see in the documentation in the quick start guide, it shows you in the quick start guide, it shows you in the quick start guide, it shows you to install additional agent nodes and to install additional agent nodes and to install additional agent nodes and add them to the cluster. Run the script add them to the cluster. Run the script add them to the cluster. Run the script with a couple of parameters. So then we with a couple of parameters. So then we with a couple of parameters. So then we need to get the IP and we need to get need to get the IP and we need to get need to get the IP and we need to get the token.

  10. the token. the token. The value of the token is stored at vari The value of the token is stored at vari The value of the token is stored at vari rancher node token on the server node. rancher node token on the server node. rancher node token on the server node. So let's check that out. Cat So let's check that out. Cat So let's check that out. Cat run that as root. Here we go. Here's our run that as root. Here we go. Here's our run that as root. Here we go. Here's our token. And our IP address is going to be token. And our IP address is going to be token. And our IP address is going to be the IP address of this node of the the the IP address of this node of the the the IP address of this node of the the control plane. Now I can figure that out control plane. Now I can figure that out control plane. Now I can figure that out by running IPA and I know it by heart by running IPA and I know it by heart by running IPA and I know it by heart but here it is. The IP address is this. but here it is. The IP address is this. but here it is. The IP address is this. So we need the IP address and the token. So we need the IP address and the token. So we need the IP address and the token. Now we have everything we need. So we Now we have everything we need. So we Now we have everything we need. So we can copy this command like that. And I'm can copy this command like that. And I'm can copy this command like that. And I'm just going to run um set- ovi because just going to run um set- ovi because just going to run um set- ovi because then I can navigate here with vim key then I can navigate here with vim key then I can navigate here with vim key bindings. bindings. bindings. And here the location of the API server And here the location of the API server And here the location of the API server of the control plane is going to be the of the control plane is going to be the of the control plane is going to be the IP address of PI1. So 192.16810.39.

  11. And the standard port for the Kubernetes And the standard port for the Kubernetes API server is 6443. API server is 6443. API server is 6443. And then the token And then the token And then the token is going to be the value of this the value of this like that. like that. like that. Paste that in. Paste that in. Paste that in. And now I lost it. Okay. I lost it. Okay. Do it again. Actually, Do it again. Actually, Do it again. Actually, sometimes I like to just V command txt. sometimes I like to just V command txt. sometimes I like to just V command txt. I actually like to paste that in like I actually like to paste that in like I actually like to paste that in like that. So now I can 39.

  12. 39. And the token And the token And the token is going to be this. Okay. So, this is the entire command. Okay. So, this is the entire command. If I then just take that. Here we go. Here's our full command. So Here we go. Here's our full command. So curl 192.168 1039 this is the the curl 192.168 1039 this is the the curl 192.168 1039 this is the the control plane this is the port where the control plane this is the port where the control plane this is the port where the API server is running with our token API server is running with our token API server is running with our token like that this should work like that this should work like that this should work now it's downloading the binaries starting K3S agent starting K3S agent and it finished. So now if I run the get and it finished. So now if I run the get and it finished. So now if I run the get nodes command again, here we go. We see nodes command again, here we go. We see nodes command again, here we go. We see that we have a two node Kubernetes that we have a two node Kubernetes that we have a two node Kubernetes cluster running right in that little cluster running right in that little cluster running right in that little cabinet behind me and we can start cabinet behind me and we can start cabinet behind me and we can start going. That's how easy it is to get a going. That's how easy it is to get a going. That's how easy it is to get a Kubernetes home lab going if you know Kubernetes home lab going if you know Kubernetes home lab going if you know what you're doing. So if all of this what you're doing. So if all of this what you're doing. So if all of this command line work, if that went a little command line work, if that went a little command line work, if that went a little bit fast for you, then I understand. And bit fast for you, then I understand. And bit fast for you, then I understand. And this is also why I always recommend this is also why I always recommend this is also why I always recommend learning Linux deeply first before learning Linux deeply first before learning Linux deeply first before moving to containers and Kubernetes. If moving to containers and Kubernetes. If moving to containers and Kubernetes. If you watch this and you were not really you watch this and you were not really you watch this and you were not really able to follow what I was doing, that's able to follow what I was doing, that's able to follow what I was doing, that's a clear indicator that you're not ready a clear indicator that you're not ready a clear indicator that you're not ready for a Kubernetes home lab yet. In that

  13. for a Kubernetes home lab yet. In that for a Kubernetes home lab yet. In that case, you should focus on Linux first. case, you should focus on Linux first. case, you should focus on Linux first. And this is also what I teach in And this is also what I teach in And this is also what I teach in CubeCraft where we are landing DevOps CubeCraft where we are landing DevOps CubeCraft where we are landing DevOps jobs every single week now with Brad jobs every single week now with Brad jobs every single week now with Brad landing an SRE role, Frederick landing a landing an SRE role, Frederick landing a landing an SRE role, Frederick landing a role, YaKob, Peter Leonard, he landed a role, YaKob, Peter Leonard, he landed a role, YaKob, Peter Leonard, he landed a job in two weeks and they do that job in two weeks and they do that job in two weeks and they do that because they follow my system where we because they follow my system where we because they follow my system where we first go deep into learning Linux with first go deep into learning Linux with first go deep into learning Linux with Arch Linux etc. That is an eight hour Arch Linux etc. That is an eight hour Arch Linux etc. That is an eight hour course. Then there is an eight hour course. Then there is an eight hour course. Then there is an eight hour Kubernetes fundamentals course and then Kubernetes fundamentals course and then Kubernetes fundamentals course and then and only then do we move on to the the and only then do we move on to the the and only then do we move on to the the Kubernetes home lab course. So now we Kubernetes home lab course. So now we Kubernetes home lab course. So now we have Kubernetes running and that is have Kubernetes running and that is have Kubernetes running and that is great. But to actually understand what great. But to actually understand what great. But to actually understand what we're doing here and to um build a we're doing here and to um build a we're doing here and to um build a secure home lab that is a bit of a secure home lab that is a bit of a secure home lab that is a bit of a bigger undertaking it which goes beyond bigger undertaking it which goes beyond bigger undertaking it which goes beyond the scope of a short YouTube video like the scope of a short YouTube video like the scope of a short YouTube video like I'm making now. If you feel that this I'm making now. If you feel that this I'm making now. If you feel that this one a little bit fast for you and you one a little bit fast for you and you one a little bit fast for you and you want to have a slower approach with more want to have a slower approach with more want to have a slower approach with more handholding and actually like deeply handholding and actually like deeply handholding and actually like deeply going into each step along the way, then going into each step along the way, then going into each step along the way, then I recommend you apply down below for my I recommend you apply down below for my I recommend you apply down below for my program where you get direct mentorship program where you get direct mentorship program where you get direct mentorship from me and where you get access to my from me and where you get access to my from me and where you get access to my courses. Take the same process but then courses. Take the same process but then courses. Take the same process but then spend like 16 hours explaining spend like 16 hours explaining spend like 16 hours explaining everything that we have just done. So everything that we have just done. So everything that we have just done. So apply if that sounds interesting to you.

  14. apply if that sounds interesting to you. apply if that sounds interesting to you. So let's move on. We now have a So let's move on. We now have a So let's move on. We now have a Kubernetes cluster running. Now we can Kubernetes cluster running. Now we can Kubernetes cluster running. Now we can actually start running some applications actually start running some applications actually start running some applications on there. And one application that I on there. And one application that I on there. And one application that I love to do is LinkedIn. Now before I love to do is LinkedIn. Now before I love to do is LinkedIn. Now before I start applying this, I do not want to start applying this, I do not want to start applying this, I do not want to just keep doing pseudo cubectl on the just keep doing pseudo cubectl on the just keep doing pseudo cubectl on the Raspberry Pi. We're going to do Raspberry Pi. We're going to do Raspberry Pi. We're going to do something a little bit more mature and something a little bit more mature and something a little bit more mature and we are going to set up a environment we are going to set up a environment we are going to set up a environment from the local machine. I'm not going to from the local machine. I'm not going to from the local machine. I'm not going to run cubectl from the actual servers. run cubectl from the actual servers. run cubectl from the actual servers. That is not how you usually manage That is not how you usually manage That is not how you usually manage Kubernetes clusters. No, these servers Kubernetes clusters. No, these servers Kubernetes clusters. No, these servers are servers. The control plane exposes are servers. The control plane exposes are servers. The control plane exposes an API and that means I can talk to the an API and that means I can talk to the an API and that means I can talk to the API from my local machine. So what I'm API from my local machine. So what I'm API from my local machine. So what I'm going to do is um first of all like I'm going to do is um first of all like I'm going to do is um first of all like I'm I'm a pretty advanced user of this. So I'm a pretty advanced user of this. So I'm a pretty advanced user of this. So if you run witch cubectl on my system, if you run witch cubectl on my system, if you run witch cubectl on my system, you will see that I don't have cubectl you will see that I don't have cubectl you will see that I don't have cubectl installed. I work completely from dev installed. I work completely from dev installed. I work completely from dev containers and I'm just going to quickly containers and I'm just going to quickly containers and I'm just going to quickly set up a dev container for this project.

  15. set up a dev container for this project. set up a dev container for this project. So I'm going to um first run the So I'm going to um first run the So I'm going to um first run the template command. This sets up a template command. This sets up a template command. This sets up a template template template called general with which contains a dev called general with which contains a dev called general with which contains a dev container JSON etc. And I'm going to container JSON etc. And I'm going to container JSON etc. And I'm going to move general to uh pi lab move general to uh pi lab move general to uh pi lab vid like this. And then I'm going to CD vid like this. And then I'm going to CD vid like this. And then I'm going to CD into that and I'm going to run devpod into that and I'm going to run devpod into that and I'm going to run devpod up. devpod up dot. devpod up dot. Now what this is going to do is it's Now what this is going to do is it's Now what this is going to do is it's going to create a dev container which is going to create a dev container which is going to create a dev container which is a completely isolated environment a completely isolated environment a completely isolated environment running on my local machine here. This running on my local machine here. This running on my local machine here. This is going to automatically install all is going to automatically install all is going to automatically install all sorts of packages that I have defined. sorts of packages that I have defined. sorts of packages that I have defined. Let me just accept my SSH key here. It's Let me just accept my SSH key here. It's Let me just accept my SSH key here. It's going to clone all of my dot files. It's going to clone all of my dot files. It's going to clone all of my dot files. It's going to set up my complete dev going to set up my complete dev going to set up my complete dev environment with all of the things that environment with all of the things that environment with all of the things that I want to have in that environment. So I want to have in that environment. So I want to have in that environment. So now it's set up. I run def ssh and then now it's set up. I run def ssh and then now it's set up. I run def ssh and then I can go into the pyab vid. Now I have a I can go into the pyab vid. Now I have a I can go into the pyab vid. Now I have a full separate environment completely full separate environment completely full separate environment completely separate from my host system. And here I separate from my host system. And here I separate from my host system. And here I can then install cubectl. M use cubectl.

  16. can then install cubectl. M use cubectl. can then install cubectl. M use cubectl. This is going to install cubectl and I This is going to install cubectl and I This is going to install cubectl and I have a completely tailored dev have a completely tailored dev have a completely tailored dev environment with with all of my Vim environment with with all of my Vim environment with with all of my Vim configuration everything loaded in configuration everything loaded in configuration everything loaded in already. Now I have cubectl available already. Now I have cubectl available already. Now I have cubectl available but now we need to get the cube config but now we need to get the cube config but now we need to get the cube config file right because if I run cubectl file right because if I run cubectl file right because if I run cubectl get pods now it's not going to find get pods now it's not going to find get pods now it's not going to find anything because we don't have any cube anything because we don't have any cube anything because we don't have any cube config. config. config. So if I then go to one of my notes and So if I then go to one of my notes and So if I then go to one of my notes and what was it? CDC rancher pseudo cat k3s atyl. Yeah, here we go. pseudo cat k3s atyl. Yeah, here we go. This is the the cube config file. So I'm This is the the cube config file. So I'm This is the the cube config file. So I'm just literally going to take this and copy my cube config file. and copy my cube config file. And if I then open v home directory home directory cube cube cube wait cd wait cd wait cd cd dot wasn't it cube or maybe I have to make wasn't it cube or maybe I have to make it so make it so make it so make so I go to my home directory I make a so I go to my home directory I make a so I go to my home directory I make a directory called directory called directory called cube cube cube in there.

  17. in there. in there. I'm going to create a file called I'm going to create a file called I'm going to create a file called config. config. config. And now it's actually going to install And now it's actually going to install And now it's actually going to install lazy vim for me and set up everything lazy vim for me and set up everything lazy vim for me and set up everything that I need in order to do my text that I need in order to do my text that I need in order to do my text editing. And then I just paste in the editing. And then I just paste in the editing. And then I just paste in the cube config file. And there's one thing cube config file. And there's one thing cube config file. And there's one thing that we need to change, namely the that we need to change, namely the that we need to change, namely the location of the server because on the location of the server because on the location of the server because on the Raspberry Pi is configured to look at Raspberry Pi is configured to look at Raspberry Pi is configured to look at local host. However, we know that our IP local host. However, we know that our IP local host. However, we know that our IP address is actually 192.168.1039. address is actually 192.168.1039. address is actually 192.168.1039. That is the location of the control That is the location of the control That is the location of the control plane on my network. So now if I run k plane on my network. So now if I run k plane on my network. So now if I run k get nodes actually I have to go back into my actually I have to go back into my workspace here. Now I run k get nodes workspace here. Now I run k get nodes workspace here. Now I run k get nodes and here we go. Now I'm able to talk to and here we go. Now I'm able to talk to and here we go. Now I'm able to talk to my Kubernetes cluster from my isolated my Kubernetes cluster from my isolated my Kubernetes cluster from my isolated dev container. So again to show you how dev container. So again to show you how dev container. So again to show you how this works. If I do which cubectl this works. If I do which cubectl this works. If I do which cubectl I see that in this environment I have I see that in this environment I have I see that in this environment I have cubectl installed. This is running on my cubectl installed. This is running on my cubectl installed. This is running on my Arch Linux system. But if I do which Arch Linux system. But if I do which Arch Linux system. But if I do which cubectl cubectl cubectl like this I have no cubectl on my host like this I have no cubectl on my host like this I have no cubectl on my host system installed. That's because this is system installed. That's because this is system installed. That's because this is running in a dev container. And now I running in a dev container. And now I running in a dev container. And now I can create a tailored environment for my can create a tailored environment for my can create a tailored environment for my Raspberry Pi home lab containing all of Raspberry Pi home lab containing all of Raspberry Pi home lab containing all of the packages and code and everything the packages and code and everything the packages and code and everything that I want to use for that home lab.

  18. that I want to use for that home lab. that I want to use for that home lab. And this is very advanced, but it's also And this is very advanced, but it's also And this is very advanced, but it's also part of the stuff that I teach in part of the stuff that I teach in part of the stuff that I teach in CubeCraft. There's a full course on how CubeCraft. There's a full course on how CubeCraft. There's a full course on how to actually install this and how to do to actually install this and how to do to actually install this and how to do this. So if you want to learn that, this. So if you want to learn that, this. So if you want to learn that, check out the link below. So now that we check out the link below. So now that we check out the link below. So now that we have everything set up, I can talk to my have everything set up, I can talk to my have everything set up, I can talk to my Kubernetes cluster from my local machine Kubernetes cluster from my local machine Kubernetes cluster from my local machine with all of the tools that I want. So with all of the tools that I want. So with all of the tools that I want. So now I'm going to actually run an now I'm going to actually run an now I'm going to actually run an application. So the first thing that application. So the first thing that application. So the first thing that we're going to do is we're going to run we're going to do is we're going to run we're going to do is we're going to run LinkedIn. So if I do um the okay so this is a YAML file here. We are okay so this is a YAML file here. We are going to create a namespace called going to create a namespace called going to create a namespace called LinkedIn and we're going going to create LinkedIn and we're going going to create LinkedIn and we're going going to create a deployment that's called LinkedIn with a deployment that's called LinkedIn with a deployment that's called LinkedIn with one replica and the image that we're one replica and the image that we're one replica and the image that we're pulling in is sysroker LinkedIn 139 and pulling in is sysroker LinkedIn 139 and pulling in is sysroker LinkedIn 139 and we're going to run this on port 1990. we're going to run this on port 1990. we're going to run this on port 1990. Now this uh application Now this uh application Now this uh application this is called LinkedIn and it's a this is called LinkedIn and it's a this is called LinkedIn and it's a bookmark manager. So, if you do bookmark manager. So, if you do bookmark manager. So, if you do LinkedIn, LinkedIn, LinkedIn, it's going to first show you uh it's going to first show you uh it's going to first show you uh yeah, here we go. This is the GitHub yeah, here we go. This is the GitHub yeah, here we go. This is the GitHub repo. We're actually at version 142 now.

  19. repo. We're actually at version 142 now. repo. We're actually at version 142 now. So, maybe I should change that. But it's So, maybe I should change that. But it's So, maybe I should change that. But it's an open source project and it's a really an open source project and it's a really an open source project and it's a really nice little example application to run. nice little example application to run. nice little example application to run. So, if I So, if I So, if I run this, okay, apply f uh dab.l demo okay, apply f uh dab.l demo it has created the deployment. So if I it has created the deployment. So if I it has created the deployment. So if I do k get pods now then we see that we do k get pods now then we see that we do k get pods now then we see that we have linked being created but actually I have linked being created but actually I have linked being created but actually I realize now because I'm doing k get pods realize now because I'm doing k get pods realize now because I'm doing k get pods it's actually doing that from the the it's actually doing that from the the it's actually doing that from the the name yeah yeah it's doing that from the name yeah yeah it's doing that from the name yeah yeah it's doing that from the default namespace actually I need to set default namespace actually I need to set default namespace actually I need to set namespace here namespace here namespace here to linking as well that's a bit of a to linking as well that's a bit of a to linking as well that's a bit of a mistake but hey that's how it goes get mistake but hey that's how it goes get mistake but hey that's how it goes get pods it is uh still creating so let's pods it is uh still creating so let's pods it is uh still creating so let's give that a few seconds so let's check give that a few seconds so let's check give that a few seconds so let's check on our pods K get pods and here we go. on our pods K get pods and here we go. on our pods K get pods and here we go. We see that our pod is now running. So We see that our pod is now running. So We see that our pod is now running. So now I can actually do a port forward to now I can actually do a port forward to now I can actually do a port forward to see if we can actually log into our see if we can actually log into our see if we can actually log into our LinkedIn application. So I have the LinkedIn application. So I have the LinkedIn application. So I have the example command here.

  20. example command here. example command here. So I'm going to make a small adjustment So I'm going to make a small adjustment So I'm going to make a small adjustment here. I'm actually going to run this on here. I'm actually going to run this on here. I'm actually going to run this on 1990 on my local machine. 1990 on my local machine. 1990 on my local machine. that. So if I now run that. So if I now run that. So if I now run port forward and then port forward and then port forward and then I have to I have to I have to complete the name. So now I'm port complete the name. So now I'm port complete the name. So now I'm port forwarding to the pod. And if I now run forwarding to the pod. And if I now run forwarding to the pod. And if I now run localhost localhost localhost 9990, I should see my login page. 9990, I should see my login page. 9990, I should see my login page. Here we go. Here's our LinkedIn login Here we go. Here's our LinkedIn login Here we go. Here's our LinkedIn login page. And this is actually running on page. And this is actually running on page. And this is actually running on the machine behind me here. the machine behind me here. the machine behind me here. Great. So now we have a interface, but Great. So now we have a interface, but Great. So now we have a interface, but now we also need to be able to actually now we also need to be able to actually now we also need to be able to actually log into it. And that means that we have log into it. And that means that we have log into it. And that means that we have to run a command that is going to create to run a command that is going to create to run a command that is going to create a super user for us. So um this is the a super user for us. So um this is the a super user for us. So um this is the command and we're going to have to adjust it a and we're going to have to adjust it a little bit. So, I'm going to just SSH little bit. So, I'm going to just SSH little bit. So, I'm going to just SSH like I now have the port forward command like I now have the port forward command like I now have the port forward command open in this dev container, but I can open in this dev container, but I can open in this dev container, but I can just SSH just SSH just SSH into a new one or have another session into a new one or have another session into a new one or have another session to that container. And I can just do to that container. And I can just do to that container. And I can just do more sessions into that. And if I paste more sessions into that. And if I paste more sessions into that. And if I paste this command and this command and this command and replace this with replace this with replace this with the actual one, it is throwing an error.

  21. the actual one, it is throwing an error. the actual one, it is throwing an error. But let's see if it actually worked. Let But let's see if it actually worked. Let But let's see if it actually worked. Let me see. No, it is. It does not. Okay, it me see. No, it is. It does not. Okay, it me see. No, it is. It does not. Okay, it looks like we have to upgrade to looks like we have to upgrade to looks like we have to upgrade to LinkedIn. LinkedIn. LinkedIn. Okay, so it looks like we have to Okay, so it looks like we have to Okay, so it looks like we have to upgrade to the latest version after all upgrade to the latest version after all upgrade to the latest version after all because it's throwing errors. So then because it's throwing errors. So then because it's throwing errors. So then the first solution is just to upgrade to the first solution is just to upgrade to the first solution is just to upgrade to the latest version. So the latest version. So the latest version. So I'm just going to delete the the I'm just going to delete the the I'm just going to delete the the deployment of LinkedIn. Then we're going deployment of LinkedIn. Then we're going deployment of LinkedIn. Then we're going to to to check our YAML file again. And I already check our YAML file again. And I already check our YAML file again. And I already updated the name space here. But now we updated the name space here. But now we updated the name space here. But now we saw that the latest version is 42.0. 42.0. I believe that was it. I believe that was it. I believe that was it. Yes, 42.0. Yes, 42.0. Yes, 42.0. So let's then apply that.

  22. Okay. So the deployment is running. Okay. So the deployment is running. Okay. Config set context Okay. Config set context Okay. Config set context name space name space name space is LinkedIn. Oh, set context default namespace Oh, set context default namespace LinkedIn like that. So now we are doing LinkedIn like that. So now we are doing LinkedIn like that. So now we are doing everything in the LinkedIn namespace. everything in the LinkedIn namespace. everything in the LinkedIn namespace. Okay, get pods. Okay, LinkedIn is Okay, get pods. Okay, LinkedIn is Okay, get pods. Okay, LinkedIn is running now. So let's see if we can run running now. So let's see if we can run running now. So let's see if we can run that create super user command again. Okay, now it is asking for my password. Okay, now it is asking for my password. So let's just do password. I want to create it anyway. So now my I want to create it anyway. So now my super user is created successfully. super user is created successfully. super user is created successfully. And let's go to localhost 1990 again And let's go to localhost 1990 again And let's go to localhost 1990 again which won't work because our port which won't work because our port which won't work because our port forward is lost forward is lost forward is lost because I have created a new pod. So because I have created a new pod. So because I have created a new pod. So let's try that again.

  23. And here we go. Here is our LinkedIn. And here we go. Here is our LinkedIn. And if I now do Misha and then password, we're actually able to log into the we're actually able to log into the application. And it works. Now, this is application. And it works. Now, this is application. And it works. Now, this is great. We have it working. There's just great. We have it working. There's just great. We have it working. There's just one thing that we still need to do, and one thing that we still need to do, and one thing that we still need to do, and that is to make sure that we can that is to make sure that we can that is to make sure that we can actually log in without using port actually log in without using port actually log in without using port forwarding. And for that we're going to forwarding. And for that we're going to forwarding. And for that we're going to create a service. Now the great thing create a service. Now the great thing create a service. Now the great thing and also why I recommend using um K3S is and also why I recommend using um K3S is and also why I recommend using um K3S is that this has something called service that this has something called service that this has something called service LB configured out of the box. So what LB configured out of the box. So what LB configured out of the box. So what we're going to do is I'm going to create we're going to do is I'm going to create we're going to do is I'm going to create a svc.yaml YAML file a svc.yaml YAML file a svc.yaml YAML file and this is going to be a service which and this is going to be a service which and this is going to be a service which we are going to deploy in the LinkedIn we are going to deploy in the LinkedIn we are going to deploy in the LinkedIn namespace. namespace. namespace. This is a load balancer type service This is a load balancer type service This is a load balancer type service which is going to target the app linked which is going to target the app linked which is going to target the app linked which is defined in our deployment file which is defined in our deployment file which is defined in our deployment file with port 9090 and the target port 9090.

  24. with port 9090 and the target port 9090. with port 9090 and the target port 9090. So if I apply this file, That is something that got lost in the That is something that got lost in the copy paste. Okay, now the service linking is Okay, now the service linking is created. So if I now do K get SVC. Now created. So if I now do K get SVC. Now created. So if I now do K get SVC. Now we see that we have an load balancer we see that we have an load balancer we see that we have an load balancer service but note it has an external IP service but note it has an external IP service but note it has an external IP and this is very important. If you have and this is very important. If you have and this is very important. If you have ever create tried to create a Kubernetes ever create tried to create a Kubernetes ever create tried to create a Kubernetes cluster before you will know that cluster before you will know that cluster before you will know that usually this going is going to lead to usually this going is going to lead to usually this going is going to lead to problems that you won't get an external problems that you won't get an external problems that you won't get an external IP. However, K3S does this out of the IP. However, K3S does this out of the IP. However, K3S does this out of the box and this is super neat. So now if I box and this is super neat. So now if I box and this is super neat. So now if I just enter the IP address just enter the IP address just enter the IP address of the actual Raspberry Pi here of the actual Raspberry Pi here of the actual Raspberry Pi here and port 1990, now I'm actually able to and port 1990, now I'm actually able to and port 1990, now I'm actually able to log in on an IP address. And now I log in on an IP address. And now I log in on an IP address. And now I could, for example, in my home lab could, for example, in my home lab could, for example, in my home lab dashboard, I can actually now point this dashboard, I can actually now point this dashboard, I can actually now point this to a service that's running on my to a service that's running on my to a service that's running on my Kubernetes cluster behind me. And that Kubernetes cluster behind me. And that Kubernetes cluster behind me. And that is one of the reasons why K3S is such a is one of the reasons why K3S is such a is one of the reasons why K3S is such a great option because you can actually great option because you can actually great option because you can actually just create load balancer servers so just create load balancer servers so just create load balancer servers so that you can run applications on that you can run applications on that you can run applications on specified ports on your Raspberry Pi. It specified ports on your Raspberry Pi. It specified ports on your Raspberry Pi. It works great. Well, there you have it.

  25. works great. Well, there you have it. works great. Well, there you have it. Now you have a Kubernetes home lab where Now you have a Kubernetes home lab where Now you have a Kubernetes home lab where you can start building, experimenting, you can start building, experimenting, you can start building, experimenting, and start learning the tools of the and start learning the tools of the and start learning the tools of the trade of a DevOps engineer. This is just trade of a DevOps engineer. This is just trade of a DevOps engineer. This is just the beginning. We haven't even touched the beginning. We haven't even touched the beginning. We haven't even touched on exposing your applications to the on exposing your applications to the on exposing your applications to the internet yet. security, persistent internet yet. security, persistent internet yet. security, persistent storage, etc. All of that is done in the storage, etc. All of that is done in the storage, etc. All of that is done in the Kubernetes home lab course that I use Kubernetes home lab course that I use Kubernetes home lab course that I use for my students to land six figures for my students to land six figures for my students to land six figures jobs. And you see it works. We are jobs. And you see it works. We are jobs. And you see it works. We are landing jobs almost every single week. landing jobs almost every single week. landing jobs almost every single week. And as people say, Leonard here, he does And as people say, Leonard here, he does And as people say, Leonard here, he does this because he created a K3S home lab. this because he created a K3S home lab. this because he created a K3S home lab. Another example is Danil who landed a Another example is Danil who landed a Another example is Danil who landed a DevOps job straight out of university DevOps job straight out of university DevOps job straight out of university and talking about his home lab and all and talking about his home lab and all and talking about his home lab and all the little projects that he learned in C the little projects that he learned in C the little projects that he learned in C cubecraft was the biggest part of his cubecraft was the biggest part of his cubecraft was the biggest part of his interview interview process and he interview interview process and he interview interview process and he barely even got any other technical barely even got any other technical barely even got any other technical questions. So this stuff really works if questions. So this stuff really works if questions. So this stuff really works if you just want to get going, get the full you just want to get going, get the full you just want to get going, get the full system, plug and play and get started system, plug and play and get started system, plug and play and get started right away, including direct mentorship right away, including direct mentorship right away, including direct mentorship from me where you can ask me and the from me where you can ask me and the from me where you can ask me and the community questions if you get stuck on community questions if you get stuck on community questions if you get stuck on anything. Click the link down below and anything. Click the link down below and anything. Click the link down below and you can apply and see if we are a good you can apply and see if we are a good you can apply and see if we are a good fit. All the best of luck with your new fit. All the best of luck with your new fit. All the best of luck with your new Kubernetes home lab.

Summary

The transcript focuses on building a Kubernetes home lab for aspiring DevOps professionals. It emphasizes using bare metal devices over virtual machines to gain direct experience with the technology. The practical takeaway is that a cost-effective home lab can be built with readily available or refurbished hardware, like old laptops or Raspberry Pis, to enhance learning and make a resume stand out.

View original episode ↗