This kubernetes homelab setup is my favorite one yet.
Read full transcript 17 segments
-
Hello, I've been running a Kubernetes Hello, I've been running a Kubernetes home lab for over 3 years and in this home lab for over 3 years and in this home lab for over 3 years and in this video I'm going to show you exactly how video I'm going to show you exactly how video I'm going to show you exactly how I built it and everything that is I built it and everything that is I built it and everything that is running in my home lab. So, let's go. running in my home lab. So, let's go. running in my home lab. So, let's go. Starting with the hardware, the biggest Starting with the hardware, the biggest Starting with the hardware, the biggest mistake people make is thinking that you mistake people make is thinking that you mistake people make is thinking that you need very expensive hardware to build a need very expensive hardware to build a need very expensive hardware to build a home lab. That you need fancy racks and home lab. That you need fancy racks and home lab. That you need fancy racks and servers. Well, you don't. Like my home servers. Well, you don't. Like my home servers. Well, you don't. Like my home lab is really ghetto. So, the main lab is really ghetto. So, the main lab is really ghetto. So, the main machines I use are HP EliteDesk. So, HP machines I use are HP EliteDesk. So, HP machines I use are HP EliteDesk. So, HP EliteDesk 800 G2 mini. I'm using i5 EliteDesk 800 G2 mini. I'm using i5 EliteDesk 800 G2 mini. I'm using i5 versions with 16 gigabytes of RAM and i3 versions with 16 gigabytes of RAM and i3 versions with 16 gigabytes of RAM and i3 versions with 8 gigabytes of RAM. I have versions with 8 gigabytes of RAM. I have versions with 8 gigabytes of RAM. I have about six of those all clustered up and about six of those all clustered up and about six of those all clustered up and this is an amazing setup for a this is an amazing setup for a this is an amazing setup for a Kubernetes home lab. And that's also the Kubernetes home lab. And that's also the Kubernetes home lab. And that's also the beauty of Kubernetes because it allows beauty of Kubernetes because it allows beauty of Kubernetes because it allows you to cobble together whatever hardware you to cobble together whatever hardware you to cobble together whatever hardware you have on hand and just use that. So, you have on hand and just use that. So, you have on hand and just use that. So, other options, really good options are other options, really good options are other options, really good options are Raspberry Pis. If you If you're doing Raspberry Pis. If you If you're doing Raspberry Pis. If you If you're doing this for learning, if you're actually this for learning, if you're actually this for learning, if you're actually hosting heavy applications, I don't hosting heavy applications, I don't hosting heavy applications, I don't really recommend using Raspberry Pis. really recommend using Raspberry Pis. really recommend using Raspberry Pis. But if you're just learning Kubernetes, But if you're just learning Kubernetes, But if you're just learning Kubernetes, it's a great option. And also Lenovo it's a great option. And also Lenovo it's a great option. And also Lenovo ThinkCenters. These are also good ThinkCenters. These are also good ThinkCenters. These are also good options for this kind of setup. So, options for this kind of setup. So, options for this kind of setup. So, using thin clients. And the good thing using thin clients. And the good thing using thin clients. And the good thing about this is that you can get these about this is that you can get these about this is that you can get these really cheap because this is refurbished really cheap because this is refurbished really cheap because this is refurbished enterprise hardware. So, here in the enterprise hardware. So, here in the enterprise hardware. So, here in the Netherlands, there are companies that Netherlands, there are companies that Netherlands, there are companies that specialize in buying up this old specialize in buying up this old specialize in buying up this old hardware, refurbishing it and selling it hardware, refurbishing it and selling it hardware, refurbishing it and selling it for pretty cheap. Like these go for for pretty cheap. Like these go for for pretty cheap. Like these go for maybe 100 150 dollars. You can get them maybe 100 150 dollars. You can get them maybe 100 150 dollars. You can get them very cheap. So, you can build a really very cheap. So, you can build a really very cheap. So, you can build a really nice home lab that way. The second nice home lab that way. The second nice home lab that way. The second machine that I recently started using is
-
machine that I recently started using is machine that I recently started using is a Minisforum MS02. This is more like a a Minisforum MS02. This is more like a a Minisforum MS02. This is more like a knock. It has 32 gigabytes of RAM, knock. It has 32 gigabytes of RAM, knock. It has 32 gigabytes of RAM, pretty decent processor. The only pretty decent processor. The only pretty decent processor. The only disadvantage is that it's pretty noisy. disadvantage is that it's pretty noisy. disadvantage is that it's pretty noisy. But if you get one or two of those, you But if you get one or two of those, you But if you get one or two of those, you already have a really good setup, too. already have a really good setup, too. already have a really good setup, too. And I'm actually also using my ThinkPad And I'm actually also using my ThinkPad And I'm actually also using my ThinkPad T480. I just have that as a Kubernetes T480. I just have that as a Kubernetes T480. I just have that as a Kubernetes node, as well. So, again, you can just node, as well. So, again, you can just node, as well. So, again, you can just cobble together whatever hardware you cobble together whatever hardware you cobble together whatever hardware you have and go from there. And sure, if you have and go from there. And sure, if you have and go from there. And sure, if you want to invest in build a nice rack with want to invest in build a nice rack with want to invest in build a nice rack with enterprise servers, go for it. But I enterprise servers, go for it. But I enterprise servers, go for it. But I just want to say you don't need it and just want to say you don't need it and just want to say you don't need it and my home lab is really ghetto, but I I do my home lab is really ghetto, but I I do my home lab is really ghetto, but I I do lots of interesting things on it. So, lots of interesting things on it. So, lots of interesting things on it. So, let's just go into how I built the home let's just go into how I built the home let's just go into how I built the home lab then. So, when I started out, I was lab then. So, when I started out, I was lab then. So, when I started out, I was using K3s. So, everybody probably knows using K3s. So, everybody probably knows using K3s. So, everybody probably knows K3s, lightweight Kubernetes. This is K3s, lightweight Kubernetes. This is K3s, lightweight Kubernetes. This is what Rancher is built on or what Rancher what Rancher is built on or what Rancher what Rancher is built on or what Rancher uses under the hood and it's really good uses under the hood and it's really good uses under the hood and it's really good for getting started. It's really good for getting started. It's really good for getting started. It's really good for running on small edge edge machines for running on small edge edge machines for running on small edge edge machines running on the edge, optimized for arm, running on the edge, optimized for arm, running on the edge, optimized for arm, so it's great for Raspberry Pis. So, K3s so it's great for Raspberry Pis. So, K3s so it's great for Raspberry Pis. So, K3s is the one to start with, but I after a is the one to start with, but I after a is the one to start with, but I after a year of using that, I moved to Talos year of using that, I moved to Talos year of using that, I moved to Talos Linux and that is actually what I am Linux and that is actually what I am Linux and that is actually what I am using now. This is the Kubernetes using now. This is the Kubernetes using now. This is the Kubernetes operating system and why this is really operating system and why this is really operating system and why this is really good is because it basically you install good is because it basically you install good is because it basically you install it, it's an immutable OS and it takes it, it's an immutable OS and it takes it, it's an immutable OS and it takes over your whole disk and you don't even over your whole disk and you don't even over your whole disk and you don't even get an SSH end point. It's a completely get an SSH end point. It's a completely get an SSH end point. It's a completely secured, completely hardened operating secured, completely hardened operating secured, completely hardened operating system that only exposes the Talos API
-
system that only exposes the Talos API system that only exposes the Talos API that you can then apply configuration that you can then apply configuration that you can then apply configuration to. So, you cannot even SSH in there, so to. So, you cannot even SSH in there, so to. So, you cannot even SSH in there, so it's super secure, but it is its own it's super secure, but it is its own it's super secure, but it is its own rabbit hole and I don't recommend this rabbit hole and I don't recommend this rabbit hole and I don't recommend this for beginners, but it is it is an for beginners, but it is it is an for beginners, but it is it is an amazing piece of software and I've been amazing piece of software and I've been amazing piece of software and I've been using it for 2 years now and absolutely using it for 2 years now and absolutely using it for 2 years now and absolutely love it. So, that's what I I use. In love it. So, that's what I I use. In love it. So, that's what I I use. In terms of cluster architecture, I'm terms of cluster architecture, I'm terms of cluster architecture, I'm actually using two clusters in my home actually using two clusters in my home actually using two clusters in my home lab. The first cluster is Mimir. This is lab. The first cluster is Mimir. This is lab. The first cluster is Mimir. This is where I'm running all of my, let's say, where I'm running all of my, let's say, where I'm running all of my, let's say, data and stateful workloads. So, here data and stateful workloads. So, here data and stateful workloads. So, here I'm running my Postgres databases. I I'm running my Postgres databases. I I'm running my Postgres databases. I have about nine of them running right have about nine of them running right have about nine of them running right now and I'm going to show you exactly now and I'm going to show you exactly now and I'm going to show you exactly how that works in a second. And this how that works in a second. And this how that works in a second. And this also contains my self-hosted Git server, also contains my self-hosted Git server, also contains my self-hosted Git server, which I'm going to show you in a second, which I'm going to show you in a second, which I'm going to show you in a second, too. The second cluster that I have is too. The second cluster that I have is too. The second cluster that I have is called Jotunheim and this has my main called Jotunheim and this has my main called Jotunheim and this has my main applications. And basically anything in applications. And basically anything in applications. And basically anything in Jotunheim is supposed to be completely Jotunheim is supposed to be completely Jotunheim is supposed to be completely stateless. So, the idea here is that stateless. So, the idea here is that stateless. So, the idea here is that Yotunheim is also the cluster where I Yotunheim is also the cluster where I Yotunheim is also the cluster where I also will apply updates first. So, all also will apply updates first. So, all also will apply updates first. So, all of my infrastructure upgrades, when I of my infrastructure upgrades, when I of my infrastructure upgrades, when I upgrade my CNI, etc., I will first do it upgrade my CNI, etc., I will first do it upgrade my CNI, etc., I will first do it on the application cluster. And when on the application cluster. And when on the application cluster. And when everything goes well there, then I'm everything goes well there, then I'm everything goes well there, then I'm confident of applying that to my confident of applying that to my confident of applying that to my database cluster. And this way I don't database cluster. And this way I don't database cluster. And this way I don't really need to have a staging really need to have a staging really need to have a staging environment for my clusters, although environment for my clusters, although environment for my clusters, although that would be ideal, but I'm also that would be ideal, but I'm also that would be ideal, but I'm also optimizing for resource usage here. And optimizing for resource usage here. And optimizing for resource usage here. And this was the the architecture that has this was the the architecture that has this was the the architecture that has start that worked really well for me.
-
start that worked really well for me. start that worked really well for me. So, all of these databases are exposed So, all of these databases are exposed So, all of these databases are exposed as external IPs, and I'm using the as external IPs, and I'm using the as external IPs, and I'm using the Cilium load balancer IPAM for that. I'm Cilium load balancer IPAM for that. I'm Cilium load balancer IPAM for that. I'm going to show you that in a second, too. going to show you that in a second, too. going to show you that in a second, too. But, these are all available on their But, these are all available on their But, these are all available on their own URLs. So, all of the applications own URLs. So, all of the applications own URLs. So, all of the applications can then reach these databases over my can then reach these databases over my can then reach these databases over my internal network, and I've I found this internal network, and I've I found this internal network, and I've I found this to be work really well, and it's a very to be work really well, and it's a very to be work really well, and it's a very clean architecture that I really like. clean architecture that I really like. clean architecture that I really like. So, before we dive into all of the So, before we dive into all of the So, before we dive into all of the applications that you see on the screen, applications that you see on the screen, applications that you see on the screen, I'll just address the question that you I'll just address the question that you I'll just address the question that you may be having right now, which is why may be having right now, which is why may be having right now, which is why Kubernetes. And you may think that this Kubernetes. And you may think that this Kubernetes. And you may think that this is completely overkill for just running is completely overkill for just running is completely overkill for just running a few applications. Well, the point is a few applications. Well, the point is a few applications. Well, the point is that it's overkill on purpose. So, this that it's overkill on purpose. So, this that it's overkill on purpose. So, this home lab is not just something that I do home lab is not just something that I do home lab is not just something that I do only for fun. I'm using this as a career only for fun. I'm using this as a career only for fun. I'm using this as a career asset, right? So, when I built this home asset, right? So, when I built this home asset, right? So, when I built this home lab 3 years ago, I built that because I lab 3 years ago, I built that because I lab 3 years ago, I built that because I wanted a Kubernetes job. And by building wanted a Kubernetes job. And by building wanted a Kubernetes job. And by building a home lab like this, I could have proof a home lab like this, I could have proof a home lab like this, I could have proof of hands-on experience with the tooling of hands-on experience with the tooling of hands-on experience with the tooling that I wanted to work with. Cuz the that I wanted to work with. Cuz the that I wanted to work with. Cuz the thing is, nobody cares if you just spin thing is, nobody cares if you just spin thing is, nobody cares if you just spin up a quick cluster and put that on your up a quick cluster and put that on your up a quick cluster and put that on your CV. Like, that's not going to land you CV. Like, that's not going to land you CV. Like, that's not going to land you jobs. Hiring managers will care if you jobs. Hiring managers will care if you jobs. Hiring managers will care if you can demonstrate that you can expose can demonstrate that you can expose can demonstrate that you can expose applications to the internet in a secure applications to the internet in a secure applications to the internet in a secure way. If you run your own mini data way. If you run your own mini data way. If you run your own mini data center and your own production-grade center and your own production-grade center and your own production-grade infrastructure, you can truly have proof infrastructure, you can truly have proof infrastructure, you can truly have proof of enterprise-grade skills built on your of enterprise-grade skills built on your of enterprise-grade skills built on your home lab, and that is why I do it. And home lab, and that is why I do it. And home lab, and that is why I do it. And this is also what I teach my private this is also what I teach my private this is also what I teach my private students, and they are landing jobs students, and they are landing jobs students, and they are landing jobs every single week because of this every single week because of this every single week because of this method. And just last week, I had an
-
method. And just last week, I had an method. And just last week, I had an interview with one of my students. He interview with one of my students. He interview with one of my students. He lives in the United States. He didn't lives in the United States. He didn't lives in the United States. He didn't have a CS degree and didn't have a tech have a CS degree and didn't have a tech have a CS degree and didn't have a tech background, but because he built the background, but because he built the background, but because he built the home lab as I taught him, he managed to home lab as I taught him, he managed to home lab as I taught him, he managed to land his first DevOps job in the land his first DevOps job in the land his first DevOps job in the industry, even in this market as a industry, even in this market as a industry, even in this market as a junior. So, building a home lab really junior. So, building a home lab really junior. So, building a home lab really is the gateway into a good tech career. is the gateway into a good tech career. is the gateway into a good tech career. You can watch the full interview over You can watch the full interview over You can watch the full interview over here if you're interested in that. And here if you're interested in that. And here if you're interested in that. And the second reason why this works so well the second reason why this works so well the second reason why this works so well is because if you're use Kubernetes is because if you're use Kubernetes is because if you're use Kubernetes properly, you are using GitOps, which properly, you are using GitOps, which properly, you are using GitOps, which means that you deploy your applications means that you deploy your applications means that you deploy your applications from Git. And because you deploy from from Git. And because you deploy from from Git. And because you deploy from Git, this also means that you can build Git, this also means that you can build Git, this also means that you can build a public portfolio of your home lab that a public portfolio of your home lab that a public portfolio of your home lab that you can then leverage to as a as a you can then leverage to as a as a you can then leverage to as a as a project to show to hiring managers. And project to show to hiring managers. And project to show to hiring managers. And this is also how Pedro landed that job. this is also how Pedro landed that job. this is also how Pedro landed that job. So, it's a really effective method. So, So, it's a really effective method. So, So, it's a really effective method. So, what's actually running on my home lab what's actually running on my home lab what's actually running on my home lab then? Well, we'll start with the actual then? Well, we'll start with the actual then? Well, we'll start with the actual dashboard that you see here. This is dashboard that you see here. This is dashboard that you see here. This is already running as a container on my already running as a container on my already running as a container on my home lab. This is called homepage, and home lab. This is called homepage, and home lab. This is called homepage, and it's a really clean, nice home dashboard it's a really clean, nice home dashboard it's a really clean, nice home dashboard that I really like. You can configure it that I really like. You can configure it that I really like. You can configure it completely with with YAML files. And completely with with YAML files. And completely with with YAML files. And yeah, this is the one that I landed on.
-
yeah, this is the one that I landed on. yeah, this is the one that I landed on. It's a really good option in my opinion. It's a really good option in my opinion. It's a really good option in my opinion. And from here, this is basically the And from here, this is basically the And from here, this is basically the portal into my home lab where I and the portal into my home lab where I and the portal into my home lab where I and the rest of my life basically and from where rest of my life basically and from where rest of my life basically and from where I manage everything. So, let's start I manage everything. So, let's start I manage everything. So, let's start with Forgejo. This is my self-hosted Git with Forgejo. This is my self-hosted Git with Forgejo. This is my self-hosted Git instance. So, here I have a few instance. So, here I have a few instance. So, here I have a few repositories for the applications that I repositories for the applications that I repositories for the applications that I build for myself. And I'm also using build for myself. And I'm also using build for myself. And I'm also using this for mirroring other repositories this for mirroring other repositories this for mirroring other repositories from GitHub so that I will always have from GitHub so that I will always have from GitHub so that I will always have my own local copy of certain my own local copy of certain my own local copy of certain repositories that I want to store in repositories that I want to store in repositories that I want to store in case the author take decides to take it case the author take decides to take it case the author take decides to take it down. And also, by self-hosting my own down. And also, by self-hosting my own down. And also, by self-hosting my own Git instance, I actually I don't submit Git instance, I actually I don't submit Git instance, I actually I don't submit my code to GitHub so that they can use my code to GitHub so that they can use my code to GitHub so that they can use that for scanning and training AI that for scanning and training AI that for scanning and training AI models. So, that's why I really liked models. So, that's why I really liked models. So, that's why I really liked it. I also did a full video on Photo Geo it. I also did a full video on Photo Geo it. I also did a full video on Photo Geo itself. I explained why I chose this and itself. I explained why I chose this and itself. I explained why I chose this and how I set it up. You can watch that by how I set it up. You can watch that by how I set it up. You can watch that by clicking over somewhere over here. The clicking over somewhere over here. The clicking over somewhere over here. The next application is Linkding. You have next application is Linkding. You have next application is Linkding. You have maybe seen this in other videos as well. maybe seen this in other videos as well. maybe seen this in other videos as well. This is a really nice and simple This is a really nice and simple This is a really nice and simple applications. Really good for starting applications. Really good for starting applications. Really good for starting to learn. And this is basically a to learn. And this is basically a to learn. And this is basically a self-hosted bookmark manager because I self-hosted bookmark manager because I self-hosted bookmark manager because I tend to switch browsers a lot and I was tend to switch browsers a lot and I was tend to switch browsers a lot and I was getting tired of migrating all of the getting tired of migrating all of the getting tired of migrating all of the bookmarks. And this way I have a very bookmarks. And this way I have a very bookmarks. And this way I have a very nice setup where I have just store all nice setup where I have just store all nice setup where I have just store all of my bookmarks in a separate thing and of my bookmarks in a separate thing and of my bookmarks in a separate thing and it doesn't really matter what browser it doesn't really matter what browser it doesn't really matter what browser I'm using. I can always just visit and I'm using. I can always just visit and I'm using. I can always just visit and search and organize my bookmarks in this search and organize my bookmarks in this search and organize my bookmarks in this application. So, highly recommended application. So, highly recommended application. So, highly recommended application. Oh, by the way, 73% of my application. Oh, by the way, 73% of my application. Oh, by the way, 73% of my viewers are not subscribed to my viewers are not subscribed to my viewers are not subscribed to my channel. So, please subscribe right now.
-
channel. So, please subscribe right now. channel. So, please subscribe right now. It's a free way to support my channel. It's a free way to support my channel. It's a free way to support my channel. It allows me to put out more free It allows me to put out more free It allows me to put out more free content out like this every single week. content out like this every single week. content out like this every single week. The next application is N8N. So, you The next application is N8N. So, you The next application is N8N. So, you probably know about N8N, but this is a probably know about N8N, but this is a probably know about N8N, but this is a self-hosted automation workflow self-hosted automation workflow self-hosted automation workflow application. I have a few things like, application. I have a few things like, application. I have a few things like, for example, I have a Telegram chat and for example, I have a Telegram chat and for example, I have a Telegram chat and if I record voice notes there, then I if I record voice notes there, then I if I record voice notes there, then I have an automation there that will have an automation there that will have an automation there that will transcribe it and store it in a certain transcribe it and store it in a certain transcribe it and store it in a certain system that I use. Another interesting system that I use. Another interesting system that I use. Another interesting workflow that I have running is my workflow that I have running is my workflow that I have running is my GitHub workflow auto updater. So, every GitHub workflow auto updater. So, every GitHub workflow auto updater. So, every hour this workflow will scan all of my hour this workflow will scan all of my hour this workflow will scan all of my PRs and then classify them and review PRs and then classify them and review PRs and then classify them and review them. And some of the PRs it will merge them. And some of the PRs it will merge them. And some of the PRs it will merge automatically, but other PRs it will automatically, but other PRs it will automatically, but other PRs it will write me an assessment. And for example, write me an assessment. And for example, write me an assessment. And for example, my Cilium needs an update here. And my Cilium needs an update here. And my Cilium needs an update here. And because that's a critical infrastructure because that's a critical infrastructure because that's a critical infrastructure component, it then will tell me that I component, it then will tell me that I component, it then will tell me that I need to review this. But if we check the need to review this. But if we check the need to review this. But if we check the pull requests which have been closed, pull requests which have been closed, pull requests which have been closed, then we will also see that 1 hour ago it then we will also see that 1 hour ago it then we will also see that 1 hour ago it has closed or merged a few other has closed or merged a few other has closed or merged a few other applications on its own. My home lab applications on its own. My home lab applications on its own. My home lab infrastructure is actually being managed infrastructure is actually being managed infrastructure is actually being managed by AI to some degree. So, I don't even by AI to some degree. So, I don't even by AI to some degree. So, I don't even have to review all of the upgrades have to review all of the upgrades have to review all of the upgrades anymore. This is just handled by an AI anymore. This is just handled by an AI anymore. This is just handled by an AI workflow, which is really good. So, this workflow, which is really good. So, this workflow, which is really good. So, this is a very, very nice use case of N8N. I is a very, very nice use case of N8N. I is a very, very nice use case of N8N. I have a few more workflows in mind, but have a few more workflows in mind, but have a few more workflows in mind, but if you're interested in getting this if you're interested in getting this if you're interested in getting this workflow and and knowing more about how workflow and and knowing more about how workflow and and knowing more about how I deployed N8N, check out the link below I deployed N8N, check out the link below I deployed N8N, check out the link below in the description because the that in the description because the that in the description because the that guide will provide some information guide will provide some information guide will provide some information about that as well, completely for free.
-
about that as well, completely for free. about that as well, completely for free. The next application is Paperless. This The next application is Paperless. This The next application is Paperless. This is a relatively new addition to my home is a relatively new addition to my home is a relatively new addition to my home lab. This is a place where I upload lab. This is a place where I upload lab. This is a place where I upload documents and it will then scan them documents and it will then scan them documents and it will then scan them with OCR and then I get a searchable with OCR and then I get a searchable with OCR and then I get a searchable database of all of my paper documents. database of all of my paper documents. database of all of my paper documents. It's really cool. I have not played with It's really cool. I have not played with It's really cool. I have not played with it too much yet, but I did set it up and it too much yet, but I did set it up and it too much yet, but I did set it up and I plan to just have all of my paper I plan to just have all of my paper I plan to just have all of my paper documents stored in here so that I have documents stored in here so that I have documents stored in here so that I have a searchable database of them. So, a searchable database of them. So, a searchable database of them. So, highly recommend this application as highly recommend this application as highly recommend this application as well. The next application is the well. The next application is the well. The next application is the reading list. This is something that I reading list. This is something that I reading list. This is something that I built myself with the help of a little built myself with the help of a little built myself with the help of a little bit of AI and here this is the bit of AI and here this is the bit of AI and here this is the application where I track the books that application where I track the books that application where I track the books that I want to read and also which versions I want to read and also which versions I want to read and also which versions of those I own. So, this is of those I own. So, this is of those I own. So, this is a very nice little application that I a very nice little application that I a very nice little application that I built myself running in a container and built myself running in a container and built myself running in a container and yeah, I love making these little small yeah, I love making these little small yeah, I love making these little small custom applications. The next one is custom applications. The next one is custom applications. The next one is Wallabag. This is a read later app. So, Wallabag. This is a read later app. So, Wallabag. This is a read later app. So, what I can do is I can visit any blog or what I can do is I can visit any blog or what I can do is I can visit any blog or web page on the internet and I can then web page on the internet and I can then web page on the internet and I can then use the browser plugin to send this to use the browser plugin to send this to use the browser plugin to send this to my cell phone's Wallabag instance and my cell phone's Wallabag instance and my cell phone's Wallabag instance and then Wallabag will scrape it and it will then Wallabag will scrape it and it will then Wallabag will scrape it and it will store that in my private instance. So, I store that in my private instance. So, I store that in my private instance. So, I can get back to this article later at my can get back to this article later at my can get back to this article later at my own convenience running on my own own convenience running on my own own convenience running on my own infrastructure and read it. And the infrastructure and read it. And the infrastructure and read it. And the advantage of this is that if the author advantage of this is that if the author advantage of this is that if the author for example decides to take that article for example decides to take that article for example decides to take that article down, I always have my own copy of that.
-
down, I always have my own copy of that. down, I always have my own copy of that. So, I really like this. Whenever I come So, I really like this. Whenever I come So, I really like this. Whenever I come across an article that I want to store across an article that I want to store across an article that I want to store or that I want to read later, I will or that I want to read later, I will or that I want to read later, I will usually pull that into my Wallabag usually pull that into my Wallabag usually pull that into my Wallabag instance and then I can take it from instance and then I can take it from instance and then I can take it from there. Now, the next row is are some, there. Now, the next row is are some, there. Now, the next row is are some, yeah, external applications. Obviously, yeah, external applications. Obviously, yeah, external applications. Obviously, I'm not self-hosting LinkedIn or X, I'm not self-hosting LinkedIn or X, I'm not self-hosting LinkedIn or X, which is not possible. So, these are which is not possible. So, these are which is not possible. So, these are just external links that I use every just external links that I use every just external links that I use every day. In the next section, the my consume day. In the next section, the my consume day. In the next section, the my consume section, here is Miniflux. So, if you've section, here is Miniflux. So, if you've section, here is Miniflux. So, if you've seen my previous videos, you may know seen my previous videos, you may know seen my previous videos, you may know that I was using CommaFeed before and I that I was using CommaFeed before and I that I was using CommaFeed before and I switched to Miniflux which because this switched to Miniflux which because this switched to Miniflux which because this one has a better API and I'm doing a few one has a better API and I'm doing a few one has a better API and I'm doing a few interesting things that I'm going to interesting things that I'm going to interesting things that I'm going to show in a second. But, this is basically show in a second. But, this is basically show in a second. But, this is basically an RSS feed reader. I subscribe to an RSS feed reader. I subscribe to an RSS feed reader. I subscribe to certain RSS feeds that I want to read. certain RSS feeds that I want to read. certain RSS feeds that I want to read. But, what Miniflux allowed me to do is I But, what Miniflux allowed me to do is I But, what Miniflux allowed me to do is I actually have several instances of actually have several instances of actually have several instances of Miniflux running in my home lab and then Miniflux running in my home lab and then Miniflux running in my home lab and then I scrape those, I pull those through AI. I scrape those, I pull those through AI. I scrape those, I pull those through AI. So, one of my feeds here is the Cube So, one of my feeds here is the Cube So, one of my feeds here is the Cube Craft curated content feed and these are Craft curated content feed and these are Craft curated content feed and these are articles that are scored with an AI articles that are scored with an AI articles that are scored with an AI prompt and an algorithm that I wrote for prompt and an algorithm that I wrote for prompt and an algorithm that I wrote for myself. And with a based on this score, myself. And with a based on this score, myself. And with a based on this score, I can determine if an article is worth I can determine if an article is worth I can determine if an article is worth my time or not. So, I basically have a my time or not. So, I basically have a my time or not. So, I basically have a pre-filtered list of content that I or pre-filtered list of content that I or pre-filtered list of content that I or that my AI deems useful for me and my that my AI deems useful for me and my that my AI deems useful for me and my business. So, for example, why business. So, for example, why business. So, for example, why Kubernetes is retiring Ingress and Kubernetes is retiring Ingress and Kubernetes is retiring Ingress and Nginx, this is of course very relevant Nginx, this is of course very relevant Nginx, this is of course very relevant to me and my business. And then I also to me and my business. And then I also to me and my business. And then I also get a AI-generated summary here with all get a AI-generated summary here with all get a AI-generated summary here with all of the main points and all of the
-
of the main points and all of the of the main points and all of the takeaways and the wisdom. So, I already takeaways and the wisdom. So, I already takeaways and the wisdom. So, I already have a very quick overview of the the have a very quick overview of the the have a very quick overview of the the content and then I can go and open that content and then I can go and open that content and then I can go and open that article and read it at my own article and read it at my own article and read it at my own convenience. I think this is a really convenience. I think this is a really convenience. I think this is a really nice setup and I'm always expanding on nice setup and I'm always expanding on nice setup and I'm always expanding on this more and more. But, this really this more and more. But, this really this more and more. But, this really helps me to zone in on the content that helps me to zone in on the content that helps me to zone in on the content that I actually want and should be consuming I actually want and should be consuming I actually want and should be consuming rather than just letting the algorithms, rather than just letting the algorithms, rather than just letting the algorithms, like the social media algorithms, decide like the social media algorithms, decide like the social media algorithms, decide what I consume. So, I'm very very what I consume. So, I'm very very what I consume. So, I'm very very intentional with this kind of stuff and intentional with this kind of stuff and intentional with this kind of stuff and Miniflux is helping me with that. So, Miniflux is helping me with that. So, Miniflux is helping me with that. So, it's a great great application. Works it's a great great application. Works it's a great great application. Works really well so far, has a good API. Uh really well so far, has a good API. Uh really well so far, has a good API. Uh yeah, highly recommend miniflux. And the yeah, highly recommend miniflux. And the yeah, highly recommend miniflux. And the next application I want to show you is next application I want to show you is next application I want to show you is audiobookshelf. This is a really nice audiobookshelf. This is a really nice audiobookshelf. This is a really nice application. It works really well. I use application. It works really well. I use application. It works really well. I use this obviously to manage the audiobooks this obviously to manage the audiobooks this obviously to manage the audiobooks that I own, but another good use case of that I own, but another good use case of that I own, but another good use case of audiobookshelf that many people don't audiobookshelf that many people don't audiobookshelf that many people don't know about is its ability to download know about is its ability to download know about is its ability to download podcasts. So, I have a several podcasts podcasts. So, I have a several podcasts podcasts. So, I have a several podcasts that I am subscribed to, and then it that I am subscribed to, and then it that I am subscribed to, and then it will actually download those episodes on will actually download those episodes on will actually download those episodes on my own infrastructure, and that also my own infrastructure, and that also my own infrastructure, and that also means that I can do things with those means that I can do things with those means that I can do things with those audio files. Like, for example, audio files. Like, for example, audio files. Like, for example, transcription, automatic transcription.
-
transcription, automatic transcription. transcription, automatic transcription. I haven't set it up yet, but I So, my I haven't set it up yet, but I So, my I haven't set it up yet, but I So, my plan is to also pull this into this plan is to also pull this into this plan is to also pull this into this content system that I'm building, this content system that I'm building, this content system that I'm building, this this content curation system, and this content curation system, and this content curation system, and audiobookshelf allows me to do that. audiobookshelf allows me to do that. audiobookshelf allows me to do that. This is a really interesting use case of This is a really interesting use case of This is a really interesting use case of audiobookshelf that I really like. So, audiobookshelf that I really like. So, audiobookshelf that I really like. So, an- another great application. I've been an- another great application. I've been an- another great application. I've been using this for years. I support the using this for years. I support the using this for years. I support the project, and it's a it's a really good project, and it's a it's a really good project, and it's a it's a really good application. So, highly recommend you to application. So, highly recommend you to application. So, highly recommend you to check that out. Now, the next project I check that out. Now, the next project I check that out. Now, the next project I will show you is what I call quantified will show you is what I call quantified will show you is what I call quantified self, and this is also a segway into my self, and this is also a segway into my self, and this is also a segway into my database setup. But, basically, what I database setup. But, basically, what I database setup. But, basically, what I do here is I wear a Whoop, and I wear an do here is I wear a Whoop, and I wear an do here is I wear a Whoop, and I wear an Oura Ring, and I gather all sorts of Oura Ring, and I gather all sorts of Oura Ring, and I gather all sorts of metrics about myself uh from many metrics about myself uh from many metrics about myself uh from many different sources, too. But, these are different sources, too. But, these are different sources, too. But, these are the ones that I want to show you. And the ones that I want to show you. And the ones that I want to show you. And then I I scrape those APIs, and I store then I I scrape those APIs, and I store then I I scrape those APIs, and I store them in my own databases. And what this them in my own databases. And what this them in my own databases. And what this allows me to do is to query those allows me to do is to query those allows me to do is to query those databases and visualize them in Grafana databases and visualize them in Grafana databases and visualize them in Grafana dashboards. And yeah, this is very nerdy dashboards. And yeah, this is very nerdy dashboards. And yeah, this is very nerdy and very geeky, but I absolutely love and very geeky, but I absolutely love and very geeky, but I absolutely love doing this. And what what this allows me doing this. And what what this allows me doing this. And what what this allows me to do is to have a copy of that data to do is to have a copy of that data to do is to have a copy of that data always stored on my own infrastructure, always stored on my own infrastructure, always stored on my own infrastructure, so that whenever one of these companies so that whenever one of these companies so that whenever one of these companies goes down, or they decide that I cannot goes down, or they decide that I cannot goes down, or they decide that I cannot use their service anymore, at least I use their service anymore, at least I use their service anymore, at least I will always have a a copy of the data will always have a a copy of the data will always have a a copy of the data that I've gathered of myself over that I've gathered of myself over that I've gathered of myself over multiple years at this point. So, these multiple years at this point. So, these multiple years at this point. So, these are just SQL queries that I then use to are just SQL queries that I then use to are just SQL queries that I then use to create these visualizations. So, create these visualizations. So, create these visualizations. So, obviously to run a query like this, you obviously to run a query like this, you obviously to run a query like this, you need a database where this data is need a database where this data is need a database where this data is stored in. And now I'll show you how I
-
stored in. And now I'll show you how I stored in. And now I'll show you how I do that. So, I'm now connected to my dev do that. So, I'm now connected to my dev do that. So, I'm now connected to my dev container. I always work inside of container. I always work inside of container. I always work inside of containers. I don't have kubectl containers. I don't have kubectl containers. I don't have kubectl installed on my main system. As you can installed on my main system. As you can installed on my main system. As you can see which kubectl, it doesn't exist on see which kubectl, it doesn't exist on see which kubectl, it doesn't exist on my main system. I only work inside of my main system. I only work inside of my main system. I only work inside of containers. So, here I obviously have containers. So, here I obviously have containers. So, here I obviously have kubectl running. So, if I do k get kubectl running. So, if I do k get kubectl running. So, if I do k get clusters -a, so getting all of the clusters -a, so getting all of the clusters -a, so getting all of the clusters that I have running in my name clusters that I have running in my name clusters that I have running in my name spaces, then I have how many are those? spaces, then I have how many are those? spaces, then I have how many are those? K k get clusters and then let's count K k get clusters and then let's count K k get clusters and then let's count the lines. I have 13 lines and if you the lines. I have 13 lines and if you the lines. I have 13 lines and if you exclude the top line, so I have 12 exclude the top line, so I have 12 exclude the top line, so I have 12 clusters running on my Kubernetes clusters running on my Kubernetes clusters running on my Kubernetes cluster. So, these are database cluster. So, these are database cluster. So, these are database clusters, not Kubernetes clusters. These clusters, not Kubernetes clusters. These clusters, not Kubernetes clusters. These are all Postgres clusters, which are are all Postgres clusters, which are are all Postgres clusters, which are provisioned using Cloud Native PG. provisioned using Cloud Native PG. provisioned using Cloud Native PG. Anyone who says that you cannot or Anyone who says that you cannot or Anyone who says that you cannot or should not run databases on Kubernetes should not run databases on Kubernetes should not run databases on Kubernetes are full of They don't know what are full of They don't know what are full of They don't know what they're talking about. In fact, they're talking about. In fact, they're talking about. In fact, databases are one of the most common databases are one of the most common databases are one of the most common workloads that you'll see being run on workloads that you'll see being run on workloads that you'll see being run on Kubernetes. Huge government Kubernetes. Huge government Kubernetes. Huge government organizations are using databases on organizations are using databases on organizations are using databases on Kubernetes. And to do that, I recommend Kubernetes. And to do that, I recommend Kubernetes. And to do that, I recommend using Cloud Native PG. It's free and using Cloud Native PG. It's free and using Cloud Native PG. It's free and open source. And it's a really really open source. And it's a really really open source. And it's a really really good project. I've been using it for good project. I've been using it for good project. I've been using it for years both in my home lab and years both in my home lab and years both in my home lab and professionally and it's it's worth your professionally and it's it's worth your professionally and it's it's worth your while learning this. And the way that while learning this. And the way that while learning this. And the way that works is that I simply apply a manifest works is that I simply apply a manifest works is that I simply apply a manifest to my cluster like this. And when I'm to my cluster like this. And when I'm to my cluster like this. And when I'm when I apply this, it will then when I apply this, it will then when I apply this, it will then provision a database cluster including provision a database cluster including provision a database cluster including backups to S3 storage. If I just quickly backups to S3 storage. If I just quickly backups to S3 storage. If I just quickly change to the Quantified Self name space
-
change to the Quantified Self name space change to the Quantified Self name space and if I do k get clusters here, then and if I do k get clusters here, then and if I do k get clusters here, then you will see I have the cluster. Then if you will see I have the cluster. Then if you will see I have the cluster. Then if I just quickly grab the name of that I just quickly grab the name of that I just quickly grab the name of that cluster like this. And if I then in K9s cluster like this. And if I then in K9s cluster like this. And if I then in K9s CMPG status cluster, then the CMPG CMPG status cluster, then the CMPG CMPG status cluster, then the CMPG operator is going to give me a very nice operator is going to give me a very nice operator is going to give me a very nice little overview of my cluster here. little overview of my cluster here. little overview of my cluster here. Actually, I see that I have a failed Actually, I see that I have a failed Actually, I see that I have a failed backup. Everything is any healthy state. backup. Everything is any healthy state. backup. Everything is any healthy state. Everything is running well. I have three Everything is running well. I have three Everything is running well. I have three instances. And my last successful backup instances. And my last successful backup instances. And my last successful backup was a few hours ago. Everything is was a few hours ago. Everything is was a few hours ago. Everything is looking good. I have working wall looking good. I have working wall looking good. I have working wall archiving. All of my instances are archiving. All of my instances are archiving. All of my instances are working well. And if I then open K9s for working well. And if I then open K9s for working well. And if I then open K9s for example, and and check it out in here. example, and and check it out in here. example, and and check it out in here. These are the pods that are running. So, These are the pods that are running. So, These are the pods that are running. So, the CMPG operator deploys several pods the CMPG operator deploys several pods the CMPG operator deploys several pods and creates a Postgres cluster out of and creates a Postgres cluster out of and creates a Postgres cluster out of those practically. And if I execute into those practically. And if I execute into those practically. And if I execute into one of these pods, then I can just run one of these pods, then I can just run one of these pods, then I can just run PSQL, and then I have a shell into my PSQL, and then I have a shell into my PSQL, and then I have a shell into my database cluster. So, if I do C, I can database cluster. So, if I do C, I can database cluster. So, if I do C, I can connect to my quantified self database.
-
connect to my quantified self database. connect to my quantified self database. And I'll show you the tables that are in And I'll show you the tables that are in And I'll show you the tables that are in here. So, here you will see I am doing here. So, here you will see I am doing here. So, here you will see I am doing my body composition, my diet. I have my my body composition, my diet. I have my my body composition, my diet. I have my Strava data in there, Whoop, everything. Strava data in there, Whoop, everything. Strava data in there, Whoop, everything. And if I then for example do the Whoop And if I then for example do the Whoop And if I then for example do the Whoop sleep. So, these are the columns that I sleep. So, these are the columns that I sleep. So, these are the columns that I have in my Whoop sleep section. And if I have in my Whoop sleep section. And if I have in my Whoop sleep section. And if I then want to show for example my scores, then want to show for example my scores, then want to show for example my scores, let me see which one is that. That will let me see which one is that. That will let me see which one is that. That will be my my sleep performance. If I just be my my sleep performance. If I just be my my sleep performance. If I just grab that line here, and if I then grab that line here, and if I then grab that line here, and if I then select sleep performance percentage from select sleep performance percentage from select sleep performance percentage from Whoop sleep, then it will show me my Whoop sleep, then it will show me my Whoop sleep, then it will show me my sleep performance percentages for sleep performance percentages for sleep performance percentages for example. And this is just the query that example. And this is just the query that example. And this is just the query that I use in my Grafana dashboard. So, I use in my Grafana dashboard. So, I use in my Grafana dashboard. So, everything is stored on my self-hosted everything is stored on my self-hosted everything is stored on my self-hosted Postgres clusters. And then I'm able to Postgres clusters. And then I'm able to Postgres clusters. And then I'm able to visualize those in my Grafana visualize those in my Grafana visualize those in my Grafana dashboards. I really like this because dashboards. I really like this because dashboards. I really like this because it brings all of my data together, and it brings all of my data together, and it brings all of my data together, and then I can do things like comparing my then I can do things like comparing my then I can do things like comparing my Whoop and Oura metrics all in the same Whoop and Oura metrics all in the same Whoop and Oura metrics all in the same place. And again, I have my own copy of place. And again, I have my own copy of place. And again, I have my own copy of my own data and I'm not dependent on my own data and I'm not dependent on my own data and I'm not dependent on these companies if they decide to take these companies if they decide to take these companies if they decide to take it down. So the next question then is it down. So the next question then is it down. So the next question then is how do I get all of this data into my how do I get all of this data into my how do I get all of this data into my database? And surprise, surprise, I'm database? And surprise, surprise, I'm database? And surprise, surprise, I'm also using Kubernetes for that. If I also using Kubernetes for that. If I also using Kubernetes for that. If I exit this pod and if I then go back to exit this pod and if I then go back to exit this pod and if I then go back to K9s K9s K9s and now I'm going to switch to my and now I'm going to switch to my and now I'm going to switch to my app cluster and open K9s here. If I then app cluster and open K9s here. If I then app cluster and open K9s here. If I then open up all of the jobs that I have here open up all of the jobs that I have here open up all of the jobs that I have here and if I check all name spaces then you
-
and if I check all name spaces then you and if I check all name spaces then you will see that I have a Whoop scraper and will see that I have a Whoop scraper and will see that I have a Whoop scraper and Aura scraper running as jobs. So the Aura scraper running as jobs. So the Aura scraper running as jobs. So the last one completed 25 minutes ago and it last one completed 25 minutes ago and it last one completed 25 minutes ago and it then scrapes the Whoop API and then then scrapes the Whoop API and then then scrapes the Whoop API and then stores the data that it finds there and stores the data that it finds there and stores the data that it finds there and adds that to my Postgres database. So I adds that to my Postgres database. So I adds that to my Postgres database. So I do that for my Whoop data, my Aura data, do that for my Whoop data, my Aura data, do that for my Whoop data, my Aura data, and my Strava data. And that's how I do and my Strava data. And that's how I do and my Strava data. And that's how I do it. And the code for those scrapers is it. And the code for those scrapers is it. And the code for those scrapers is public on my GitHub. You can take it and public on my GitHub. You can take it and public on my GitHub. You can take it and do whatever you want with it. Just know do whatever you want with it. Just know do whatever you want with it. Just know that it's very bespoke and tailored to that it's very bespoke and tailored to that it's very bespoke and tailored to my own setup, but maybe it is some my own setup, but maybe it is some my own setup, but maybe it is some source of inspiration for you to build source of inspiration for you to build source of inspiration for you to build your own scraping setup. So both the your own scraping setup. So both the your own scraping setup. So both the Aura scraper and the Whoop scraper are Aura scraper and the Whoop scraper are Aura scraper and the Whoop scraper are there and I'll link them down below as there and I'll link them down below as there and I'll link them down below as well. So in terms of infrastructure for well. So in terms of infrastructure for well. So in terms of infrastructure for my cluster, so all of the my cluster, so all of the my cluster, so all of the non-application components, we've non-application components, we've non-application components, we've already talked about how I run my already talked about how I run my already talked about how I run my databases, but for my monitoring I databases, but for my monitoring I databases, but for my monitoring I obviously use Grafana and Prometheus. So obviously use Grafana and Prometheus. So obviously use Grafana and Prometheus. So I'm just using the standard Cube I'm just using the standard Cube I'm just using the standard Cube Prometheus stack and this also gives me Prometheus stack and this also gives me Prometheus stack and this also gives me all of the standard dashboards to all of the standard dashboards to all of the standard dashboards to monitor my resource usage on these monitor my resource usage on these monitor my resource usage on these clusters. All works really well, but clusters. All works really well, but clusters. All works really well, but monitoring is completely use useless if monitoring is completely use useless if monitoring is completely use useless if you don't alert, if you don't have you don't alert, if you don't have you don't alert, if you don't have notifications set up. So monitoring is notifications set up. So monitoring is notifications set up. So monitoring is useless without alerting and I have a useless without alerting and I have a useless without alerting and I have a pretty decent alerting setup where all pretty decent alerting setup where all pretty decent alerting setup where all of the applications are being monitored of the applications are being monitored of the applications are being monitored and if an application goes down, I will and if an application goes down, I will and if an application goes down, I will be notified via Telegram. So it's a be notified via Telegram. So it's a be notified via Telegram. So it's a really nice setup I'm really satisfied really nice setup I'm really satisfied really nice setup I'm really satisfied with. I'm using the Grafana Alert with. I'm using the Grafana Alert with. I'm using the Grafana Alert Manager and not the Prometheus Alert
-
Manager and not the Prometheus Alert Manager and not the Prometheus Alert Manager. And this is one of the things Manager. And this is one of the things Manager. And this is one of the things that I teach my students that if you can that I teach my students that if you can that I teach my students that if you can use Grafana for something, then then do use Grafana for something, then then do use Grafana for something, then then do that because basically the industry has that because basically the industry has that because basically the industry has decided and Grafana is the way. decided and Grafana is the way. decided and Grafana is the way. Prometheus Alert Manager is pretty old Prometheus Alert Manager is pretty old Prometheus Alert Manager is pretty old and it's better to do it with Grafana. and it's better to do it with Grafana. and it's better to do it with Grafana. Let's just keep it at that. Another Let's just keep it at that. Another Let's just keep it at that. Another interesting piece of infrastructure is interesting piece of infrastructure is interesting piece of infrastructure is Uptime Kuma. I'm using this to monitor Uptime Kuma. I'm using this to monitor Uptime Kuma. I'm using this to monitor the uptime of my applications, among the uptime of my applications, among the uptime of my applications, among them my my blog. And I actually didn't them my my blog. And I actually didn't them my my blog. And I actually didn't mention that just now, but my blog is mention that just now, but my blog is mention that just now, but my blog is also being run on my Kubernetes cluster. also being run on my Kubernetes cluster. also being run on my Kubernetes cluster. So, if you visit my blog, you were So, if you visit my blog, you were So, if you visit my blog, you were actually watching a page that's running actually watching a page that's running actually watching a page that's running on my Kubernetes cluster running at on my Kubernetes cluster running at on my Kubernetes cluster running at home. And I'm also hosting all of the home. And I'm also hosting all of the home. And I'm also hosting all of the code and the CI/CD pipelines all of my code and the CI/CD pipelines all of my code and the CI/CD pipelines all of my Kubernetes cluster. It's completely Kubernetes cluster. It's completely Kubernetes cluster. It's completely self-hosted. And I will show you exactly self-hosted. And I will show you exactly self-hosted. And I will show you exactly how that works in the 4 JO video that I how that works in the 4 JO video that I how that works in the 4 JO video that I just mentioned, which will be linked in just mentioned, which will be linked in just mentioned, which will be linked in the screen up here. Now, for my GitOps the screen up here. Now, for my GitOps the screen up here. Now, for my GitOps solution, I use the tool that real men solution, I use the tool that real men solution, I use the tool that real men use, which is Flux CD. So, if I do Flux use, which is Flux CD. So, if I do Flux use, which is Flux CD. So, if I do Flux get customizations, you'll see that I get customizations, you'll see that I get customizations, you'll see that I have a bunch of customizations, but I have a bunch of customizations, but I have a bunch of customizations, but I also have a few Helm releases that are also have a few Helm releases that are also have a few Helm releases that are running on my cluster as well. I mean, running on my cluster as well. I mean, running on my cluster as well. I mean, any self-respecting DevOps engineer will any self-respecting DevOps engineer will any self-respecting DevOps engineer will manage his GitOps workflows from the CLI manage his GitOps workflows from the CLI manage his GitOps workflows from the CLI and Flux CD is obviously the the and Flux CD is obviously the the and Flux CD is obviously the the superior option there. So, that is the superior option there. So, that is the superior option there. So, that is the one that I I use and I chose with and one that I I use and I chose with and one that I I use and I chose with and I'm I'm very, very happy with. And the I'm I'm very, very happy with. And the I'm I'm very, very happy with. And the last very important component of my last very important component of my last very important component of my infrastructure is Cilium. I chose Cilium infrastructure is Cilium. I chose Cilium infrastructure is Cilium. I chose Cilium because it's eBPF-based networking. And because it's eBPF-based networking. And because it's eBPF-based networking. And as you see here, plenty of huge
-
as you see here, plenty of huge as you see here, plenty of huge companies are using this CNI in their companies are using this CNI in their companies are using this CNI in their production infrastructure. And again, as production infrastructure. And again, as production infrastructure. And again, as I mentioned in the beginning of my this I mentioned in the beginning of my this I mentioned in the beginning of my this video, my home lab is a career asset. video, my home lab is a career asset. video, my home lab is a career asset. I'm using my home lab to develop myself I'm using my home lab to develop myself I'm using my home lab to develop myself as an engineer. And then and in that as an engineer. And then and in that as an engineer. And then and in that context, Cilium was the obvious choice context, Cilium was the obvious choice context, Cilium was the obvious choice for me. So, I'm using that. It's uh it's for me. So, I'm using that. It's uh it's for me. So, I'm using that. It's uh it's very advanced. There's tons of stuff to very advanced. There's tons of stuff to very advanced. There's tons of stuff to configure here, but it works really configure here, but it works really configure here, but it works really well. And another reason why I like well. And another reason why I like well. And another reason why I like Cilium is because I can do basically Cilium is because I can do basically Cilium is because I can do basically everything with it. So, I can expose everything with it. So, I can expose everything with it. So, I can expose external IPs using the load balancers. I external IPs using the load balancers. I external IPs using the load balancers. I can create ingress resources, and I can can create ingress resources, and I can can create ingress resources, and I can use the gateway API all with one use the gateway API all with one use the gateway API all with one component, and I really like that. So, component, and I really like that. So, component, and I really like that. So, it works really well, and that's why I it works really well, and that's why I it works really well, and that's why I chose Cilium. So, everything you've seen chose Cilium. So, everything you've seen chose Cilium. So, everything you've seen so far has taken me years to learn. But so far has taken me years to learn. But so far has taken me years to learn. But if you want to build a Kubernetes if you want to build a Kubernetes if you want to build a Kubernetes homelab, you can use the free guide that homelab, you can use the free guide that homelab, you can use the free guide that is linked down below. So, you can save a is linked down below. So, you can save a is linked down below. So, you can save a ton of time and learn from all of the ton of time and learn from all of the ton of time and learn from all of the mistakes I made. It also includes the mistakes I made. It also includes the mistakes I made. It also includes the code for the end-to-end um workflow that code for the end-to-end um workflow that code for the end-to-end um workflow that I just showed you earlier. Well, that's I just showed you earlier. Well, that's I just showed you earlier. Well, that's it. That's all of the applications and it. That's all of the applications and it. That's all of the applications and the infrastructure that's running on my the infrastructure that's running on my the infrastructure that's running on my Kubernetes homelab. Let me know in the Kubernetes homelab. Let me know in the Kubernetes homelab. Let me know in the comments if this gave you some comments if this gave you some comments if this gave you some inspiration. Which of these apps are you inspiration. Which of these apps are you inspiration. Which of these apps are you going to be trying yourself? Check out going to be trying yourself? Check out going to be trying yourself? Check out the free guide that is linked down the free guide that is linked down the free guide that is linked down below, and I'll see you in the next below, and I'll see you in the next below, and I'll see you in the next video.
Summary
This transcript focuses on building a Kubernetes home lab with affordable, repurposed hardware, dispelling the myth that expensive equipment is necessary. It highlights HP EliteDesks, Raspberry Pis, and Lenovo ThinkCenters as cost-effective options. The practical takeaway is that you can cobble together readily available or refurbished hardware to create a functional Kubernetes lab for learning and experimentation.