This repository is currently a work in progress.
I don't know when v1.0.0 will be reached due to the large number of tasks.
You can check the current tasks and progress here.
This project is an attempt to build a Highly-Available HomeLab using Infrastructure as Code (IaC). Emphasis is placed on reproducibility, portability, and recoverability.
Inspired by nixos-ha-cluster, I began to build.
NixOS enables declarative node management and HA k8s cluster building.
The differences between his project and this.
- Response to Flakes
- Light weight nodes by LXC/Incus
- k8s environment with ingress-nginx, LoadBalancer and Rook/Ceph support
- Building HA NFS clusters as persistent volumes
- Support for building k8s on local and external physical machines
- Additional utilities
- I am beginner in server operation and networking.
- Often make disruptive changes.
- NixOS: As Hypervisor and Platform of k8s
- Colmena: Deploy tool for NixOS
- Terraform: Management of container and virtual machine for node of k8s
- LXC/LXD: As Nodes for k8s cluster
- ansible-k8s-config: Ansible-playbooks for apps on k8s
- You can change resource and count of node editing
local-dev.tfvars
| Node | etcd | loadbalancer | nfs |
|---|---|---|---|
| description | etcd database | proxies to the k8s API | external volume |
| component | etcd | keepalibed, haproxy, logrotate | nfs, pacemaker, brbd |
| count of node | 3 | 2 | 2 |
| resouce/node (RAM/CPU) | 1GiB/2Core | 1GiB/2Core | 1GiB/2Core |
| Node | controlplane | worker |
|---|---|---|
| description | controlplane for k8s | worker for k8s |
| component | kube-{apiserver,controller-manager,scheduler} and component of worker |
kubelet, kube-proxy, coredns, flannel |
| count of node | 3 | 3 |
| resouce/node (RAM/CPU) | 1GiB/2Core | 1GiB/2Core |
