重建我的家庭实验室:作为服务的痛苦

主要观点:作者在办公室有太多电脑,便将其作为 homelab 来使用,原本运行 NixOS,因朋友劝说决定在自家硬件上尝试 Kubernetes,为此尝试了多种 Linux 发行版及相关工具,包括 Rocky Linux、Fedora CoreOS、Talos Linux 等,在安装和配置过程中遇到了各种问题,如 Mac 安装 Rocky Linux 的特殊情况、Fedora CoreOS 的管理方式及存储相关问题等,最终使 Kubernetes 在 homelab 中运行起来,并计划后续进行更多尝试。

关键信息:

  • homelab 包含多种机器,如 kos-mos、ontos、logos、pneuma、itsuki、chrysalis 等。
  • 考虑过 Rocky Linux、Ansible、Universal Blue 生态相关、Fedora CoreOS、K3os、Talos Linux 等方案,最终因各种原因选择或放弃。
  • Rocky Linux 安装在 chrysalis 上遇到 EFI 分区等问题,手动安装过程繁琐。
  • Ansible 管理系统在 Rocky Linux 上使用时存在一些不便,如需使用完全限定模块名等。
  • Fedora CoreOS 安装需使用coreos-installerbutane,但更改配置需重新镜像机器。
  • Talos Linux 极其简约,通过talosctl可方便管理集群,其talosctl dashboard命令很实用。
  • 在 Talos Linux 上安装 Kubernetes 过程中,遇到 etcd 配置、存储问题(如 Longhorn 安装困难)及 ingressd 相关问题等。

重要细节:

  • 作者在 Mastodon 上进行 poll,结果 overwhelmingly支持 Rocky Linux,但实际安装过程困难。
  • Ansible 防止重复运行命令需创建空信号文件,可使用预定义角色但作者有自己的看法。
  • CoreOS 的 Fleet 曾很有革命性,后因 Red Hat 被收购而式微,Flatcar Linux 延续其精神。
  • Fedora CoreOS 安装方式独特,通过声明系统最终结果生成 ISO 安装,可在云环境中使用 user data 配置。
  • 在 Talos Linux 上部署 nginx 服务及相关 Secret 挂载方式,还介绍了 1Password 操作员的使用。
  • 存储相关问题中,许多存储产品会硬编码集群 DNS 名称为cluster.local,导致问题,需修改 CoreDNS ConfigMap 等。
  • 后续计划包括使用 KubeVirt 运行 VMs、在集群中运行 Minecraft 服务器、复活 kubermemes 及尝试在 Talos Linux 上运行 AI 等。
阅读 13
0 条评论