NFS PersistentVolume - 每天5分钟玩转 Docker 容器技术(151)
上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。
作为准备工作,我们已经在 k8s-master 节点上搭建了一个 NFS 服务器,目录为 /nfsdata
:
下面创建一个 PV mypv1
,配置文件 nfs-pv1.yml
如下:
① capacity
指定 PV 的容量为 1G。
② accessModes
指定访问模式为 ReadWriteOnce
,支持的访问模式有:
ReadWriteOnce – PV 能以 read-write 模式 mount 到单个节点。
ReadOnlyMany – PV 能以 read-only 模式 mount 到多个节点。
ReadWriteMany – PV 能以 read-write 模式 mount 到多个节点。
③ persistentVolumeReclaimPolicy
指定当 PV 的回收策略为 Recycle
,支持的策略有:
Retain – 需要管理员手工回收。
Recycle – 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/*
。
Delete – 删除 Storage Provider 上的对应存储资源,例如 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。
④ storageClassName
指定 PV 的 class 为 nfs
。相当于为 PV 设置了一个分类,PVC 可以指定 class 申请相应 class 的 PV。
⑤ 指定 PV 在 NFS 服务器上对应的目录。
创建 mypv1
:
STATUS
为 Available
,表示 mypv1
就绪,可以被 PVC 申请。
接下来创建 PVC mypvc1
,配置文件 nfs-pvc1.yml
如下:
PVC 就很简单了,只需要指定 PV 的容量,访问模式和 class。
创建 mypvc1
:
从 kubectl get pvc
和 kubectl get pv
的输出可以看到 mypvc1
已经 Bound 到 mypv1
,申请成功。
接下来就可以在 Pod 中使用存储了,Pod 配置文件 pod1.yml
如下:
与使用普通 Volume 的格式类似,在 volumes
中通过 persistentVolumeClaim
指定使用 mypvc1
申请的 Volume。
创建 mypod1
:
验证 PV 是否可用:
可见,在 Pod 中创建的文件 /mydata/hello
确实已经保存到了 NFS 服务器目录 /nfsdata/pv1
中。
如果不再需要使用 PV,可用删除 PVC 回收 PV,下节我们详细讨论。
书籍:
1.《每天5分钟玩转Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
3.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker深入浅出系列——容器管理【附加视频】
我是张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,欢迎您留言交流。 接下来来讲解Docker三大组件之一的容器,如果说镜像是静态的只读文件,那么容器就是带有运行时需要的可写文件层。也可以这样理解,镜像是对象的模板——类,容器是类生成的对象,镜像只有一个,对象可以有很多个。如果大家觉得看文字不过瘾,可以收看我的视频 1.新建容器 该命令创建的容器处于停止状态,可以使用docker start启动。 2.启动容器 docker start 容器id 3.创建并启动容器 docker runubuntu /bin/echo 'hello' 等价于docker create,再执行docker run 该指令背后一系列别隐藏操作,包括: 检查本地是否存在指定的镜像,不存在就从公有仓库下载; 利用镜像创建一个容器,并启启动该容器; 分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层; 从宿主主机配置的的网桥接口中,桥接一个虚拟接口口到容器中; 从网桥的地址池配置一个IP地址给容器, 口执行用户指定的应用程序; 执行完后,容器被自动终止。 dock...
- 下一篇
Docker 中 MySQL 数据的导入导出
服务器在使用了 Docker 后,对于备份和恢复数据库的事情做下记录: 由于 docker 不是实体,所以要把mysql的数据库导出到物理机上,命令如下: 1:查看下 mysql 运行名称 #docker ps 结果:  2:备份docker数据库 由第一步的结果可知,我们的 mysql 运行在一个叫 mysql_server 的 docker 容器中。而我们要备份的数据库就在里面,叫做 test_db。mysql 的用户名密码均为root,我们将文件备份到/opt/sql_bak文件夹下。 docker exec -it mysql_server【docker容器名称/ID】 mysqldump -uroot -p123456【数据库密码】 test_db【数据库名称】 > /opt/sql_bak/test_db.sql【导出表格路径】 3:导入docker数据库 方法1: 先将文件导入到容器 #docker cp **.sql 【容器名】:/root/ 进入容器 #docker exec -ti 【容器名/ID】sh 将文件导入数据库 # mysql -uroot -...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装Nodejs环境