智能工具库

用 OpenStack + k3s 自建 K8s 集群,月省 600 美元

用 OpenStack + k3s 自建 K8s 集群,月省 600 美元

本文介绍如何用 OpenStack 托管的专用虚拟机部署三节点 k3s 集群,配合 Terraform 和 Cloudflare,以约 346 美元/月的成本替代 AWS EKS 的 914 美元/月方案,并详解选型与架构权衡。

2026-10-20 0来源:Hacker Noon

为什么考虑自建而非托管服务

自管 Kubernetes 的核心动机是节省工程预算。AWS EKS 虽然省心,但托管控制面、负载均衡器、NAT 网关、存储和出站流量层层叠加,费用很快失控。用 OpenStack 提供商提供的虚拟机部署 k3s,依然能获得 API 驱动的自动化编排、私有网络和标准 Terraform 工具链,却不必为托管控制面买单。

实测数据:三节点 k3s 集群月费约 346 美元,同等配置的 EKS(us-east-1)在加上负载均衡器、NAT 网关等附加费用前就已达到 914 美元。差距主要来自控制面托管费和网络附加组件。

虚拟机 vs 裸金属:为什么选 VM

裸金属服务器在每 GB 内存单价上确实更低,但代价是运维时间成本:一台裸金属可能耗时数小时甚至数天才能上线,磁盘故障需要物理更换。3HCloud 的方案介于两者之间——VM 运行在专用核心上而非共享池,通过标准 OpenStack API 管理;磁盘使用外部 Fibre Channel SAN 存储,计算节点宕机后 VM 可在其他主机上恢复且数据完整。

这种组合提供了接近硬件定价 + 超大规模云的灵活性 + 更简单的故障恢复,非常适合中小团队。

架构设计要点

目标是在低成本下兼顾可用性、简洁性和安全性:

  • 容忍单节点故障(包括 etcd 成员),无需多年合约
  • 技术栈保持简洁:k3s + 原生 Terraform
  • Kubernetes 组件不暴露公网,应用流量仅通过 Cloudflare 入口

整体架构分四层:

层级 组件 说明
计算 3HCloud 云服务器 通过 terraform-provider-openstack 编排
Kubernetes k3s(内置 etcd) 三节点集群
API 端点 HAProxy + Keepalived 私有网络上的虚拟 IP
入口 Traefik + Cloudflare LB 启用 Authenticated Origin Pulls 锁定

定价与实例选型

3HCloud 的专用 CPU 实例按 vCPU 线性定价,选型本质是爆炸半径、装箱率和节点开销之间的权衡。关键价格(美元/月):

  • 内存优化型(m-):6 GB RAM/vCPU,$2.50/GB RAM,2–32 vCPU
  • 通用型(g-):4 GB RAM/vCPU,$3.50/GB RAM,2–32 vCPU
  • CPU 优化型(c-):2 GB RAM/vCPU,$9/vCPU,1–32 vCPU
  • 共享池(s-):1–2 GB RAM/vCPU,$2.50–3.00/GB,1–2 vCPU

选型建议

  • 内存是瓶颈:大多数集群在 CPU 跑满前就 OOM,内存优化型以 $2.50/GB 的单价最划算
  • 小控制面或 CI 节点:CPU 优化型以 $9/vCPU 的价格适合低内存需求的场景
  • etcd 必须避开共享池:etcd 对延迟敏感,邻居争用会导致心跳延迟和 leader 频繁切换
  • 共享池适合:实验室和预览环境,生产环境不建议

注意:块存储和公网 IPv4 单独计费,本文对比中两侧均仅计算计算资源费用。

集群布局的四种方案

文章提出了四种集群布局思路,核心区别在于控制面节点与 worker 节点是否混部、etcd 是否独立部署。对于预算敏感的团队,三节点全混部 + 内置 etcd 是最经济的起步方案;对可用性要求更高的场景,可考虑独立 etcd 节点或分离控制面。

对开发者的实用价值

  • Terraform 全自动化:从 VM 创建到 k3s 安装、网络配置全部 IaC,可重复部署
  • Cloudflare 作为唯一公网入口:降低攻击面,利用 Authenticated Origin Pulls 防止未授权访问
  • 迁移成本低:k3s 是轻量级 K8s 发行版,与标准 K8s API 兼容,未来迁移到 EKS 或其他平台无需重写应用

这套方案特别适合成本敏感但不想牺牲可用性的中小团队,尤其是已有 OpenStack 经验或希望通过 Terraform 统一管理多云资源的团队。

featured image - Deploying Kubernetes Clusters on OpenStack: An Alternative to AWS EKS

Dr. One (en-US)

Ms. Hacker (en-US)

Milica Maksimovic

Milica Maksimovic's image-d95788

本文目录(7 节)

本文基于 Hacker Noon 的公开内容,由 AI 辅助整理改写后发布。

原标题:Deploying Kubernetes Clusters on OpenStack: An Alternative to AWS EKS

阅读原文