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

有状态应用放 K8S 有什么优点吗?

  •  
  •   binbinyouliiii · 2020-05-09 15:00:40 +08:00 · 3918 次点击
    这是一个创建于 1661 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经常看到有人需要把数据库、Redis 等各种中间件 和 文件处理程序之类 的放在 K8S 里面部署。

    我现在学的还浅,对我来说 K8S 主要是一个服务编排工具,如果放进去了一个有状态应用,就失去了 K8S 很多编排的特性,运维成本也会上升。

    感觉搞个单独的服务器用 Docker 装不更加香吗?

    9 条回复    2020-05-11 21:43:31 +08:00
    rrfeng
        1
    rrfeng  
       2020-05-09 15:24:11 +08:00
    statefulset 了解一下,可以组合多种角色一键部署、滚动升级啥的。
    binbinyouliiii
        2
    binbinyouliiii  
    OP
       2020-05-09 15:28:42 +08:00
    @rrfeng #1 statefulset 我知道,可是这种有状态的不就只能落死节点了
    asilin
        3
    asilin  
       2020-05-09 15:50:06 +08:00
    如果没有分布式存储,就相当于落死节点了。
    但如果有 Ceph 存储集群等用来做 PVC 存储,则就可以在任意节点漂移了,相当于 staleless 。
    tolerance
        4
    tolerance  
       2020-05-09 15:55:23 +08:00
    服务器很多的时候,多少有点作用
    binbinyouliiii
        5
    binbinyouliiii  
    OP
       2020-05-09 15:58:40 +08:00
    @asilin #3 一般这种服务不都是吃 IO,分布式存储再怎么好也是走网络,延迟性能跟不上吧

    @tolerance #4 我想问的就是有什么优点
    lhx2008
        6
    lhx2008  
       2020-05-09 16:02:56 +08:00 via Android
    最大的优点就是弹性部署,快速重建,快速伸缩,然后一般都是 CRD 来控制了,statefulset 那种意思不大。
    binbinyouliiii
        7
    binbinyouliiii  
    OP
       2020-05-09 16:06:17 +08:00
    @lhx2008 #6 数据肯定需要持久化的,弹性和伸缩不会搞丢数据吗?
    lhx2008
        8
    lhx2008  
       2020-05-09 16:09:08 +08:00 via Android
    @binbinyouliiii 持久化是 CEPH 这种提供,弹性伸缩就是加节点,比如原来一主一从变成一主两从,或者六节点三切片变成十二节点六个切片。新节点加入就会联系旧节点同步数据的。
    namelosw
        9
    namelosw  
       2020-05-11 21:43:31 +08:00   ❤️ 1
    你自己管理 Stateful 集群更难,伸缩都要自己搞,ip,网络什么的很麻烦。比如 Cassandra 之类的。

    数据库这种 cluster 一般还好,一般也不经常部署,扔 Kubernetes 外面也行,但是经常加节点的时候还是 Statefulset 好用,Kubernetes shutdown 的时候也会按顺序 graceful shutdown,自己弄不小心就会丢数据。

    最需要 Statefulset 的是 Akka 之类的这种,你的应用是 stateful 的,经常部署经常伸缩,扔 Kubernetes 外面管理起来很头疼。Statefulset 能自己起名字自己管理,手动弄全要自己配。

    比如说你考虑重写一个魔兽世界这种东西,一个巨型地图十万人,状态不仅要在内存,还得跨机器,每台机器存一片地图和玩家。基本这种需求写出来的代码就要用 Statefulset 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3456 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 11:32 · PVG 19:32 · LAX 03:32 · JFK 06:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.