kunbernetes Volume(存储卷)

一、Volume

Volume是pod中能被多个容器访问的共享目录。Kubernetes 中的Volume被pod里的多个容器挂载到具体的文件夹目录下,当容器终止或重启时,Volume中的数据不会丢失。kubernetes支持几种类型的卷:awsElasticBlockStore、azureDisk、azureFile、cephfs、configMap、CSI、downwardAPI、emptyDir、fc(光纤通道)、flexVolume、flocker、gcePersistentDisk、gitRepo(已弃用)、glusterfs、hostPath、iSCSI、local/NFS、persistentVolumeClaim
projected、portworxVolume、quobyte、RBD、caleIO、ecret、torageos、sphereVolume等

AWS EBS示例配置

apiVersion: v1
kind: Pod
metadata:
  name: test-ebs
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-ebs
      name: test-volume
  volumes:
  - name: test-volume
    # This AWS EBS volume must already exist.
    awsElasticBlockStore:
      volumeID: <volume-id>
      fsType: ext4

configMap
该configMap资源提供了一种将配置数据注入Pod的方法。存储在ConfigMap对象中的数据可以在类型的卷中引用 configMap,然后由在Pod中运行的容器化应用程序使用。

引用configMap对象时,只需在卷中提供其名称即可引用它。您还可以自定义ConfigMap中特定条目的路径。例如,要将log-configConfigMap 挂载到被调用的Pod上
事例:

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod
spec:
  containers:
    - name: test
      image: busybox
      volumeMounts:
        - name: config-vol
          mountPath: /etc/config
  volumes:
    - name: config-vol
      configMap:
        name: log-config
        items:
          - key: log_level
            path: log_level

emptyDir
将emptyDirPod分配给节点时首先创建卷,并且只要Pod在该节点上运行,就会存在卷。顾名思义,它最初是空的。Pod中的容器都可以读取和写入卷中的相同文件emptyDir,但该卷可以安装在每个Container中相同或不同的路径中。当出于任何原因从节点中删除Pod时,将emptyDir永久删除其中的数据。
事例:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

二、Persistent Volumes(PV)

PersistentVolume(PV)是群集中由管理员配置的一块存储。它是集群中的资源,就像节点是集群资源一样。PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个pod。此API对象捕获存储实现的详细信息,包括NFS,iSCSI或特定于云提供程序的存储系统。

PersistentVolumeClaim(PVC)是由用户进行存储的请求。它类似于一个吊舱。Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式
事例:

apiVersion: v1

kind: PersistentVolume
metadata:
name: pv0003
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: slow
mountOptions:
- hard
- nfsvers=4.1
nfs:
path: /tmp
server: 172.17.0.2在这里插入代码片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值