## 项目介绍
szinn/k8s-homelab 是一个非常详尽的家庭实验室基础设施代码库(Infrastructure as Code),使用了 Talos Linux + Kubernetes + Flux + Renovate 的现代 GitOps 技术栈。这是一个真实运行的家庭实验室集群,展示了如何用生产级别的工具和理念来管理个人家庭实验室。
项目基于著名的 cluster-template 模板构建,融合了众多优秀开源项目的基础设施实践。最初的方案是使用 Ryzen 处理器加上 35+ 个 Docker 容器,纯手工管理,每次升级都要手动处理。作者信奉”If it ain’t broke, it isn’t complicated enough”的原则,最终演进到了现在这套完全自动化、自管理的集群方案。
## 核心技术栈
**Talos Linux**:专门为 Kubernetes 设计的最小化安全 Linux 发行版,所有配置通过 API 管理,无需 SSH 访问操作系统,安全性极高。
**Kubernetes**:容器编排平台,统一管理所有工作负载。
**Flux**:GitOps 工具,将 Git 仓库作为基础设施的唯一真相来源,自动同步集群状态到 Git 中定义的状态。
**Renovate**:自动化依赖更新机器人,自动检测并更新集群中过时 Helm Chart 和容器镜像。
**GitHub Actions**:自动化 CI/CD 工作流。
## 核心特色功能
**纯 GitOps 驱动**:所有集群配置都在 Git 仓库中管理,任何变更都需要通过 Git PR 完成,确保所有变更可追溯、可回滚。
**自动化依赖更新**:Renovate 自动扫描集群中所有 Helm Chart 和镜像,发现新版本后自动创建 PR,审核通过后 Flux 自动应用到集群。
**状态监控面板**:内置集群状态监控系统,通过 API 暴露集群年龄、运行时间、节点数、Pod 数、CPU/内存使用率、告警数量等信息。
**多架构支持**:支持多种硬件设备组成集群,适合不同规模和预算的家庭实验室。
**开箱即用的最佳实践**:汇集了众多优秀 homelab 项目的大量实践,可作为自建 homelab 的绝佳参考模板。
## 硬件配置参考
项目仓库中详细列出了作者的家庭实验室硬件配置,包括多台服务器设备,每台设备标注了操作系统磁盘大小、数据磁盘大小和内存容量。用户可以根据自己的硬件条件进行参考和调整。
硬件选型建议:
– 如果只有单台机器:从单节点 Talos + K3s 开始,逐步扩展
– 如果有多台机器:推荐使用 Talos Linux 做控制面,K3s 或 K8s 做工作负载
– 必备:稳定的高速内网(万兆或至少千兆)
## 安装部署步骤
### 第一步:准备硬件并安装 Talos Linux
参考 Talos 官方文档,为每台机器安装 Talos Linux:
“`bash
# 下载 Talos 工具链
curl -Lo /usr/local/bin/talosctl https://github.com/siderolabs/talos/releases/download/v1.6.0/talosctl-linux-amd64
chmod +x /usr/local/bin/talosctl
# 生成集群配置
talosctl generate config my-cluster https://192.168.1.100:6443
# 应用配置到节点(获取节点 MAC 地址后)
talosctl apply-config –nodes 192.168.1.101 –file controlplane.yaml
“`
### 第二步:初始化集群
“`bash
# 引导第一个控制平面节点
talosctl bootstrap –nodes 192.168.1.100
# 生成 kubeconfig
talosctl kubeconfig –nodes 192.168.1.100
“`
### 第三步:Fork 并克隆本仓库
“`bash
git clone https://github.com/szinn/k8s-homelab.git
cd k8s-homelab
# 按需修改配置(仓库地址、密钥等)
“`
### 第四步:用 Flux 初始化 GitOps
“`bash
# 安装 Flux CLI
curl -s https://fluxcd.io/install.sh | bash
# 验证集群
flux check –pre
# 引导 Flux(需要先在 GitHub 上创建好空仓库)
flux bootstrap github \
–owner=your-github-username \
–repository=k8s-homelab \
–branch=main \
–path=./clusters/my-cluster \
–personal
“`
### 第五步:配置 Renovate
在 GitHub 上安装 Renovate App,关联你的仓库。Renovate 会自动创建 PR 来更新过时的依赖。
## 适用场景
**家庭媒体中心**:用 Kubernetes 运行 Jellyfin、Plex、Sonarr/Radarr 等媒体服务,享受容器化带来的便利。
**自建开发环境**:在集群上运行 GitLab、Jenkins、Portainer 等开发工具,所有服务统一管理。
**学习 Kubernetes**:这是一个绝佳的 Kubernetes 生产级别实践环境,比 minikube 更接近真实场景。
**私人云服务**:搭建自己的云盘(Nextcloud)、密码管理(Bitwarden)、导航页等服务。
**网络附加存储**:用 Longhorn/TrueNAS 等实现分布式存储,比传统 NAS 更灵活。
## 开源协议
本项目配置模板基于 MIT 协议开源,可自由参考和使用。
—
**服务支持**:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。








暂无评论内容