• K8s 存储


    Docker Volume 是针对容器层面的存储抽象,其volume的生命周期是通过docker engine来维护的。K8s Volume 则是应用层面的存储抽象,在K8s中通过Pod的概念将一组具有超亲密关系的容器组合到了一起形成了一个服务实例,为了保证一个Pod中某一个容器异常退出,被kubelet重建拉起旧容器产生的重要数据不丢,以及同一个Pod的多个容器可以共享数据,K8s在Pod层面定义了存储卷,也即通过.spec.volumes来声明Pod所要使用的volume类型。

    而且K8s通过CRI接口解耦和docker engine的耦合关系,所以K8s的volume的生命周期理所当然由K8s来管理,因此K8s本身也有自己的volume plugin扩展机制。Pod .spec.volumes中的Volume类型做一个分类:

    本地存储:emptydir/hostpath等,主要使用Pod运行的node上的本地存储

    网络存储:in-tree(内置): awsElasticBlockStore/gcePersistentDisk/nfs等,存储插件的实现代码是放在k8s代码仓库中的;out-of-tree(外置): flexvolume/csi等网络存储inline volume plugins,存储插件单独实现,特别是CSI是volume扩展机制的核心发展方向。

    Projected Volume: secret/configmap/downwardAPI/serviceAccountToken,将K8s集群中的一些配置信息以volume的方式挂载到Pod的容器中,也即应用可以通过POSIX接口来访问这些对象中的数据。

    PersistentVolumeClaim与PersistentVolume体系,K8s中将存储资源与计算资源分开管理的设计体系

  • 相关阅读:
    Xilinx之软件平台 ISE与Vivado前世今生
    博客开园
    第一天:开始你的Jobeet项目
    MySQL之alter语句用法总结
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    MySQL中distinct和group by性能比较[转]
    GROUP BY,WHERE,HAVING之间的区别和用法
    split(),preg_split()与explode()函数分析与介
    解析posix与perl标准的正则表达式区别
    sql关键字的解释执行顺序
  • 原文地址:https://www.cnblogs.com/jacksonxiao/p/11299181.html
Copyright © 2020-2023  润新知