系统集成Kubernetes

Kubernetes是如何使用存储空间的?

参与6

2同行回答

zzhengleizzhenglei  技术经理 , 某保险
因为每个容器都有自己独立的文件系统,默认是无法共享的。Kubernetes使用存储卷来管理文件系统。卷不是Kubernetes的顶级资源,而是Pod的一部分。Pod中的容器通过卷来共享数据。卷有很多种,下边介绍几个简单的:emptyDir,适用用Pod中多个容器共享数据,生命周期和Pod相同,用于临时存...显示全部

因为每个容器都有自己独立的文件系统,默认是无法共享的。Kubernetes使用存储卷来管理文件系统。卷不是Kubernetes的顶级资源,而是Pod的一部分。Pod中的容器通过卷来共享数据。

卷有很多种,下边介绍几个简单的:

emptyDir,适用用Pod中多个容器共享数据,生命周期和Pod相同,用于临时存储。

gitRepo,通过检出Git仓库的内容来初始化的卷。本质上还是一个emptyDir

hostPath,将节点上的目录挂在到Pod中,这个是持久性的,但是只能节点上访问,因此一般使用hostPath卷的Pod会使用节点选择器选择固定的节点运行。

使用网络存储,一些集群的基础设施会提供网络化的存储,比如集群运行在GCE上,可以使用GCE持久磁盘;如果运行在AWS EC2上,可以使用awsElasticBlockStorage卷;如果运行在Azure上可以使用azureDisk卷。这些都是持久化存储。

上述方法都需要Pod的制作者理解存储的实现,Kubernetes提供了一种将将存储和Pod解耦的技术,这就是PV和PVC。运维人员和底层存储打交道,预先创建一些持久卷(PV);存储的使用者无需知道存储的底层细节,只需要描述所需存的存储的大小和权限等要求,也就是创建一个持久卷声明(PVC),Kubernetes会自动找到适当的持久卷并将其绑定到声明。因为一个PV只能绑定一个PVC,因此很容易造成浪费。Kubernetes又引入了一个StorageClass的资源,用来动态的创建持久卷,能更充分利用存储空间。运维人员先创建多个StorageClass,存储使用者在PVC声明中指定StorageClass类型,以及存储大小,StorageClass根据PVC动态的创建PV。

收起
保险 · 2019-12-30
浏览821
和谐之声和谐之声  系统运维工程师 , 中银保信
https://www.cnblogs.com/xzkzzz/p/9633308.html显示全部
互联网服务 · 2019-12-30
浏览885

提问者

sdsfan80
技术支持中国电信集团系统集成有限责任公司
擅长领域: 云计算私有云主机

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-12-30
  • 关注会员:3 人
  • 问题浏览:1646
  • 最近回答:2019-12-30
  • X社区推广