工作日志——k8s pvpvc
2019独角兽企业重金招聘Python工程师标准>>>
近期调研了k8s pv和pvc相关知识,特与大家分享
简介
PersistentVolume(pv)和PersistentVolumeClaim(pvc)是k8s提供的两种API资源,用于抽象存储细节。管理员关注于如何通过pv提供存储功能而无需关注用户如何使用,同样的用户只需要挂载pvc到容器中而不需要关注存储卷采用何种技术实现。
pvc和pv的关系与pod和node关系类似,前者消耗后者的资源。pvc可以向pv申请指定大小的存储资源并设置访问模式。
生命周期
pv和pvc遵循以下生命周期:
- 供应准备。管理员在集群中创建多个pv供用户使用。
- 绑定。用户创建pvc并指定需要的资源和访问模式。在找到可用pv之前,pvc会保持未绑定状态。
- 使用。用户可在pod中像volume一样使用pvc。
- 释放。用户删除pvc来回收存储资源,pv将变成“released”状态。由于还保留着之前的数据,这些数据需要根据不同的策略来处理,否则这些存储资源无法被其他pvc使用。
- 回收。pv可以设置三种回收策略:保留(Retain),回收(Recycle)和删除(Delete)。
- 保留策略允许人工处理保留的数据。
- 删除策略将删除pv和外部关联的存储资源,需要插件支持。
- 回收策略将执行清除操作,之后可以被新的pvc使用,需要插件支持。
pv类型
pv支持以下类型:
- GCEPersistentDisk
- AWSElasticBlockStore
- NFS
- iSCSI
- RBD (Ceph Block Device)
- Glusterfs
- HostPath (single node testing only – local storage is not supported in any way and WILL NOT WORK in a multi-node cluster)
pv属性
pv拥有以下属性:
- 容量。目前仅支持存储大小,未来可能支持IOPS和吞吐量等。
- 访问模式。ReadWriteOnce:单个节点读写。ReadOnlyMany:多节点只读。ReadWriteMany:多节点读写。挂载时只能使用一种模式。
- 回收策略。目前NFS和HostPath支持回收。 AWS、EBS、GCE、PD和Cinder支持删除。
- 阶段。分为Available(未绑定pvc)、Bound(已绑定)、Released(pvc已删除但资源未回收)、Failed(自动回收失败)
pvc属性
- 访问模式。与pv的语义相同。在请求资源时使用特定模式。
- 资源。申请的存储资源数量
nfs示例
安装nfs服务
以ubuntu为例,执行以下指令安装nfs server;
sudo apt-get install nfs-kernel-server
- 1
安装后修改/etc/exports,在文件末尾添加以下内容:
/ *(rw,insecure,no_root_squash)
- 1
重启nfs server:
$ sudo service rpcbind restart
rpcbind stop/waiting
rpcbind start/running, process 10558$ sudo service nfs-kernel-server restart* Stopping NFS kernel daemon [ OK ] * Unexporting directories for NFS kernel daemon... [ OK ] * Exporting directories for NFS kernel daemon... exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/".Assuming default behaviour ('no_subtree_check').NOTE: this default has changed since nfs-utils version 1.0.x[ OK ]* Starting NFS kernel daemon [ OK ]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
pv和pvc创建与使用
本例中使用的yaml可参考这里
- 首先创建pv和pvc
- 2.
$ kubectl create -f nfs-pv.yaml
persistentvolume "nfs" created$ kubectl create -f nfs-pvc.yaml
persistentvolumeclaim "nfs" created
- 1
- 2
- 3
- 4
- 5
- 接下来创建nfs-busybox rc。对应的pod会向存储卷中不定期的更新index.html
$ kubectl create -f nfs-busybox-rc.yaml
replicationcontroller "nfs-busybox" created
- 1
- 2
- 再创建nfs-web rc和service。对应的pod会将存储卷挂载到nginx的静态目录中,这样我们可以通过service来访问index.html。
$ kubectl create -f nfs-web-rc.yaml
replicationcontroller "nfs-web" created$ kubectl create -f nfs-web-service.yaml
service "nfs-web" created
- 1
- 2
- 3
- 4
- 5
- 查看结果。可以看到index.html会不定期的更新显示时间。
# 查看nfs-web的ip
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.0.0.1 <none> 443/TCP 9h
nfs-web 10.0.0.18 <none> 80/TCP 2m# 访问nfs-web
$ curl 10.0.0.18
Tue May 24 11:40:53 UTC 2016
nfs-busybox-c2vf2$ curl 10.0.0.18
Tue May 24 11:40:59 UTC 2016
nfs-busybox-c2vf2
转载于:https://my.oschina.net/xiaominmin/blog/1631454
工作日志——k8s pvpvc相关推荐
- 每天写的叫工作日志,每周写的总结叫周报,每月写的叫月报
有些时候,老板会突发让您求每天都要写工作周报,什么项目什么任务,完成情况,完成花费的时间等,然后汇总部门周报:也不是写不出,只是不知道有时候重复做一个项目,到底每天有什么好写?不知道大家公司是否写周报 ...
- Leangoo敏捷开发项目管理软件-工作日志
Leangoo敏捷开发项目管理软件为了计算研发成本,每天开发人员可以填报他在每个需求上实际花费了多少时间,管理员可以按月进行统计. 工作日志的统计:
- 【连载】高效人士的116个IT秘诀(第2版)——秘诀25快速记录你的工作日志
上一篇:[连载]高效人士的116个IT秘诀(第2版)--秘诀24为你的时间建一个构造图 等级--初级 平台--全部 成本--免费 一直记录自己所做的事情实际花费了多少时间并不是一件容易的事,但工作日志 ...
- 【机器学习】人工智能典型应用:班组工作日志转绩效类型
应用背景: 通信运检一班绩效的机制是利用每天的工作日志,将工作内容按照<一线班组工作积分制考核实施方案(20190108修订)>中的工作基本额定标准库进行对应,就可以知道每天的工分,每月工 ...
- 工作日志之个人统计篇
前面的工作日志分享篇中我们详细介绍了如何将开发人员的工作信息分享给自己的主管和团队中的其他人.一般来说,研发工作者了解他们的工作状况时,通常并不会过多的去关注每一个研发工作的细节,而往往更加需要关注的 ...
- TeamCola - 最好用的团队工作日志软件
TeamCola - 最好用的团队工作日志软件 "真的必须说赞,每天晚饭之后看看团队的记录,然后给每个人一句鼓励或建议的话,真是让人精神振奋. - NeoZhang,果合移动 "他 ...
- office工作日志文件_风暴事件处理器–每个工作者的GC日志文件
office工作日志文件 在过去的三个月中,我正在与一个新团队合作,为电信领域的大数据分析构建产品. Storm事件处理器是我们使用的主要框架之一,它确实很棒. 您可以阅读其官方文档中的更多详细信息( ...
- 自己闲来无事做的工作日志WEB程序(VB.NET)
代码下载在 :http://cnnet.europe.webmatrixhosting.net/example/worklog.rar 以下的服务器取消了===取消====服务器关了 [2003.09 ...
- 计算机专业毕业设计工作日志,计算机科学技术系毕业设计工作日志
计算机科学技术系毕业设计工作日志 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 .计算机科学技术系2012届毕业生毕业设计(论文)工 ...
最新文章
- set.difference() 的用法(python3)_Python 集合 difference_update() 使用方法及示例
- 【Linux】延时函数sleep、usleep、nanosleep、select、pselect的比较
- sqoop操作之HIVE导出到ORACLE
- java string 常用方法_String类的12个常用方法
- woocommerce 分类到菜单_Woocommerce商店显示分类
- android学习——popupWindow 在指定位置上的显示
- shell编程之【告警系统】
- 数据集Pascal VOC2012
- 用万用表测量NPN、PNP、NMOS、PMOS的好坏或分极
- UE4 Text Render 中文字体制作
- Navicat15导入DMP数据文件
- 【读书笔记 | 自动驾驶中的雷达信号处理(第4章 雷达波形及其数学模型)】
- linux日志切割命令,linux日志分割、去重、统计
- Lora无线模块在畜牧业中的应用
- 什么是面向过程与面向对象
- CSDN写博客如何自动插入目录
- 团队负责人(team leader)职责
- 电子科大自考c语言试题,220名北京考生赶考国科大 面试题目无刚性答案
- html 滚动条设置背景图片,CSS能不能改变滚动条的背景图
- 初识MIMO-OFDM(三):完整的MIMO-OFDM仿真
热门文章
- matlab无限长序列卷积,怎样求未知长度序列的卷积
- 用python重复下载文件_python 爬虫 重复下载 二次请求
- python把桢写入txt_Java 字节码与字节码分析
- axios拦截器_浅谈vue-resource和vue-axios的区别
- ajax返回的是流如何转换为pdf,如何在AJAX请求成功响应中返回PDF文件
- 上海计算机协会竞赛平台——整除
- 2020 5月 每日花语
- 笔记-计算机网络基础-TCP/IP vs OSI
- Python 程序开发90个注意事项
- gRPC的通信方式-客户端流式、服务端流式、双向流式在Java的调用示例