 So Amar has organized a day-long hackathon while a high schooler for 20 other high school kids and He did that day long and The kids successfully deployed into your Kubernetes apps to Amazon Cloud by the end of the day So he's not a rookie on the subject of Kubernetes or edge and talk to him afterward and you can verify that for yourself The agenda well we're gonna cover we're talking about home labs here And we're gonna cover why you do one at all how you'd go about doing one and then we've got a lot of it running in this Home lab, but we'll do a demo of a few things So why would we want to run a home lab well a great convenience of modern life is being able to access your things anywhere on any device And in some cases you can host these things by getting quote free storage from Google or Some other players, but it's fair to question the privacy and reliability of the services We'd have to do if we were to use these kind of free online cloud hosted services There's historical precedent for data breaches price increases and total service shutdowns even by the big players And many of these so-called free services are paid for by allowing the provider to mine your data for Ad placement and other purposes, but privacy and cost savings are not the only motivations for host self hosting software Let me ask you something When was the last time you got an opportunity to just have fun and play on that production system at work? My colleague William Lam said this well in a recent tweet as some of us get older Maybe we lose that sense of curiosity and become afraid to just try stuff out and break things The home lab is a great opportunity to learn and grow while having the joy of being a kid again Amar, why don't you take over? Oh, yeah, sure. Thank you for that intro Steve All right, so this slide. We've got the header WTF. I thought this was an edge conference For those unfamiliar WTF stands for welcome to fun Steve wrote that joke But the headline raises an important point Why are we talking about home labs at all in an edge conference? Well, there are tons of similarities between a home lab environment and what we might see in an edge deployment So as an example in an edge deployment you maintain your own hardware It's not a public cloud if you want to increase the amount of RAM You have to put more dims in if you want to increase the number of cores you have to change the CPU It's not just a dial on AWS, right? So the home lab is a great opportunity to learn and grow while also Giving you the freedom to maybe break things. Hopefully not too much, right? The slide here says that there's no 24-7 expert staff with resources to help you out But really the slide should say that you become the 24-7 expert staff yourself And maybe your family, you know When you break the plex media server deployment is going to turn to you and say hey, why is this not working? All right, so first I'd like to talk a little bit about some of the hardware you need to Kind of start your own home lab up At the most basic you need a secure network connection Which most of us have at our homes as well as some compute resources You'll also likely find some kind of shared storage Is very useful for backups as well as hosting stateful workloads And you can choose for the compute side of things either one big server or perhaps a Cluster of smaller and not class systems these not class devices can cost around five hundred dollars or so per node I think that's a little high, but You can probably get a little cheaper depending on where you look on the use market and so on and the option Steve runs is a Large back mount server and if you buy this used on eBay It could be comparable to that single knock in price But you can really get these things with a lot of specs to a point where they can run multiple Kubernetes clusters using virtual machines and With either of these options We say that we should you should consider using a Raspberry Pi as an IO gateway for reaching non IP based devices And we'll cover more why you might want to prefer a pie in an upcoming slide So first I'd just like to talk a little bit about that firewall router And this can just be based on software running on some commodity hardware So two great open-source options are pfSense and open OPN sense both of these require x86 CPUs, but if you have a computer with multiple network interfaces You can just load pfSense or OPN sense the hardware requirements are very low So you can use something low-power like Adam or Celeron and All you need is some kind of routing software that can support multiple subnets D2P server DNS V lines and so on right and Another great option is open WRT, which is a fantastic open-source software I've experimented with it a bit myself and it's just a way to supercharge your Existing wireless router that you probably already have in your home For storage options shared storage is useful a big part of this home lab is having shared files that are accessible anywhere so a Storage solution like open-media vol or to nas come into play here And these can turn a white box at any computer with some drives attached it into a host for NFS SMB S3 and other storage interfaces And then those storage interfaces can be consumed either by your apps directly or by Kubernetes through persistent volumes and Finally for compute options. I mean the compute is really kind of the core of everything, right? This is where your actual workloads your Kubernetes clusters your containers are going to be run and Steve is using an older rack-bound commercial server. I think we Yeah, we mentioned we could buy one of these for $200 or less Supporting multiple Xeon sockets up to 200 gigabytes of relatively cheap memory The only downside of these systems is really they're very loud and they're very large If any of you have dealt with you know, rack-bound hardware before So really would recommend only getting one of these if you have the space for them and something like a basement or a garage and If you do chose choose to go with that large server option you might want to consider using a hypervisor on top of that server because By doing things using VMs on top of the server You can run a multi-node Kubernetes installation and that gives you all the advantages of multi-node Kubernetes Including rolling updates and it's just fun to experiment with If you go with the with the cluster a smaller system route Raspberry Pi might look very attractive But do be warned if you've looked at pride Prices lately They are not good. They have Definitely been subject to a lot of supply chain issues. So especially for the larger more recent Models of Pi that have enough RAM to run Kubernetes. You're likely looking to pay a lot of money There are two options on here that are not listed and one of those is using an old laptop and The other is using an older desktop And I mentioned both of these because really, you know both nox and servers and all these like different compute options Are just computers at the end of the day and a lot of us probably have old laptops or Desktops that are lying around collecting dust, right? We don't use them anymore, but you can put Linux on them and You know connect them up to a network and use them to run workloads run a small Home lab installation that way All right, and finally to the software That we're running in this home lab. So I've thrown a bunch of these You know called for logos up on the slide. We've experimented with I think almost all of the software that's up on the slide today and This is what I should really emphasize here is that this is just a small subset of the total software That's available out there. I mean the kinds of You know self-hosted open-source software that you can get range from all kinds of use cases from home automation To infrastructure hosting the productivity To even just stuff like you know if you like cooking there are open source self-hostable recipe apps that you can put up on your Home lab and store all your recipes that way and so on So on our next slide here I'd like to give it back to Steve who is going to talk a little bit about some of the options we have For hosting all of this software So Amar mentioned these different types of apps and where you would prefer to land these apps Can depend on what the nature of them are how they're packaged and one size doesn't fit all in fact I've found that you'll generally end up running Some apps on physical hardware bare metal Others inside vms some on docker some in kubernetes and i'm going to go into How you decide an optimal location for these various things I'm going to race through these and try to get this done in minutes, but there's a lot of these slides here, so You want to use uh when when physical hardware access is required you should prefer to run either on bare metal with an os or bare metal inside docker and This is because piercing through hypervisor and kubernetes abstraction layers Uh Typical typically requires administrative costs and some can argue that it opens up security holes You have to run in privilege modes that are generally not recommended by these things so Bare metal is better and Doesn't matter whether it's in docker or not If a rapid restart after a power outage is important once again You would prefer to run on bare metal either in docker or not It just you don't want to wait to boot up a hypervisor boot up a kubernetes cluster And you'll typically find that you've got some services in the house that you want up very quickly because others depend on them You know if you put up an authentication source, for example your kubernetes cluster might depend on that Being an existence at the time it boots in order to work, right? So things that you need to get up very quickly Move move them on to the bare metal and it will help accomplish that When an app isn't even packaged as a container Obviously you can't use a container so that runs either On an os or an os in a vm. When do you see this kind of thing? Well, some things are designed to run as services or as device drivers Occasionally you can be on your bare metal hardware in my demo I'm on an old pi 3 Which is not a 64 bit arm and many open source projects do not package Or produce containers for those more obscure platforms So When would you prefer Other things You know a one gigabyte platform can still run Docker, but it's not going to run kubernetes So if you've got a small amount of resources, you're just not likely to be able to fit kubernetes onto it When the app was made to take advantage of horizontal scale out and you want to use that feature That's a circumstance when you definitely do want to use kubernetes Run it on kubernetes. It will save you effort and kubernetes was made exactly for this use case Um Likewise when an app is a complex and tier Composition of other apps, you know say a web front end with uh one or more database back ends kubernetes is made for this particularly when a helm package is available It's much easier to deploy and update that thing using a higher level packaging mechanism And it saves you time and effort. It helps you keep that thing Maintained and patched when your app needs or benefits from Enhanced features like secrets c i c d that you might get out of a tool like flocks service mesh policies of their ability These tend to be kubernetes related features sure with service mesh It is possible to run that in a bare VM, but It's a lot of hard work and kubernetes just makes that easier So I would lean that direction um When your physical host gets to the point where it has a high amount of resources meaning many cores and a lot of memory say 10 or 20 cores two sockets 100 gigs of ram or 200 gig I would favor running a hypervisor on top of that whether you run kubernetes or not You know if you went the other alternative of bare metal It implies you're running a single linux on something that gigantic And it might be the only thing you have you can't carve it up to run Multiple workloads if you have to patch or update that os take it from ubuntu 20 to 22 and something goes wrong Your whole home everything in there might go wrong if you carved it up into individual VMs You have atomic you have granularity of what you play around with You can even get on a big system like that the ability to simultaneously run Multiple kubernetes clusters and that can be a great learning experience or something for home grade productivity So at this point i'm going to demo a system with that same run direct attached i o On physical hardware, which in my case is going to be a raspberry pi 3 This is what this thing physically looks like this This is in my house right now in los angeles i'm I'm just going to not pray to the demo gods because it's worked for me all morning and I will all hope I get lucky But what this is is a very small pi with a couple of usb dongles One of them is a software defined radio the thing on the On the uh lower left for me That's a 30 software defined radio. It isn't quite what the telcos would use in a cell tower But these things are pretty versatile You can run things and i've experimented with this you have to buy more than one if you do all of these but I've managed to Listen to police radio in la over the thing I have managed to detect my car in the driveway because it actually will Read the tire pressure sensors and know when my car pulled in the driveway It's actually very It is very secure because You have to provably have those four exact tires show up in your driveway and one could argue that it's Much, you know, very hardcore authentication and finally the demo i'm going to do now Is running Effectively a home-based f a air traffic control system. I can't give the pilots orders, but I get to watch them all and What i'm running is this software stack it is the pie running An app that hosts a website showing all the air traffic in the los angeles area and In order to get that out to the internet So that uh, it's visible here in detroit. This has to be opened up on the internet One way that people used to do it the old school might be to take your home router open some ports out port forward them But there's risks there and there's some cool new technology out that you might not have heard of called cloud flare Argo tunnels you can get a free tier account from cloud flare and run two of these absolutely free no strings attached You do give up some of the advanced features related to authentication and logging, but It really actually works well and i'm running this open source air traffic control monitor system I'm running a cloud flare demon on that pie It's all very small the whole thing fits inside that one gig pie and i'm also running i'm not showing it in the demo A z-wave system on the other dongle that does my home automation using z-wave radio And it all fits in that pie you saw in the previous picture It's mounted outside in a nema box on an antenna map tv antenna mask masked and Let's go on and uh, just show that Bear with me a minute because i'm going to have to Open up a web browser and somehow drag it over to the other screen And just to prove that there's no smoke and mirrors going on here Before my session I gave access to this url to a la over there in the audience and she brought this thing up To prove that i'm not like just vpn into this thing or something so Let me see is that dragging over there good Um, I don't think that will help get it on the other screen Okay, did it go over there? Click okay, so Let me go over there. So this is literally live Los angeles air traffic I think it's obscured there, but it typically at this time of day is showing about 200 aircraft And it is tracking them all the way down to san diego and all the way over to las vegas It shows them a lot of them parked at the tarmac over at lax, but it also picks up the long beach airport the Orange county airport. It was rather surprising actually how well this thing worked Given that it's on a 30 buck Software defined radio dongle and amar if you can try to randomly pick a plane you can see that this even brings up I'll coach you move it over to the left Just press one and we'll hope you get lucky So this is going to go out and Fetch a actual picture of that aircraft that typically if you got a commercial one anyway Try a different one. You might have got a private plane that isn't in one of the databases Lower Just click one and I'll tell you if you got something Okay, you got you got the idea anyway, and then you have to ask yourself Um, you know, this is cool, but if I really had to remote manage something like this, you know We're trying to learn about real live device edge cases. What do you do for observability? And um, I want to try to get if you can steer If you can somehow just advance that we'll bring up the observability page That is also coming out of the pie Well, you won't be able to type. I actually went back and forth So if you can manage to advance uh in the order on that thing the right mouse click well Okay, I guess go up to the top and I'll tell you what to type So it's observability Dot descending cloud Dot com Slash graphs We're giving away the url But please don't open it because if everybody in the room did it This pri is literally hosting this website and it isn't it doesn't have enough memory to have 50 people bring this up at once But you can see here that these are metrics on the software defined radio Scroll up and we'll get to the metrics in the Linux operating system in that pie We'll see Keep going. We're still on the adsb Keep going. Okay stop So We have got cpu utilization. We've got memory utilization keep going. We'll get our temperatures um disc usage um Keep going disc IO Anyway, it's a pretty rich set of metrics completely unattended like you'd see at an edge site And this thing like I say is securely hosted if you look up at the top that actually is an https Certificate on this website and I didn't even have to put it there because The cloud flare tunnel is willing to take http Send it down the secure tunnel to cloud flare and then cloud flare puts a tls certificate on it that Is accepted. There's no messing around with let's encrypt no renewing let's encrypt And cloud flare I believe gives you their full Uh protection against denial of service attacks Nobody can even learn what your ip address is for your your home system So it's a pretty cool way to harden something you've got running at home and uh Like I say you can get two of these tunnels for free So let me move on to the second tunnel um, let me get back to the um The presentation here So the next demo is next cloud. So amara was talking about this as one of the apps This is effectively like a host your own version of the g drive It runs office apps that are sort of uh, there's a long history of this project They call it currently colabra, but it was based on libra office and you've got a Slide presenter app. You've got a word processor. You've got a spreadsheet And the storage behind this is hosted On your own server, but you can add an authentication database put your whole family on on that if you like and Effectively you're like running your own g suite um So what's going on here is this is an ntr app. It has a web front end Uh with a maria db back end and for a cache it uses redis A helm chart an official one is available from the next cloud project itself So deployment to kubernetes is pretty easy You download the well the helm chart and if you're familiar with helm you Override whatever you want the values file. It does take maybe 20 minutes to deploy Maybe another 10 to stabilize because it starts up a bunch of services that the first time they run take a while and Once again, you can put the argotunnel in front of this And uh, let's see. I've got this running In yet another browser and I've got to find it here Let me try to drag this one over there now Oh, by the way, while i'm doing this alex and you verify you were able to get that in the audience too, right that There wasn't smoke and mirrors here So this is next cloud. I am going to skip the part i'm we're I don't want to encroach on the next speaker and maybe have some time for q&a But this shows you what it looks like if you go up to that icon at the top that looks like a file folder You can create new files. You can create a slide deck An office document whatever you want Um, and there are plugin apps for this in all kinds of categories. So they have hosted this By the way, they have a phone version of this for android and ios So that if you put this server on the air you can even get to your stuff from a mobile device and once again It's a it's a tool that you could host in your own home lab Um, if you're going to start putting a lot of stuff on here, it might You know, you've you've got to host the storage that backs this thing up But even on a small scale, this is potentially quite useful and maybe gets you back some privacy And you might learn a lot just getting in this on the air even if ultimately you prefer to use one of the commercial services so Amar do you want to bring this home then on the resources? Sure All right. So, yeah, the first resource listed is my blog. So that's from when I was a summer intern at vmware There I deployed a bunch of these services in a kubernetes home lab And kind of blog the entire process of at homelab.acgandhi.com. So feel free to check that out Serve the home is a great youtube channel that we've linked up here dbtech another youtube channel kates at home is a great repository github repository of Helm charts for a lot of useful software that you might like to run in a home lab But the organizers have recently deprecated that repository though I believe it does have a new home at least for some of the helm charts And it's still a great resource for the stuff that's up there in archive now and finally We've got bitnami's helm charts and kubaps listed here They've got a lot of helm charts, especially for just backend services, you know, you want a database that sort of thing odds our bitnami has it anyways, thank you for Listening to our presentation, and we hope that you try out some of the stuff in a home lab yourselves So Amar did mention that he was a summer intern at vmware I highly recommend him But I was unable to keep him on as a year-round intern If any of you are working for companies that potentially could take on a year-round college intern I think Amar Might appreciate a landing spot. So go chat with him out in the hallway at the next break if That's something that maybe we can get to work out Um, anybody got any questions or how much time do we have before the next speaker is there five minutes? Yeah, yeah Did you use what? k3s This one is using actually i'm running two disc grows simultaneously I didn't mention what this hardware is, but it's an old ancient Dale r7 10 that was a server that I think first shipped in 2009, but they kept it in production maybe five years And I managed to get this thing Stripped for 99 bucks But you know they sell it to you typically by removing the discs, but it's quite large It has 100 gig and I actually wanted to learn about the amazon aws eks anywhere distro So i'm running a A production grade meaning I use the aw the eks anywhere thing labeled production and it's running on there And then at the same time i'm running a second kubernetes cluster which just happened to be The one that I used the time before and it is a Tanzu kubernetes. I happen to work for vmware. So that's the explanation there I have run rancher on it in the past and I have run microkates And i'm just kind of the curious type so that when something new comes out I use my home lab to play around with it to shop and compare At a break if anybody wants to learn about the experience Of eks anywhere chat me up because I can give you some tips on that some of the things in the docs Let's just say they have room for improvement But once you get it running it seems to be a pretty nice kubernetes distro and So not running k3s at the current time, but it could be and I see no reason why somebody who wanted to couldn't run k3s in their home lab Let's see i'll say a question. Yeah Any other questions So I currently have a home lab, but that's running on raid Which is a commercially available software that kind of manages all of this for you Would you recommend switching? Well, if what you've got now works, why would you switch other than wanting to learn it? Yeah, I found in mine one of the advantages of getting like a pretty big server is that isn't even either or you You know you you what you can do is bring up a second kubernetes just to try it out before you Commit and go to Not being able to go back you can do even cool experiments of doing the what if I wanted to migrate So you can bring up a backup package like full aro. For example Back up your workloads and restore them on a completely different kubernetes distro and theoretically that works But yeah, you have an opportunity to prove that it works The other thing you can do if you didn't want to do the backup This is one of the reasons for running that storage appliance if you used proper persistent volumes You should be able to detach those from one distro and actually remount them in another one and Uh If you know what you're doing there there are ways that could go wrong But it is possible to move your per your stateful apps over any non-stateful apps You might as well just redeploy them Okay, if there's no other questions or if you just wanted to do it privately Uh, I'll be here all day including the reception afterward. We can talk about other apps We've done a lot more than what you We've shown here You know, you can play music including hosting it to play from your cell phone in your car while you're driving around There is just an awful lot you can do here And uh, kind of the home automation thing which we didn't show Um, I did mention the pie runs z-wave, but there's something called home assistant You can use to automate your whole house and it's pretty cool stuff if you're a techie Thank you