有状态应用通常会组成集群,如MySQL。而且在启动之初还需要作初始化工作,如数据拷贝、数据导入等,通常需要initcontainer来实现。当出现故障时,如何顺利的进行故障转移也是需要考虑的,在实际操作中往往伴随着比较大的风险(相对于虚拟机部署而言)。一般性的建议是在对应官网找到kubernetes中部署方式,通常是helm脚本,通过配置合适的 values.yaml 来实现部署,但是即使如此,还是谨慎一些!
官方提供了两个示例:cassandra集群部署 、 MySQL集群部署。
https://kubernetes.io/zh-cn/docs/tutorials/stateful-application/cassandra/
https://kubernetes.io/zh-cn/docs/tasks/run-application/run-replicated-stateful-application/