Kubernetes is great to get into. I don’t think it has that steep of a learning curve to get started. Sure, there are quite a few objects, but they all follow a pattern. The three essentials are pod (think of it as a container definition), a service (to make your pod accessible by other things) and ingress (which is basically a reverse proxy).
There are quite a few other objects, but in the end most of them are just fancy ways to create these essential objects.
Honorable mention is a PVC PersistedVolumeClaim that let’s you create storage objects.
You don’t, but there are distros which work a lot better than others. Especially regarding updates.
Kubernetes itself, no. Maybe a play around version of it. But nothing reliable. You can however add Windows Nodes to run windows workloads, but this is rather niche and usually not required for a homelab. If you are on windows set up VMs.
Yes! There are a few converters you can use. They are always a good starting point, as they will generate you all the objects you need.
I just started playing around with it and made big steps relatively quickly.
But I can recommend the following:
Create a few VMs. Ideally you need 3 Control Planes and at least 2 Workers.
Since you will likely start without much monitoring the Control Planes barely need resources.
As an OS I highly recommend Flatcar Linux as it has a kubernetes operator to handle updates automatically in k8s way. If you install it via proxmox you can add a Cloud Init File and make sure to include a ssh key for the user core. Make sure to include that ssh key during install.
Then when you have your 5 VMs created take a look at kubespray. It is a great tool to get started as it does all the heavy lifting during install. For the beginning go with the default config. If you want to add more things, you can just enable those modules down the road and run it again, then it will install the additional things.
Make sure to set the IPs of your VMs in the config and use the docker container to run the ansible script. Tip: when you go with flatcar you need to add the parameters --user Core --becomeUser root.
They might be a bit different, don’t know from the top of my head right now.
Good luck with it!
I think k8s is a good solution for homelabs and is a lot better than docker compose.
When you managed to get it running, check out ArgoCD. That way you can have your config in Git and ArgoCD ensures your cluster is always configured the way you have it in Git. With kubeseal you can encrypt secrets so you don’t have to have sensitive data in your repo.
And for storage, start with NFS shares, they are easy to get into. If you happen to have a NAS with TrueNAS, there is a project called DemocraticCSI. With that you can automatically provision storage on your NAS and set up a NFS, Iscsi or NvmeOf share.
Kubernetes is great to get into. I don’t think it has that steep of a learning curve to get started. Sure, there are quite a few objects, but they all follow a pattern. The three essentials are pod (think of it as a container definition), a service (to make your pod accessible by other things) and ingress (which is basically a reverse proxy). There are quite a few other objects, but in the end most of them are just fancy ways to create these essential objects. Honorable mention is a PVC PersistedVolumeClaim that let’s you create storage objects.
You don’t, but there are distros which work a lot better than others. Especially regarding updates.
Kubernetes itself, no. Maybe a play around version of it. But nothing reliable. You can however add Windows Nodes to run windows workloads, but this is rather niche and usually not required for a homelab. If you are on windows set up VMs.
Yes! There are a few converters you can use. They are always a good starting point, as they will generate you all the objects you need.
I just started playing around with it and made big steps relatively quickly. But I can recommend the following: Create a few VMs. Ideally you need 3 Control Planes and at least 2 Workers. Since you will likely start without much monitoring the Control Planes barely need resources. As an OS I highly recommend Flatcar Linux as it has a kubernetes operator to handle updates automatically in k8s way. If you install it via proxmox you can add a Cloud Init File and make sure to include a ssh key for the user core. Make sure to include that ssh key during install.
Then when you have your 5 VMs created take a look at kubespray. It is a great tool to get started as it does all the heavy lifting during install. For the beginning go with the default config. If you want to add more things, you can just enable those modules down the road and run it again, then it will install the additional things.
Make sure to set the IPs of your VMs in the config and use the docker container to run the ansible script. Tip: when you go with flatcar you need to add the parameters --user Core --becomeUser root. They might be a bit different, don’t know from the top of my head right now.
Good luck with it! I think k8s is a good solution for homelabs and is a lot better than docker compose.
When you managed to get it running, check out ArgoCD. That way you can have your config in Git and ArgoCD ensures your cluster is always configured the way you have it in Git. With kubeseal you can encrypt secrets so you don’t have to have sensitive data in your repo.
And for storage, start with NFS shares, they are easy to get into. If you happen to have a NAS with TrueNAS, there is a project called DemocraticCSI. With that you can automatically provision storage on your NAS and set up a NFS, Iscsi or NvmeOf share.