主要观点:作者最初认为 Kubernetes 只适用于大型组织,过于复杂,但实际体验后发现它很适合自己的家庭实验室环境。自我托管服务时,作者曾手动使用 podman 和 ansible 部署,虽能满足需求但有局限性,如配置繁琐、升级困难、服务发现不佳等。而 Kubernetes 提供了更标准化的部署方式,通过 yaml manifests 描述容器等信息,可利用 Helm 图表快速部署服务,还能受益于社区维护的图表和专家经验。k3s 简化了 Kubernetes 的安装和维护,适合单服务器环境。Kubernetes 的可发现性也很棒,如 cert-manager 可自动获取证书,Prometheus Operator 可自动抓取服务。
关键信息:
- 作者自我托管服务主要为自己,面临自身能力不足和硬件故障等威胁,曾用 podman 和 ansible 部署。
- Kubernetes 不是只适用于大型组织,对于关心简单稳定设置的家庭实验室者很合适。
- Kubernetes 可通过 yaml manifests 描述基础设施,Helm 图表可快速部署服务,且有社区维护。
- k3s 简化了 Kubernetes 的安装和维护,适合单服务器环境。
- Kubernetes 的可发现性好,如 cert-manager 和 Prometheus Operator 可自动处理相关事务。
重要细节:
- 作者在 podman 和 ansible 部署中需手动按特定顺序执行多个步骤,升级也较复杂,服务发现不佳。
- 在 Kubernetes 中,可通过
kubectl apply
应用 yaml manifest 部署服务,利用 Helm 图表配置变量快速部署,如部署 Keycloak。 - k3s 安装简单,可通过
curl -sfL https://get.k3s.io | sh -
或k3s-ansible
playbook 进行安装,其集群可在单节点上运行。 - Kubernetes 中的 Ingress 可用于暴露容器到网络,cert-manager 可读取 Ingress 属性获取证书,Prometheus Operator 可读取特定对象自动抓取服务。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。