玩了6年服务器我家里跑了什么

玩了6年服务器我家里跑了什么

💡 原文中文,约4000字,阅读约需10分钟。
📝

内容提要

本文介绍了作者的个人服务器架构和托管的各种服务,包括k3s、pve、argocd等工具。作者托管了多个项目,如argocd、prometheus、grafana、cert-manager、homeassistant等。此外,作者还使用了ingress nginx、metallb、csi-driver-nfs等工具来实现网络和存储功能。他还介绍了一些其他工具,如adguard、atuin、busuanzi等。最后,作者强调了定期更新服务的重要性。

🔎

延伸解读

架构选择:简单优先,快速恢复

作者在个人服务器架构上强调简单和快速恢复,避免复杂部署。云上一台服务器运行k3s,云下m920q运行pve并起虚拟机装k3s。这种设计减少了节点数量,降低了故障风险,同时便于迁移和恢复。对于个人用户,不必追求高可用,能快速恢复且不丢数据才是关键。

服务管理:GitOps与自动化

作者使用argocd管理服务部署,所有yaml托管在自建gitea中,通过argocd同步到集群。结合reloader自动重启应用以加载新配置,cert-manager自动更新证书。这种GitOps方式简化了配置管理,方便追踪变更和查看服务健康状态,适合个人用户高效维护多个服务。

监控与数据采集:精简实用

监控方面,作者从prometheus+thanos简化为仅prometheus,认为告警最重要,历史数据意义不大。homeassistant用于采集米家温度计数据,再由prometheus抓取和grafana展示。这种组合满足了基本监控需求,避免了过度复杂,体现了按需选择工具的思路。

定期更新:保障服务长久运行

作者强调定期更新服务的重要性,每周五更新所有服务。不更新可能导致安全问题,且未来想用新功能时可能无法顺利升级。这种习惯有助于保持服务稳定和安全,避免技术债积累。对于个人服务器维护者,定期更新是确保服务长久运行的有效实践。

❓

Q&A

作者在个人服务器上部署了哪些主要服务?

作者部署了argocd、prometheus、grafana、cert-manager、homeassistant等服务。

为什么作者选择使用k3s和pve?

作者选择k3s因为其简单和方便,pve则用于方便启动虚拟机进行测试。

如何使用argocd管理服务的部署?

作者将所有服务的yaml托管在gitea中,通过argocd同步到集群中,方便管理和查看服务状态。

作者是如何监控服务器状态的?

作者使用prometheus和grafana进行监控,简化了监控的复杂性。

为什么作者强调定期更新服务的重要性?

定期更新可以解决安全问题,并确保能够使用新功能,作者每周都会更新服务。

作者使用哪些工具进行网络和存储管理?

作者使用ingress nginx和metallb进行网络管理,使用csi-driver-nfs管理NFS存储。

🏷️

标签

➡️

继续阅读