返回WilliamShen的回答

对于用状态应用来讲,有三个方面跟无状态应用有着本质区别:

  1. 首先就是数据的持久化。这个需要存储的支持,OpenShift支持K8S的volume plugin以及最新CSI(Container Storage Interface),能够支持多种存储后端,比如NFS, iSCSI, Ceph RBD, GlusterFS, VMWAre vSphere VMDK等。用户可以通过创建PV来创建存储资源,pod通过PVC绑定到对应的PV.我们可以根据对存储的使用情况(比如单读写,多读写,IOPS)等来选择不同的存储后端。这里顺便要提一句,红帽将会在明年1月份发布容器原生存储OpenShift Container Storage 4.2, 就是为了针对有状态应用的存储场景。 OpenShift Container Storage 4.2基于Ceph, Rook和Noobaa三大技术打造,是一个容器原生的存储系统。
  2. 其次,pod不具有对称性,每个pod不能互相替换(这里可以是配置不同,数据不同等),在这种情况下,需要采用statefulset。
  3. 最好,对于用状态应用,启动和停止不是简单启停pod,可能还需要做一些额外的事情。这时候,Operator framework就出场。我们可以采用Operator Framework的Operator-SDK为有状态应用创建它的运维逻辑。
软件开发 · 2019-12-26
浏览1510

回答者

WilliamShen 最近回答过的问题

回答状态

  • 发布时间:2019-12-26
  • 关注会员:2 人
  • 回答浏览:1510
  • X社区推广