在聊Operator之前,先聊聊无状态vs有状态。

大家可能已知道,

  • 所谓无状态:“每一次请求都不依赖历史数据,也无数据持久化需求,扩容简单,即扩即用”。 说人话就是“只是个传声筒,左耳进右耳出,不往脑子里去。 就算复制N个传声筒,其工作内容也是完全一致的”。
  • 所谓有状态:“依赖历史数据,且具有数据持久化需求,扩容后续工作复杂”。 数据库为有状态的典型,若复制出N个数据库,就涉及master/slave角色分担,底层数据同步的工作。

那么在k8s中,在2种工作负载的调度有何异同?
【相同】

  • 均以container以落地形式
  • 均支持增加replica(副本)横向扩展
  • 均支持挂载存储

【不同】

  • 无状态:
    • 副本无序随机命名,销毁后重新生成命名
    • 并行扩容,并行缩容
  • 有状态:
    • 副本以0,1,2有序命名,销毁后名称不变,可通过访问副本名保持访问。
    • 串行有序扩容,顺序为0,1,2。 串行有序缩容,顺序反之。

在这里插入图片描述

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐