手里预算就几万块,想给公司搭个混合云,既想用 OpenStack 跑虚拟机,又想用 k8s 跑容器,还怕没人会维护 ——50 人以下的小公司,是不是都有这烦恼?做小程序开发的老杨就跟我念叨过,他们团队 8 个人,服务器就 3 台,想搞混合云又怕花钱打水漂。其实啊,小公司搭混合云,不用学大公司搞一堆高端设备,花小钱也能办成事。今天就给大家出个成本最低的部署方案,从硬件到软件,每一步都告诉你咋省钱,老杨按这方法搭下来,比预算省了一半,一起往下看吧!
先算笔账:小公司搭混合云,钱都花在哪儿了?
其实啊,混合云的成本就三块:服务器硬件、软件授权、人工维护。老杨一开始没算清,差点买了两万块的服务器,后来发现根本用不上。
咱小公司钱要花在刀刃上,这几块能省就省:
- 硬件别买新的,二手服务器足够用,老杨在闲鱼上淘了两台戴尔 R720,才花了 4000 块,性能比全新的入门服务器还强;
- 软件全用开源的,OpenStack 和 k8s 本身就免费,别信那些 “付费版才稳定” 的说法,老杨用社区版跑了半年,没出过大问题;
- 人工别外包,自己人学两天就能上手,网上免费教程一大把,老杨让公司的实习生学了一周,就敢独立部署了。
但有些钱不能省,比如硬盘得买新的(二手硬盘容易丢数据),网线要用千兆的(不然传输慢得急死人),这俩省了,后面麻烦更多。
硬件方案:3 台机器就够,不用追求高大上
小公司业务量不大,3 台服务器完全能撑住,老杨的配置供参考:
(1)主节点(1 台):稍微好点,别太旧
- CPU:至少 8 核(老杨用的 E5-2670,二手价 500 块),能跑 OpenStack 的控制组件就行;
- 内存:16GB(必须是 DDR3 或以上,不然容易兼容问题),OpenStack 的控制节点吃内存;
- 硬盘:1 块 500GB 新固态(装系统和关键组件,速度快)+ 1 块 2TB 新机械硬盘(存数据)。
(2)计算节点(2 台):普通配置,能跑虚拟机和容器就行
- CPU:4 核以上(老杨用的 E3-1230,二手 300 块 / 台);
- 内存:8GB / 台(加起来 16GB,能跑 4-6 个虚拟机,8-10 个容器);
- 硬盘:每台 1 块 2TB 机械硬盘(存虚拟机镜像和容器数据)。
为啥不用更多机器?老杨算过,8 人团队,同时在线的应用撑死占 2 台计算节点的资源,多了也是闲置,电费都浪费。
软件部署:OpenStack 选简化版,k8s 别装太多插件
小公司别学大公司搞全组件,OpenStack 和 k8s 都选轻量版,部署快还省资源。
(1)OpenStack:用 DevStack 一键部署,别自己拼组件
DevStack 是 OpenStack 的简化部署工具,适合小公司,老杨第一次部署就成功了。步骤:
- 主节点装 Ubuntu 20.04 系统(别用太新的版本,兼容性好);
- 用 git 拉取 DevStack 代码:
git clone https://opendev.org/openstack/devstack
; - 建个 stack 用户:
sudo useradd -s /bin/bash -d /opt/stack -m stack
,给权限; - 写个 local.conf 配置文件,只启用必要组件(nova、neutron、cinder),其他组件别装,省资源;
- 运行
./stack.sh
,等 40 分钟左右,自动部署完成,比手动装快 10 倍。
老杨说,他一开始想装全组件,结果部署失败 5 次,换简化版一次就成,小公司真用不上那么多功能。
(2)k8s:用 k3s 代替完整版,省一半内存
k3s 是轻量版 k8s,适合小服务器,老杨的 2GB 内存节点都能跑。部署步骤:
- 在计算节点上,用官方脚本装 k3s:
curl -sfL https://get.k3s.io | sh -
; - 主节点装 k3s server,计算节点装 agent,用 token 连起来,老杨看教程 10 分钟就搞定;
- 别装太多插件,就用默认的 coreDNS 和 traefik,监控用 prometheus 的简化版(prometheus-operator 太占资源)。
混合云协同:让 OpenStack 和 k8s “互相借东西”
小公司的混合云,核心是让两者资源互通,别各管各的。老杨的办法特简单:
(1)让 k8s 用 OpenStack 的存储
OpenStack 的 cinder 组件能建块存储,k8s 的容器可以挂载来存数据,不用单独买存储服务器。步骤:
- 在 OpenStack 里用 cinder 创建 100GB 存储卷;
- 在 k8s 里创建 StorageClass,关联 OpenStack 的 cinder;
- 部署应用时,用 PersistentVolumeClaim 申请存储,老杨的小程序后台数据就存在这,重启容器也丢不了。
(2)让 OpenStack 的虚拟机当 k8s 节点
服务器不够时,把 OpenStack 的虚拟机转成 k8s 节点,资源不浪费。老杨大促时就这么干:
- 在 OpenStack 里建 2 台 2 核 4GB 的虚拟机;
- 在虚拟机里装 k3s agent,加入 k8s 集群;
- 大促结束,删掉虚拟机,资源还给 OpenStack,灵活得很。
(3)网络打通:用 OpenStack 的 neutron 配个共享网络
让 k8s 的容器和 OpenStack 的虚拟机在一个网段,互相能访问,老杨用这招解决了数据传输慢的问题:
- 在 OpenStack 里建个 flat 网络,网段设 192.168.10.0/24;
- k8s 的 pod 网段也设成 192.168.10.128/25,和虚拟机不冲突;
- 配个路由器,让两边能 ping 通,老杨用
ping
命令测试通的那一刻,高兴得给团队加了鸡腿。
省钱小技巧:这些地方还能再省点
(1)服务器别买机柜,放普通架子上就行
小公司就 3 台机器,没必要买机柜,老杨找了个金属架子,放办公室角落,通上电就能用,省了 2000 块机柜钱。
(2)用免费 SSL 证书,别买付费的
混合云对外提供服务,需要 HTTPS,老杨用 Let’s Encrypt 的免费证书,3 个月自动续期,和付费证书一样用,没区别。
(3)员工自己学,别请培训
老杨让团队看 B 站的免费教程(搜 “OpenStack 小公司部署”“k3s 入门”),周末学两天,基本操作就会了,比请培训省 1 万块。
老杨公司的案例:8 人团队,3 台服务器,月成本 200 块
硬件:2 台二手服务器(4000 块)+ 1 台旧 PC(公司闲置的),折算成月成本(按 3 年折旧)约 110 块;
电费:3 台机器功率约 300 瓦,月电费约 90 块;
其他:网线、架子等杂项约 50 块,总共月成本 250 块,比租云服务器省多了(同等配置云服务器月费至少 1500 块)。
跑的业务:2 个小程序后台(k8s 容器)、1 个 ERP 系统(OpenStack 虚拟机)、1 个测试环境(虚拟机 + 容器),完全够用,大促时响应也挺快。
小编的心里话
50 人以下公司搭混合云,真不用追求 “高大上”,二手服务器 + 简化版软件 + 资源互通,花小钱就能办成事。老杨的经验是,小公司灵活,不用按大公司的标准来,能满足业务需求就行。
其实啊,我觉得小公司搞技术,核心是 “够用就好”,别被名词吓住。OpenStack 和 k8s 听着复杂,简化后没那么难,老杨团队 8 个人都能搞定,你们公司肯定也行。省钱不是抠门,是把钱花在能赚钱的业务上,对吧?