容器化上云之持久化改造
为了实现容器的无状态化,通常需要对容器进行存储持久化改造,改造的范围涉及一切本地状态,主要包括:
l 内存
l 本地文件
l 挂载的网络存储设备
通常采用的改造方法包括:
l 采用分布式缓存:分布式缓存可以替代本地内存存放中间计算结果,也可以实现多个容器之间对数据的共享;
l 采用分布式文件或对象存储:可以将本地文件保存在分布式文件或对象存储中,通过API接口进行读写访问;
l 通过容器数据卷挂载NAS存储,避免容器直接挂在NAS存储;
某些场景下需要为容器挂载数据卷来实现如日志输出,配置文件注入等功能,容器数据卷的类型包括:
l HostPath:主要用于在容器中挂载宿主机上的文件或目录,以及保存应用日志。
l EmptyDir:主要用于临时的高速存储,也可以用于一个Pod内多个容器共享数据。
l ConfigMap:主要用于配置文件的加载;
l Secret:主要用于加载包含敏感信息的配置文件;
l NFS:用于挂载NSF存储
l 块存储:用于挂载分布式块存储
某些应用难以做到无状态化,例如Redis、Zookeeper等,可能由于应用严重依赖本地状态数据或应用集群中各个实例地位不对等,需要有稳定的唯一标识,并遵守严格的启停顺序等。此时需要采用Kubernetes的StatefulSet模型来处理这类有状态应用负载。在有状态应用中通常会依赖上述的数据卷实现数据的持久化保存。
容器
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。