容器部署过程中一般有以下三种数据:
- 启动时需要的初始数据,例如配置文件
- 启动过程中产生的临时数据,该临时数据需要多个容器间共享
- 启动过程中产生的持久化数据,例如MySQL的data目录
Kubernetes中的Volume提供了在容器中挂载外部存储的能力
Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可以使用相应的Volume
数据卷类型大致分类:
- 本地(hostPath,emptyDir等)
- 网络(NFS,Ceph,GlusterFS等)
- 公有云(AWSEBS等)
- K8S资源(configmap,secret等)