emptyDIR 临时目录

hostPath :使用主机的路径

网络存储:

  传统的设备存储:NAS,SAN

  分布式存储:glusterfs,rbd,cephfs

 云存储:EBS,Azure,阿里云的

一、emptyDir 的类型:一个pod里面2个容易,挂载同一个目录,

注意:emptyDir的生命周期同pod周期,简单来说,pod删除了,emptyDir也随之删除

apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort:
volumeMounts: #容器挂载
- name: html
mountPath: /data/web/html/
- name: busybox
image: busybox:latest
command: ["/bin/sh" ,"-c","sleep 3600"]
volumeMounts: #容器挂载
- name: html
mountPath: /data/
volumes: #定义存储
- name: html
emptyDir: {}

二、hostPath 类型存储

apiVersion: v1
kind: Pod
metadata:
name: nginx-volume
namespace: default
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort:
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html/
volumes:
- name: html
hostPath:
path: /data/nginx/v1/
type: DirectoryOrCreate

三、nfs 类型存储

首先要准备好nfs,我在172.17.1.36的机器上安装nfs,到处的目录为/nfs/data

yum install nfs-utils

vim vim /etc/exports

/nfs/data/    172.17.0.0/16(rw,no_root_squash)

systemctl start nfs

nfs准备好了,注意,在pod的节点机器要一定确定可以挂载nfs类型的,否则创建pod会出错。执行yum install nfs-utils  就可以挂载了

nfs pod 的yaml文件:

apiVersion: v1
kind: Pod
metadata:
name: nginx-volume-nfs
namespace: default
spec:
containers:
- name: nginx-nfs
image: nginx
ports:
- containerPort:
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html/
volumes:
- name: html
nfs:
path: /nfs/data/
server: 172.17.1.36

四、pv,pvc的使用

对于pv和pvc,首先要准备存储的,我用的是nfs,在172.17.1.36的节点上划分了5个路径作为存储的设备。

mkdir /data/{v1,v2,v3,v4,v5} -pv

vim /etc/exports

添加如下的内容:

/data/v1 172.17.0.0/16(rw,no_root_squash)
/data/v2 172.17.0.0/16(rw,no_root_squash)
/data/v3 172.17.0.0/16(rw,no_root_squash)
/data/v4 172.17.0.0/16(rw,no_root_squash)
/data/v5 172.17.0.0/16(rw,no_root_squash)

保存,导出下。

exportfs -avr

查看下是否正常。

nfs的存储的好了。下一步要先创建pv,yaml文件如下

apiVersion: v1
kind: PersistentVolume
metadata:
name: pv01
labels:
name: pv01
spec:
nfs:
path: /data/v1/
server: 172.17.1.36
accessModes: ["ReadWriteOnce","ReadWriteMany"]
capacity:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv02
labels:
name: pv02
spec:
nfs:
path: /data/v2/
server: 172.17.1.36
accessModes: ["ReadWriteOnce","ReadWriteMany"]
capacity:
storage: 3Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv03
labels:
name: pv03
spec:
nfs:
path: /data/v3/
server: 172.17.1.36
accessModes: ["ReadWriteOnce","ReadWriteMany"]
capacity:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv04
labels:
name: pv04
spec:
nfs:
path: /data/v4/
server: 172.17.1.36
accessModes: ["ReadWriteOnce","ReadWriteMany"]
capacity:
storage: 10Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv05
labels:
name: pv05
spec:
nfs:
path: /data/v5/
server: 172.17.1.36
accessModes: ["ReadWriteOnce","ReadWriteMany"]
capacity:
storage: 10Gi

kubectl apply -f pv-nfs.yaml

显示,pv创建完成

接下来创建pvc 和pod,yaml文件如下

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
namespace: default
spec:
accessModes: ["ReadWriteMany"]
resources:
requests:
storage: 5Gi #到这里是创建pvc的
---
apiVersion: v1
kind: Pod
metadata:
name: nginx-volume-pvc
namespace: default
spec:
containers:
- name: nginx-pvc
image: nginx
ports:
- containerPort:
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html/
volumes: #这里是选择volume的类型
- name: html
persistentVolumeClaim:
claimName: mypvc

显示pvc创建好了,同时pvc绑定了一个pv,到此pv和pvc的安装部署完成。

ps:pv和pvc是一对一绑定的。但是多个pod可以挂载同一个pvc

通常使用的流程是,首先创建存储,在创建pv,接着创建pvc,pod挂载到相应的pvc。

kubernetes 存储volume,pv和pvc的使用的更多相关文章

  1. Kubernetes集群PV和PVC详解

    Kubernetes集群高级存储资源PV及PVC 文章目录 Kubernetes集群高级存储资源PV及PVC 1.高级存储PV和PVC概念部分 2.PV和PVC资源的生命周期 3.PV资源介绍与案例配 ...

  2. 6.k8s.存储Volume.PV.PVC

    #Volume Volume 解决数据持久化和容器间共享数据 Kubernetes支持几十种类型的后端存储卷 #hostPath挂载实例,挂载Node节点/tmp/test-volume目录到容器/t ...

  3. kubernetes系列11—PV和PVC详解

    本文收录在容器技术学习系列文章总目录 1.认识PV/PVC/StorageClass 1.1 介绍 管理存储是管理计算的一个明显问题.该PersistentVolume子系统为用户和管理员提供了一个A ...

  4. Kubernetes 中的pv和pvc

    原文地址:http://www.cnblogs.com/leidaxia/p/6485646.html 持久卷 PersistentVolumes 本文描述了 Kubernetes 中的 Persis ...

  5. Kubernetes中的PV和PVC是啥

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛. 在Pod的Vo ...

  6. Kubernetes中的PV和PVC

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛.在Pod的Vol ...

  7. 持久化存储之 PV、PVC、StorageClass

    PV介绍: PersistentVolume(PV)是群集中由管理员配置的一块存储. 它是集群中的资源,就像节点是集群资源一样. PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个 ...

  8. (九)Kubernetes 存储卷

    Kubernetes存储卷概述 Pod本身具有生命周期,这就带了一系列的问题,第一,当一个容器损坏之后,kubelet会重启这个容器,但是文件会丢失-这个容器会是一个全新的状态:第二,当很多容器在同一 ...

  9. Kubernetes 系列(六):持久化存储 PV与PVC

    在使用容器之后,我们需要考虑的另外一个问题就是持久化存储,怎么保证容器内的数据存储到我们的服务器硬盘上.这样容器在重建后,依然可以使用之前的数据.但是显然存储资源和 CPU 资源以及内存资源有很大不同 ...

随机推荐

  1. Kubernetes---启动及退出动作

    apiVersion: v1 kind: Pod metadata: name: lifecycle-demo spec: containers: - name:lifecycle-demo-cont ...

  2. ros msg和srv使用

    在包文件中新建文件夹srv和msg,在这两个文件夹中新建test.msg,test.srv 修改apckage.xml 添加以下内容 <build_depend>:message_gene ...

  3. thinkphp5日志文件权限的问题

    由于www用户和root用户(比如command的cli进程日志)都有可能对log文件进行读写. 如果是由www用户创建的log文件,不会出任何问题. 但是如果是先由root用户创建的log文件,然后 ...

  4. [python]近日 用3种库 实现简单的窗口 的回顾~

    最近任务:利用python 实现以下4个窗口弹窗. 信息提示框 文本输入框(需在窗口消失后,返回 用户输入的值) 文件选择(需在窗口消失后, 返回 用户选择的文件名的全路径) 文件夹选择(需在窗口消失 ...

  5. python 修改文件的创建时间、修改时间、访问时间

    目录 python 修改文件创建.修改.访问时间 方案一 方案二(无法修改文件创建时间) python 修改文件创建.修改.访问时间 突如其来想知道一下 python 如何修改文件的属性(创建.修改. ...

  6. 用bisect来管理已排序的序列

    bisect 模块包含两个主要函数,bisect 和 insort,两个函数都利用二分查找算法来在有序序列中查找或插入元素. 2.8.1 用bisect来搜索 bisect(haystack, nee ...

  7. Java多线程(十一):线程组

    线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...

  8. Scala学习十六——XML处理

    一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的at ...

  9. 5. Java的注释,标识符、标识符的命名规范

      什么是标识符符? 凡是可以由自己命名的地方都称为修饰符. 例: 项目名 ,包名 ,类名 .方法名 2.   命名规范. ①    不可使用java关键字和保留字,但是可以包含关键字和保留字. ②  ...

  10. 查找最大和次大元素(JAVA版)(分治法)

    问题描述:对于给定的含有n个元素的无序序列,求这个序列中最大和次大的两个不同元素. 问题求解分析(分治法):先给出无序序列数组a[low...high].第一种情况为当数组中只有一个元素时,此时只存在 ...