V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
suuuch
V2EX  ›  Kubernetes

自建低成本集群(k8s, Spark)的方式有哪些?

  •  1
     
  •   suuuch · 2023-12-11 10:46:38 +08:00 · 5223 次点击
    这是一个创建于 376 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近想更新一些自己的一些软件,想自己搭建一下 k8s 集群在自己家里,通过 FRP 穿透出去。 发现一般 k8s 推荐配置都是在 4C 8G 左右,按照 3 台来估算的话,成本不算很低。 基本上 2000 预算是比较容易实现,但是我也很想研究下 低于 2000 的有没有比较好的方案。

    目前设定的已知约束:

    1. 机器放在家里(考虑空间占用、噪音和电费)
    2. 配置:3 台 4C 8G 的服务器,主要考虑其实是内存。
    3. 预算卡在 2000 以内。越低越好。
    4. (可选)后续升级空间

    目前考虑过的几个方案,还没仔细去研究:

    1. 洋垃圾方案,不考虑显卡的话,CPU 控制在 120W 以内。单台价格 900RMB 左右。三台价格预计:2700
    2. i5-8400T + B360M 方案,8 代 CPU 的性能和功耗比较综合,单台价格也是接近 900RMB 。三台价格估计:2700
    3. N100 方案,现在买个 N100 准系统大概是 600 以内,加上其它配件,估计不低于 900RMB ,总计也回到 2700RMB
    4. 树莓派方案,4b 的话 8g 二手现在 500 元上下。加上其它配件,三台预计:1450~1700 。
    5. 国产香橙派方案,3b 8g 的价格是 345 左右。加上其它配件,三台预计:1035~1235 。

    简单分析: 上面考虑的其实有 x86 和 ARM 方案,x86 方案的话,更接近实际环境,ARM 的话,更像是自己玩的环境。 方案 123 里面,可以通过虚拟化的方式,将一台机器虚拟成 2 台机器,成本可以下降一下。 然后就是 ARM 方案后续升级空间其实有限。

    现在想集思广益一下,还有木有其它的方案可以考虑?

    第 1 条附言  ·  2023-12-11 16:20:10 +08:00
    感谢各位回复,我大致总结了一下。
    1. Review 自己需求,是否一定要集群。k3s 是否满足需求
    2. 推荐购买高性能设备 + 虚拟机。 不推荐多台低性能设备。高性能设备可用范围会更大一些。
    43 条回复    2024-02-07 16:24:46 +08:00
    zerozerone
        1
    zerozerone  
       2023-12-11 10:50:57 +08:00   ❤️ 1
    淘宝二手服务器,买回来装个 pve 或者 esxi ,虚拟出来三台虚拟机
    jorneyr
        2
    jorneyr  
       2023-12-11 10:56:35 +08:00   ❤️ 1
    这玩意就不是给预算不高的场景使用的。
    ghostwwg
        3
    ghostwwg  
       2023-12-11 11:02:23 +08:00   ❤️ 3
    不考虑单体的 allinboom 虚拟化套 k8s 嘛。。做做试验是够的,1099 的 480xt+700 内存( 32+32 )+512 SSD 差不多 2000 的样子
    NipGeihou
        4
    NipGeihou  
       2023-12-11 11:10:19 +08:00   ❤️ 1
    前阵子刚组了一台,16 核 32 线程 128G ,平时功耗 60W 左右,满载 100W ,自己定制了个亚克力机箱,尺寸`32cm×22cm×9.4cm`7L 不到,个人觉得性价比还是不错的。

    | 配件名称 | 型号 / 数量 | 价格 |
    | -------- | ----------------------------------- | ---- |
    | CPU | D-1581 板 U 套装 | 669 |
    | 主板 | D-1581 板 U 套装 | - |
    | 内存条 | 镁光 DDR4 32G 2R×4 ECC REG 2133 * 4 | 700 |
    | 散热器 | AVC 铜芯 下压式 CPU 散热器 | 27 |
    | 硬盘 | 梵想( FANXIANG ) S790 2TB | 500 |
    | 电源 | 杂牌 小 1U (FLEX) 300W | 159 |
    | 机箱 | 定制 亚克力定制 | 60 |
    mengdodo
        5
    mengdodo  
       2023-12-11 11:14:51 +08:00   ❤️ 1
    @NipGeihou 100w 感觉高了呀,我关注的零刻 5800 那款小盒子,感觉足够我玩 all in one ,但是担心夏天散热不行(之前买的 inter nuc8 就是),到现在还没买。。。
    knightgao2
        6
    knightgao2  
       2023-12-11 11:15:03 +08:00   ❤️ 1
    R730XD 直接一台搞定,就是噪音记得换个风扇
    NoNewWorld
        7
    NoNewWorld  
       2023-12-11 11:20:59 +08:00   ❤️ 1
    洋垃圾,2000 多搞了个 2686 x2 ,日常 120w ,满载 200+, 还行,就是每月单服务器要吃我 100 的电费
    anubu
        8
    anubu  
       2023-12-11 11:30:06 +08:00   ❤️ 1
    家用场景不太考虑冗余高可用,多节点不是必须的。单节点跑 k8s 或 k3s 都是可行的,k8s 生态里的东西都能玩。

    当然,如果是要练习或折腾着玩,多节点要求也不高,虚拟机、小主机、退役的手机、平板都可以加到集群里折腾。

    如果不是特别需要练手裸金属场景,不建议入手多个低性能硬件,更建议入手单个高性能硬件。
    flmn
        9
    flmn  
       2023-12-11 11:36:54 +08:00   ❤️ 1
    买个 nuc 开虚拟机
    Achilless
        10
    Achilless  
       2023-12-11 11:37:26 +08:00   ❤️ 1
    你的服务数量有 k8s 进程数量多吗。当然,你要在家跑 100 多个服务当我没说
    morningtzh
        11
    morningtzh  
       2023-12-11 11:39:08 +08:00   ❤️ 3
    我在家是单节点装了 k3s 。用的 i3-12100 ,16G 内存。一套设备下来不算机箱硬盘 1700 吧。两个 ssd ,三个硬盘,一般 45w ,带显卡 60w 。日常 cpu 不到 5%,做了 intel gpu 共享用于解码。

    有公网 IP 就用 wireguard 或 vpn 回家。当然,ingress 装个 sso 认证,然后开放端口出去也很简单,k3s 挺方便的,traefik 直接支持 https 证书自动申请。

    这是我刚搞时候的记录,现在差别有点大 哈哈,仅作参考
    https://www.yuque.com/morningtzh/blog/lp8mav6f0f714d26
    NipGeihou
        12
    NipGeihou  
       2023-12-11 11:40:35 +08:00
    @mengdodo 5800h 我是买了后才知道,确实不错,散热问题加个风扇就行了吧
    Senorsen
        13
    Senorsen  
       2023-12-11 11:42:35 +08:00   ❤️ 1
    K3s +1
    单节点或多节点都可以
    buffzty
        14
    buffzty  
       2023-12-11 12:03:37 +08:00
    你这个配置不 java
    timochan
        15
    timochan  
       2023-12-11 13:32:05 +08:00   ❤️ 1
    个人觉得你的使用场景,k3s 就足矣
    poplar50
        16
    poplar50  
       2023-12-11 13:41:00 +08:00 via Android
    @knightgao2 这种服务器类型没有静音风扇可换吧? 我家里现在有个 720 ,已经吃灰了,有点儿吵。
    smartruid
        17
    smartruid  
       2023-12-11 13:46:37 +08:00   ❤️ 1
    2000 块钱够你买个 4800H 迷你机配 64g 内存和 1t 固态了
    Donahue
        18
    Donahue  
       2023-12-11 13:50:26 +08:00   ❤️ 1
    追求小体积: 5800h 迷你主机一台
    不追求小体积: 3700x + b450m b550m 等主板,amd 3 代 4 代 cpu, am4 平台够用了

    树莓派 n100 这些性能不够看的,买个性能好点的装 pve 虚拟化出来 3 台就好了,你的使用场景性能要求虽然不高,但真没必要折腾树莓派。。
    cheng6563
        19
    cheng6563  
       2023-12-11 13:55:57 +08:00   ❤️ 1
    用 k3s 吧,能单能群。
    gxm44
        20
    gxm44  
       2023-12-11 14:09:49 +08:00   ❤️ 1
    k3s or micro8s
    Dotennin
        21
    Dotennin  
       2023-12-11 14:21:12 +08:00   ❤️ 1
    2500 入的 nuc 7735hs 32G4800hz 1TB 的 NUC.
    组 truenas 自带 k8s. 目前除了硬盘不够用得用雷电扩展外,其余都很满意.
    chinesestudio
        22
    chinesestudio  
       2023-12-11 14:40:34 +08:00
    我有五台 E5 2630l 双路服务器
    之前内网穿透 组建的 pve 集群。然后 rancher 等集群都行
    单台服务器功耗 100w 左右,50 分贝。不放卧室就没问题。
    民用电一个月 200 左右。
    如果有兴趣,可以打包出。
    机柜已经出了,就剩下服务器了。
    pigeon2049
        23
    pigeon2049  
       2023-12-11 14:41:06 +08:00   ❤️ 1
    三台天钡 n100 32G+1T 组 proxmox 集群 成本 5002(三台加一起)
    加 6 块 10T HGST 拆机硬盘 成本 2818 (可选)
    总成本 7820
    其中 proxmox 三台组集群 并且组 ceph 6 OSD
    三台都是双网口,三台各一个网口接光猫一个网口接 2.5g 交换机
    这样 ikuai vm 磁盘在 ceph 集群上拨号都能实现不断网故障转移(亲测)
    同时由于设置了多副本策略 单硬盘坏了或者单机器坏了完全不影响数据读写
    ddmasato
        24
    ddmasato  
       2023-12-11 14:50:17 +08:00   ❤️ 1
    这么奢侈的吗。。弄一台 nuc ,升级内存到 32G ,跑 k3s 就可以了
    tomorrow092
        25
    tomorrow092  
       2023-12-11 14:54:49 +08:00
    求 v 友 告知,FRP 穿透 出去,不会被查吗?怎么规避?
    yuyu01
        26
    yuyu01  
       2023-12-11 14:55:53 +08:00   ❤️ 1
    amd 的迷你主机啊,我目前用的 5700G ,整机待机功耗 10w 左右。
    配合 qemu-system-x86_64 ,虚拟机随便开啊
    yuyu01
        27
    yuyu01  
       2023-12-11 14:56:46 +08:00
    @yuyu01 一个月大概 12 度电
    suuuch
        28
    suuuch  
    OP
       2023-12-11 16:24:40 +08:00
    @chinesestudio 服务器噪音太大了,还是考虑迷你主机吧。
    photon006
        29
    photon006  
       2023-12-11 16:48:26 +08:00   ❤️ 1
    小主机推荐极摩客 M5 ,准系统¥ 1099 ,看测评: https://post.smzdm.com/p/a0xkkv4z/

    cpu amd 4700u ,8C16T 跑虚拟化足够了,去买云服务器也是别人多核硬件虚拟的子系统,还不如自己 pve 虚拟,vm 整机磁盘备份也方便,管控更彻底。
    locoz
        30
    locoz  
       2023-12-11 17:35:33 +08:00   ❤️ 1
    我的建议是低配设备不如不搞,要用的时候完全不顶用,日常状态随便跑点常驻服务就把资源吃完了。洋垃圾是个比较合适的选择,现在机房淘汰的 dell 、华为二手服务器很多,准系统基本可以说是白菜价了。单机跑虚拟化再分多个虚拟机跑多节点的集群除了学习用途以外毫无意义,多节点要搞就是为了可靠性,没必要为了多节点而多节点。
    groovyquan
        31
    groovyquan  
       2023-12-11 18:40:09 +08:00   ❤️ 1
    我上周末刚搭建了一个 k8s 集群,用的 零刻 EQ12 准系统小主机( 722 块买的,硬盘和内存不算,我原来笔记本拆下来的,如果要买带内存和硬盘的也不超过 1500 ), 安装 Debian 12 ,用 kvm 搭建虚拟了三台虚拟机,在三台虚拟机上安装了 k8s 集群,性能还绰绰有余,小主机声音还很小
    surfwave
        32
    surfwave  
       2023-12-11 21:06:28 +08:00   ❤️ 1
    好好想想有什么需求是必须上 k8s 才能解决的?需求不足还是别搞 k8s ,否则是给自己找事。当然你工作是搞这行的,那么在家弄弄 k8 也还是可以。
    johnzr
        33
    johnzr  
       2023-12-12 00:29:00 +08:00 via iPhone
    @morningtzh 写的真好,老配置和现在差别很大的话能不能更新一下文章呢?期待!
    kursk
        34
    kursk  
       2023-12-12 09:13:41 +08:00   ❤️ 1
    我现在正在用香橙派搭 K8S 带外部 etcd 集群,技术验证完全可行
    3 个 OrangePi 3B 作为 etcd 集群
    2 个 OrangePi 3 安装 keepalived+haproxy 作为负载均衡
    3 个 OrangePi 3B 作为 control plane
    再加 3 个 OrangePi 3B 作为 worker node ,或者用台式机上的虚拟机

    这样就是一个功能完整的、具备独立 etcd 机器、独立负载均衡、非常廉价的 K8S 集群,而且没有风扇和噪音,适合放在家里。而且 control plane 完全独立,有多余的机器作为 worker node 加入,非常方便。

    orangePi 3B 便宜的只要 200 左右,不用买带 eMMC 的,使用 64GB tf 卡,京东的 V3 速率只要 20 多元,没有比这个性价比更低的方案了
    xuanbg
        35
    xuanbg  
       2023-12-12 09:41:53 +08:00   ❤️ 2
    除非你想玩一下 k8s ,否则根本不需要搞什么 k8s 。我一个虚拟机上裸跑 docker ,几十个服务也占不了多少资源。管理也超级方便,毕竟才几十个服务而已。
    jlwrp
        36
    jlwrp  
       2023-12-12 12:29:31 +08:00 via iPhone
    @knightgao2 风扇有推荐吗?
    Cola98
        37
    Cola98  
       2023-12-12 13:20:58 +08:00   ❤️ 1
    建议 all in one 在物理机上,然后虚拟化出来几台机器,这样配置上也够用。性价比会更高,我目前个人 K8S 集群是这样的,配置大概如下:
    master 是 16G 8C 300G Node1-2 是 32G 8C 200G ,宿主机配置是 DDR4 64G amd 8 核 16 线程 磁盘有两个,一个 SSD 2T ,一个 HDD 2T 。
    ijk0
        38
    ijk0  
       2023-12-14 02:15:19 +08:00
    @mengdodo 入了铭凡 580d 感觉散热还挺好
    locoz
        39
    locoz  
       2023-12-15 18:10:06 +08:00   ❤️ 1
    看到楼主的附言,补充一下: 是否是多节点组的集群跟是使用 K8S 还是 K3S 毫无关系,都能单节点运行。一般来说,配置足够的情况下建议还是跑 K8S ,用 kubeadm 部署,相对于 K3S 而言在一些特殊情况下能避免踩坑。
    morningtzh
        40
    morningtzh  
       337 天前
    @johnzr
    主要是 ingress 部分,目前已经使用公网域名作为 ingress 入口了。如果后面有需要,可以直接开放到外网,并加上 sso 登录
    https://www.yuque.com/morningtzh/blog/eastki6i9uebhfbk
    ironboxplus
        41
    ironboxplus  
       320 天前
    当然是一台公网 VPS+内网主机,用 Tailscale 之类的工具组网
    suuuch
        42
    suuuch  
    OP
       318 天前
    @ironboxplus 这个方案我试过,网络延迟是挑战。我用的 talscale 没成功,能看到机器,但是无法联通。我就继续使用我之前用的 zerotier 了
    ironboxplus
        43
    ironboxplus  
       318 天前
    @suuuch
    延迟我认为是问题不大的,起码对我的集群来说。
    虽说 K8S 集群对延迟变化敏感,但是在我的测试中,tailscale 把国内外服务器和本地内网环境的服务器都联通了起来,没有发生掉线的情况
    如果你的服务对延时有要求的话,那最好还是地理位置接近的服务器搭建集群最为合适,当然 Tailscale 也是可以用的

    tailscale 组网+K8S 的话,你需要使用和 tailscale 配套的 K8S 网络平面,除了自己配置,另外一个好的选择为 K3S
    K3S 为集群对 Tailscale 的集成提供了实验性支持,在简单设置启动参数和 Tailscale 配置后,可快速在任意网络环境中搭建异地私有集群,然后享受 Tailscale 的 wireguard 加密和打洞直连
    详细见此链接`https://docs.k3s.io/zh/installation/network-options`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1227 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:09 · PVG 02:09 · LAX 10:09 · JFK 13:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.