Deployments 和 ReplicationControllers 表示“无状态”使用,且相对较轻量级一点。所谓的“状态”也就是数据持久化存储,一般情况下,二者的 Pod 在重启后,数据就丢失了。

StatefulSets 表示会进行存储状态,且使用 volumeClaimTemplates/claims 来申请存储空间,在重启后,数据也会保存。

所以,如果应用是有状态的,那么就部署成 StatefulSet;如果是无状态的,或者说,数据是交给后端系统(如数据库、申请的PV)来保存的,那么就使用 Deployments。

更详细的说明请阅读这里