K8S中如何使用Volume存储数据

发布时间:2021-08-03 14:54:01 作者:Leah
来源:亿速云 阅读:135

这篇文章将为大家详细讲解有关K8S中如何使用Volume存储数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Volume类型

Kubernetes提供了众多的volume类型,现在列出一部分,具体可以参考官方文档。

emptyDir,hostPath,gcePersistentDisk,awsElasticBlockStore,nfs,iscsi,flocker,glusterfs,rbd,cephfs,gitRepo,secret,persistentVolumeClaim,downwardAPI,azureFileVolume,azureDisk,vsphereVolume,Quobyte

1、emptyDir

emptyDir的生命周期与所属的pod相同。pod删除时,其emptyDir中的数据也会被删除

emptyDir类型的volume在pod分配到node上时被创建,kubernetes会在node上自动分配 一个目录,因此无需指定宿主机node上对应的目录文件。

emptyDir Volume主要用于某些应用程序无需永久保存的临时目录,多个容器的共享目录等。

下面是一个pod挂载emptyDir的示例:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - image: test-webserver
    name: test-container
    volumeMounts:
    - name: cache-volume
      mountPath: /cache
  volumes:
  - name: cache-volume
    emptyDir: {}

2、hostPath

pod删除或者是调度到另外一个Node,原先Node上的存储卷还在

hostPath Volume为pod挂载宿主机上的目录或文件,使得容器可以使用宿主机的文件系统进行存储。缺点是,在k8s中,pod都是动态在各node节点上调度。当一个pod在当前node节点上启动并通过hostPath存储了文件到本地以后,下次调度到另一个节点上启动时,就无法使用在之前节点上存储的文件。

hostPath使用示例:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - image: test-webserver
    name: test-container
    volumeMounts:
    - name: test-volume
      mountPath: /www
  volumes:
  - name: test-volume
    hostPath:
      path: /data

三、网络存储

Persistent Volume(持久化卷)简称PV,是一个K8S资源对象,我们可以单独创建一个PV, 它不和Pod直接发生关系,而是通过Persistent Volume Claim(简称PVC)来实现动态绑定,我们会在Pod定义里指定创建好的PVC, 然后PVC会根据Pod的要求去自动绑定合适的PV给Pod使用。

持久化卷下PV和PVC概念:

Persistent Volume(PV)是由管理员设置的存储,它是群集的一部分。就像节点是集群中的资源一样,PV 也是集群中的资源。 PV 是 Volume 之类的卷插件,但具有独立于使用 PV 的 Pod 的生命周期。此 API 对象包含存储实现的细节,即 NFS、iSCSI 或特定于云供应商的存储系统

PersistentVolumeClaim(PVC)是用户存储的请求。它与 Pod 相似。Pod 消耗节点资源,PVC 消耗 PV 资源。Pod 可以请求特定级别的资源(CPU 和内存)。PVC声明可以请求特定的大小和访问模式(例如,可以以读/写一次或 只读多次模式挂载)

它和普通Volume的区别是什么呢?

普通Volume和使用它的Pod之间是一种静态绑定关系,在定义Pod的文件里,同时定义了它使用的Volume。Volume是Pod的附属品,我们无法单独创建一个Volume,因为它不是一个独立的K8S资源对象。

关于K8S中如何使用Volume存储数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. k8s基础中如何通过Volume保持数据持久
  2. Django使用mysql存储数据

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

volume k8s

上一篇:macOS中怎么安装 swoole

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》