比如,mysql ,需要把数据持久化到本地文件。
但如果用 docker 集群跑 mysql ,默认情况下,实例是会被调度到别的节点的,而持久化的文件固定在节点本地。
docker swarm 的解决方案是给某个节点加 label ,指定 mysql 的部署节点 label 要求,mysql 就不会到处跑了。
不知道 k8s 的解决方案是什么。
但如果,使用 MinIO 或者 SeaweedFS 之类的解决方案,把每个节点的磁盘空间,组成一个分布式文件系统,让 docker 集群上的服务,通过 POSIX API 或者 s3 兼容接口去访问这个分布式文件系统,就像访问当前节点的文件系统。
这么还能充分利用各个节点的闲置磁盘空间。
当然,还要能接受分布式文件系统带来的性能损耗。
mysql 只是随便举个例子。
但如果用 docker 集群跑 mysql ,默认情况下,实例是会被调度到别的节点的,而持久化的文件固定在节点本地。
docker swarm 的解决方案是给某个节点加 label ,指定 mysql 的部署节点 label 要求,mysql 就不会到处跑了。
不知道 k8s 的解决方案是什么。
但如果,使用 MinIO 或者 SeaweedFS 之类的解决方案,把每个节点的磁盘空间,组成一个分布式文件系统,让 docker 集群上的服务,通过 POSIX API 或者 s3 兼容接口去访问这个分布式文件系统,就像访问当前节点的文件系统。
这么还能充分利用各个节点的闲置磁盘空间。
当然,还要能接受分布式文件系统带来的性能损耗。
mysql 只是随便举个例子。
