Kubernetes十--存储卷组Volume

前面我讲了关于Volume的内容,了解了Volume是类似于传统架构中的磁盘内容,概念、用途和目的与docker中的Volume也比较类似。

注意:
1.Volume定义在Pod上,然后被Pod里面的N个容器挂载到具体的路径下
2.Kubernetes中的Volume与Pod的生命周期相同,但是与容器的生命周期不相干,当Pod里的容器终止或重启,Volume中的数据是不会丢失的。
3.Kubernetes支持多种类型的存储,包括NFS、GFS、Ceph等。对存储想多了解的童鞋坐飞机去,skyfans老师带你了解存储,带你飞!!
https://blog.csdn.net/xzm5708796/article/category/8282817

Volume类型
Kubernetes包含了非常丰富的Volume类型,我们一起来学习一下。

1.EmptyDir

不难理解,从名字的字体含义我们就可以知晓,初始分配创建此种类型Volume时,内容为空。它一般是在Pod分配Node时创建的,是Kubernetes自动分配的一个目录,当然,当pod被从node上移除时,emptyDir中的数据也会随之被删除,感觉起来肾是危险!!注意:一个容器崩溃了不会导致数据的丢失,因为容器的崩溃并不移除pod.

应用场景:

(1)临时空间:某些应用在被创建后,需要临时目录作为测试等用途,使用完毕后即销毁。
(2)一个容器需要从另外一个容器中获取数据的目录,也就是多容器共享目录。

官方解释:
普通空间,基于磁盘的数据存储
作为从崩溃中恢复的备份点
存储那些那些需要长久保存的数据,例web服务中的数据

2.hostPath

hostPath类型的磁盘就是挂在了主机的一个文件或者目录

应用场景:

某些应用需要用到docker的内部文件,这个时候只需要挂在本机的/var/lib/docker作为hostPath
在容器中运行cAdvisor,这个时候挂在/dev/cgroups

配置文件配置举例:

volumes:
- name: "test-storage"
  hostPath:
path: "/data"

3.gcePersistentDisk(gcePersistentDisk 是指挂在一个特殊GCE 持久化磁盘)、awsElasticBlockStore(一个awsElasticBlockStore是一个挂在aws EBS 磁盘到我们的pod中)

两个产品化的内容,我们不过多讲解。

4.nfs

在常用不过的存储系统了。nfs可以同时被多个pod挂在并进行读写,NFS能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间相互传递。

配置文件配置举例:

volumes:
- name: nfs
  nfs:
server:#nfs服务器地址
path: "/data"

5.其他类型

(1)gfs:

开源的google文件存储系统,系统的目录挂载到pod中

(2)iscsi:

iscsi允许将现有的iscsi磁盘挂载到我们的pod中,和emptyDir不同的是,emptyDir会被删除当我们的Pod被删除的时候,但是iscsi不会被删除,仅仅是解除挂在状态而已,这就意味着iscsi能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间相互传递

(3)gitRepo

gitRepo是一个磁盘插件的例子,它挂载了一个空的目录,并且将git上的内容clone到目录里供pod使用,在将来,gitRepo会被转移到更加解偶的模型中,而不是现在以kubernete api扩展年的形式

(4)rbd

rbd允许Rados Block Device格式的磁盘挂载到我们的Pod中,同样的,当pod被删除的时候,rbd也仅仅是被解除挂载,就意味着rbd能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间相互传递

(5)Secrets

一个Secrets磁盘是存储敏感信息的磁盘,例如密码之类。我们可以将secrets存储到api中,使用的时候以文件的形式挂载到pod中,而不用连接api,Secrets是通过tmpfs来支撑的,所有secrets永远不会存储到不稳定的地方。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes 是一种用于自动化容器操作的开源平台,它可以帮助您管理和调度容器化应用程序。在 Kubernetes 中,Volume 是一种对象,用于将持久性存储附加到容器,并在容器中访问它们。本文将介绍 Kubernetes 中的 Volume,包括它的类型、如何创建和使用 Volume,以及常见的 Volume 插件。 ## Volume 类型 Kubernetes 中支持多种 Volume 类型,每种类型都有不同的用途和功能。以下是一些常见的 Volume 类型: ### emptyDir EmptyDir 是 Kubernetes 中最简单的 Volume 类型之一,它是一个空目录,可以在容器之间共享数据。当 Pod 被创建时,Kubernetes 会在节点上创建一个空目录,然后将其挂载到容器中。当 Pod 被删除时,这个空目录也会被删除。EmptyDir 的主要作用是在同一 Pod 中的容器之间共享数据。 ### hostPath HostPath Volume 允许将节点上的文件或目录挂载到 Pod 中。这意味着 Pod 可以直接访问节点上的文件系统,例如 /etc、/usr 等。HostPath Volume 可以用于访问宿主机上的配置文件、数据文件等。 ### configMap 和 secret ConfigMap 和 Secret 是 Kubernetes 中用于存储配置数据和敏感数据的对象。ConfigMap 可以存储 key-value 对,而 Secret 可以存储敏感数据,例如密码、证书等。这两种 Volume 类型都可以在容器中挂载,使容器可以访问其中的数据。 ### persistentVolumeClaim PersistentVolumeClaim(PVC)是 Kubernetes 中用于请求持久性存储的对象。PVC 可以用于请求某种存储类型,例如 NFS、iSCSI 等,并将其挂载到容器中。PVC 可以在多个 Pod 之间共享,并可以在 Pod 被删除后保留数据。 ## 创建和使用 Volume 在 Kubernetes 中创建和使用 Volume 非常简单。以下是一个使用 EmptyDir Volume 的示例: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx volumeMounts: - name: my-volume mountPath: /usr/share/nginx/html volumes: - name: my-volume emptyDir: {} ``` 在上面的示例中,我们定义了一个名为 my-volume 的 EmptyDir Volume,并将其挂载到容器的 /usr/share/nginx/html 目录中。这意味着容器可以在该目录中读取和写入数据。 以下是一个使用 HostPath Volume 的示例: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx volumeMounts: - name: my-volume mountPath: /usr/share/nginx/html volumes: - name: my-volume hostPath: path: /data ``` 在上面的示例中,我们定义了一个名为 my-volume 的 HostPath Volume,并将其挂载到容器的 /usr/share/nginx/html 目录中。这意味着容器可以访问节点上的 /data 目录中的数据。 ## 常见的 Volume 插件 Kubernetes 中有许多 Volume 插件可用于连接各种持久性存储。以下是一些常见的 Volume 插件: ### NFS NFS Volume 插件允许将 NFS 共享挂载到容器中。它可以用于在多个 Pod 之间共享数据。 ### iSCSI iSCSI Volume 插件允许将 iSCSI 存储挂载到容器中。它可以用于连接 SAN 存储等。 ### AWS EBS AWS EBS Volume 插件允许将 Amazon Elastic Block Store(EBS)存储挂载到容器中。它可以用于连接 Amazon EC2 实例上的持久性存储。 ### GCE PD GCE PD Volume 插件允许将 Google Compute Engine 持久性磁盘(PD)挂载到容器中。它可以用于连接 Google Cloud Platform 上的持久性存储。 ## 总结 本文介绍了 Kubernetes 中的 Volume,包括它的类型、如何创建和使用 Volume,以及常见的 Volume 插件。Volume 是 Kubernetes 中非常重要的概念之一,它可以帮助您管理和调度容器化应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值