主要观点:作者在办公室有太多电脑,便将其作为 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-installer
和butane
,但更改配置需重新镜像机器。 - 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 等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。