my一70s在PVCmyjuicer是哪里生产的中起什么作用

&本章将讨论 Kubernetes 如何管理存储资源。
首先我们会学习 Volume,以及 Kubernetes 如何通过 Volume 为集群中的容器提供存储;
然后我们会实践几种常用的 Volume 类型并理解它们各自的应用场景;
最后,我们会讨论 Kubernetes 如何通过 Persistent Volume 和 Persistent Volume Claim 分离集群管理员与集群用户的职责,并实践 Volume 的静态供给和动态供给。
本节我们讨论 Kubernetes 的存储模型 Volume,学习如何将各种持久化存储映射到容器。
我们经常会说:容器和 Pod 是短暂的。其含义是它们的生命周期可能很短,会被频繁地销毁和创建。容器销毁时,保存在容器内部文件系统中的数据都会被清除。
为了持久化保存容器的数据,可以使用 Kubernetes Volume。
Volume 的生命周期独立于容器,Pod 中的容器可能被销毁和重建,但 Volume 会被保留。
本质上,Kubernetes Volume 是一个目录,这一点与 Docker Volume 类似。当 Volume 被 mount 到 Pod,Pod 中的所有容器都可以访问这个 Volume。
Kubernetes Volume 也支持多种 backend 类型,包括 emptyDir、hostPath、GCE Persistent Disk、AWS Elastic Block Store、NFS、Ceph 等,完整列表可参考&
Volume 提供了对各种 backend 的抽象,容器在使用 Volume 读写数据的时候不需要关心数据到底是存放在本地节点的文件系统中呢还是云硬盘上。对它来说,所有类型的 Volume 都只是一个目录。
我们将从最简单的 emptyDir 开始学习 Kubernetes Volume。
emptyDir 是最基础的 Volume 类型。正如其名字所示,一个 emptyDir Volume 是 Host 上的一个空目录。
emptyDir Volume 对于容器来说是持久的,对于 Pod 则不是。当 Pod 从节点删除时,Volume 的内容也会被删除。但如果只是容器被销毁而 Pod 还在,则 Volume 不受影响。
也就是说:emptyDir Volume 的生命周期与 Pod 一致。
Pod 中的所有容器都可以共享 Volume,它们可以指定各自的 mount 路径。下面通过例子来实践 emptyDir,配置文件如下:
apiVersion: v1
name: producer-consumer
containers:
- name: producer
image: busybox
volumeMounts:
- mountPath: /producer_dir
name: shared-volume
- echo "hello world" & /producer_dir/ sleep <span style="color: #000
- name: consumer
image: busybox
volumeMounts:
- mountPath: /consumer_dir
name: shared-volume
- cat /consumer_dir/ sleep <span style="color: #000
- name: shared-volume
emptyDir: {}
这里我们模拟了一个 producer-consumer 场景。
Pod 有两个容器&producer&和&consumer,它们共享一个 Volume。
producer&负责往 Volume 中写数据,consumer则是从 Volume 读取数据。
① 文件最底部&volumes&定义了一个&emptyDir&类型的 Volume&shared-volume。
②&producer&容器将&shared-volume&mount 到&/producer_dir&目录。
③&producer&通过&echo&将数据写到文件&hello&里。
④&consumer&容器将&shared-volume&mount 到&/consumer_dir&目录。
⑤&consumer&通过&cat&从文件&hello&读数据。
执行如下命令创建 Pod:
daweij@master:~/stady01/healthcheck$ kubectl get pod | grep -E 'producer|NAME'
producer-consumer
<span style="color: #/<span style="color: #
<span style="color: #
daweij@master:~/stady01/healthcheck$ kubectl logs producer-consumer consumer
hello world
kubectl logs&显示容器&consumer&成功读到了&producer&写入的数据,验证了两个容器共享 emptyDir Volume。
因为 emptyDir 是 Docker Host 文件系统里的目录,其效果相当于执行了&docker run -v /producer_dir&和&docker run -v /consumer_dir。通过&docker inspect&查看容器的详细配置信息,我们发现两个容器都 mount 了同一个目录:
这里&/var/lib/kubelet/pods/3e6100eb-a97a-11e7-8f72-ad/volumes/kubernetes.io~empty-dir/shared-volume&就是 emptyDir 在 Host 上的真正路径。
emptyDir 是 Host 上创建的临时目录,其优点是能够方便地为 Pod 中的容器提供共享存储,不需要额外的配置。
但它不具备持久性,如果 Pod 不存在了,emptyDir 也就没有了。
根据这个特性,emptyDir 特别适合 Pod 中的容器需要临时共享存储空间的场景,比如前面的生产者消费者用例。
下一节我们学习 hostPath Volume。&
hostPath Volume&
hostPath Volume 的作用是将 Docker Host 文件系统中已经存在的目录 mount 给 Pod 的容器。
大部分应用都不会使用 hostPath Volume,因为这实际上增加了 Pod 与节点的耦合,限制了 Pod 的使用。
不过那些需要访问 Kubernetes 或 Docker 内部数据(配置文件和二进制库)的应用则需要使用 hostPath。
比如 kube-apiserver 和 kube-controller-manager 就是这样的应用,通过
kubectl edit --namespace=kube-system pod kube-apiserver-k8s-master
查看 kube-apiserver Pod 的配置,下面是 Volume 的相关部分:
这里定义了三个 hostPath volume&k8s、certs&和&pki,分别对应 Host 目录&/etc/kubernetes、/etc/ssl/certs&和&/etc/pki。
如果 Pod 被销毁了,hostPath 对应的目录也还会被保留,从这点看,hostPath 的持久性比 emptyDir 强。不过一旦 Host 崩溃,hostPath 也就没法访问了。
下一节我们将学习具备真正持久性的 Volume。
外部 Storage Provider
如果 Kubernetes 部署在诸如 AWS、GCE、Azure 等公有云上,可以直接使用云硬盘作为 Volume,下面是 AWS Elastic Block Store 的例子:
apiVersion: v1
name: using_ebs
containers:
- name: using-ebs
image: busybox
volumeMounts:
- mountPath: /test-ebs
name: ebs-volume
- name: ebs-volume
# This AWS EBS volume must already exist.
awsElasticBlockStore:
volumeID: &volume-id&
fsType: ext4
要在 Pod 中使用 ESB volume,必须先在 AWS 中创建,然后通过 volume-id 引用。其他云硬盘的使用方法可参考各公有云厂商的官方文档。
Kubernetes Volume 也可以使用主流的分布式存,比如 Ceph、GlusterFS 等,下面是 Ceph 的例子:
apiVersion: v1
name: using_ceph
containers:
- name: using-ceph
image: busybox
volumeMounts:
- mountPath: /test-ceph
name: ceph-volume
- name: ceph-volume
path: /some/path/in/side/cephfs
monitors: "<span style="color: #.16.154.78:6789"
secretFile: "/etc/ceph/admin/secret"
Ceph 文件系统的&/some/path/in/side/cephfs&目录被 mount 到容器路径 /test-ceph。
相对于 emptyDir 和 hostPath,这些 Volume 类型的最大特点就是不依赖 Kubernetes。Volume 的底层基础设施由独立的存储系统管理,与 Kubernetes 集群是分离的。数据被持久化后,即使整个 Kubernetes 崩溃也不会受损。
当然,运维这样的存储系统通常不是项简单的工作,特别是对可靠性、高可用和扩展性有较高要求时。
Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。
下一节我们将学习具有更高管理性的存储方案:PersistentVolume & PersistentVolumeClaim。
PersistentVolume & PersistentVolumeClaim
Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。
拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息:
当前 Volume 来自 AWS EBS。
EBS Volume 已经提前创建,并且知道确切的 volume-id。
Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护。开发人员要获得上面的信息:
要么询问管理员。
要么自己就是管理员。
这样就带来一个管理上的问题:应用开发人员和系统管理员的职责耦合在一起了。如果系统规模较小或者对于开发环境这样的情况还可以接受。但当集群规模变大,特别是对于生成环境,考虑到效率和安全性,这就成了必须要解决的问题。
Kubernetes 给出的解决方案是 PersistentVolume 和 PersistentVolumeClaim。
PersistentVolume (PV) 是外部存储系统中的一块存储空间,由管理员创建和维护。与 Volume 一样,PV 具有持久性,生命周期独立于 Pod。
PersistentVolumeClaim (PVC) 是对 PV 的申请 (Claim)。PVC 通常由普通用户创建和维护。需要为 Pod 分配存储资源时,用户可以创建一个 PVC,指明存储资源的容量大小和访问模式(比如只读)等信息,Kubernetes 会查找并提供满足条件的 PV。
有了 PersistentVolumeClaim,用户只需要告诉 Kubernetes 需要什么样的存储资源,而不必关心真正的空间从哪里分配,如何访问等底层细节信息。这些 Storage Provider 的底层信息交给管理员来处理,只有管理员才应该关心创建 PersistentVolume 的细节信息。
Kubernetes 支持多种类型的 PersistentVolume,比如 AWS EBS、Ceph、NFS 等,完整列表请参考&
下节我们用 NFS 来体会 PersistentVolume 的使用方法。
NFS PersistentVolume
作为准备工作,我们已经在 k8s-master 节点上搭建了一个 NFS 服务器,目录为&/nfsdata:
创建方法,参考页面:
下面创建一个 PV&mypv1,配置文件&nfs-pv1.yml&如下:
apiVersion: v1
kind: PersistentVolume
name: mypv1
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: nfs
path: /nfsdata/pv1
server: <span style="color: #2.28.<span style="color: #.210
①&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&如下:
apiVersion: v1
kind: PersistentVolumeClaim
name: mypvc1
accessModes:
- ReadWriteOnce
resources:
storage: 1Gi
storageClassName: nfs
PVC 就很简单了,只需要指定 PV 的容量,访问模式和 class。
创建&mypvc1:
从&kubectl get pvc&和&kubectl get pv&的输出可以看到&mypvc1&已经 Bound 到&mypv1,申请成功。
接下来就可以在 Pod 中使用存储了,Pod 配置文件&pod1.yml&如下:
apiVersion: v1
name: mypod1
containers:
- name: mypod1
image: busybox
- sleep <span style="color: #000
volumeMounts:
- mountPath: "/mydata"
name: mydata
- name: mydata
persistentVolumeClaim:
claimName: mypvc1
pod-pvc.yml
与使用普通 Volume 的格式类似,在&volumes&中通过&persistentVolumeClaim&指定使用&mypvc1&申请的 Volume。
创建&mypod1:
验证 PV 是否可用:
可见,在 Pod 中创建的文件&/mydata/hello&确实已经保存到了 NFS 服务器目录&/nfsdata/pv1&中。
如果不再需要使用 PV,可用删除 PVC 回收 PV,下节我们详细讨论。
当不再需要使用 PV,可以删除 PVC 回收 PV。
kubectl delete pvc mypvc1
当 PVC&mypvc1&被删除后,我们发现 Kubernetes 启动了一个新 Pod&recycler-for-mypv1,这个 Pod 的作用就是清除 PV&mypv1&的数据。此时&mypv1&的状态为&Released,表示已经解除了与&mypvc1&的 Bound,正在清除数据,不过此时还不可用。
当数据清除完毕,mypv1&的状态重新变为&Available,此时则可以被新的 PVC 申请。
/nfsdata/pv1&中的&hello&文件已经被删除了。
因为 PV 的回收策略设置为&Recycle,所以数据会被清除,但这可能不是我们想要的结果。
如果我们希望保留数据,可以将策略设置为&Retain。
apiVersion: v1
kind: PersistentVolume
name: mypv1
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs
path: /nfsdata/pv1
server: <span style="color: #2.28.<span style="color: #.210
通过&kubectl apply&更新 PV:
回收策略已经变为&Retain,通过下面步骤验证其效果:
① 重新创建&mypvc1。
② 在&mypv1&中创建文件&hello。
③&mypv1&状态变为&Released。
④ Kubernetes 并没有启动 Pod&recycler-for-mypv1。
⑤ PV 中的数据被完整保留。
虽然&mypv1&中的数据得到了保留,但其 PV 状态会一直处于&Released,不能被其他 PVC 申请。为了重新使用存储资源,可以删除并重新创建&mypv1。删除操作只是删除了 PV 对象,存储空间中的数据并不会被删除。
新建的&mypv1&状态为&Available,已经可以被 PVC 申请。
PV 还支持&Delete&的回收策略,会删除 PV 在 Storage Provider 上对应存储空间。
NFS 的 PV 不支持&Delete,支持&Delete&的 Provider 有 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。
下一节我们学习 PV 的动态供给功能。
PV 动态供给
前面的例子中,我们提前创建了 PV,然后通过 PVC 申请 PV 并在 Pod 中使用,这种方式叫做静态供给(Static Provision)。
与之对应的是动态供给(Dynamical Provision),即如果没有满足 PVC 条件的 PV,会动态创建 PV。相比静态供给,动态供给有明显的优势:不需要提前创建 PV,减少了管理员的工作量,效率高。
动态供给是通过 StorageClass 实现的,StorageClass 定义了如何创建 PV,下面是两个例子。
StorageClass&standard:
StorageClass&slow:
这两个 StorageClass 都会动态创建 AWS EBS,不同在于&standard&创建的是&gp2类型的 EBS,而&slow&创建的是&io1&类型的 EBS。不同类型的 EBS 支持的参数可参考 AWS 官方文档。
StorageClass 支持&Delete&和&Retain&两种&reclaimPolicy,默认是&Delete。
与之前一样,PVC 在申请 PV 时,只需要指定 StorageClass 和容量以及访问模式,比如:
apiVersion: v1
kind: PersistentVolumeClaim
name: mypvc1
accessModes:
- ReadWriteOnce
resources:
storage: 1Gi
storageClassName: standard
除了 AWS EBS,Kubernetes 支持其他多种动态供给 PV 的 Provisioner,完整列表请参考&
下一节以 MySQL 为例演示如何在项目中使用 PV 和 PVC。
阅读(...) 评论() &热门标签:
咨询热线:9
品牌直通车&&&当前位置: ->
-> 宁波台塑
PVC宁波台塑牌号
PVC相关制造商:
PVC相关品名:
[LLDPE][LLDPE][LLDPE][LLDPE][LLDPE][LLDPE][LLDPE][PC][LLDPE][塑胶原料][LLDPE][塑胶原料][塑胶原料][塑胶原料][LLDPE][LLDPE][LLDPE][塑胶原料][LLDPE][LLDPE][PC][塑胶原料][LLDPE][工程塑料][LLDPE][工程塑料][LLDPE][工程塑料][工程塑料][LLDPE][工程塑料][LLDPE][工程塑料][PC][工程塑料][LLDPE][LLDPE][工程塑料][LLDPE][工程塑料][工程塑料][工程塑料][LLDPE][LLDPE][工程塑料][LLDPE][LLDPE][LLDPE][工程塑料][LLDPE][PC][LLDPE][工程塑料][工程塑料][LLDPE][LLDPE][工程塑料][工程塑料][LLDPE][LLDPE][工程塑料][工程塑料][工程塑料][LLDPE][工程塑料][PC][工程塑料][工程塑料][工程塑料][工程塑料][工程塑料][LLDPE][工程塑料][LLDPE][工程塑料][工程塑料][PC][LLDPE][工程塑料][LLDPE][工程塑料][分散剂][LLDPE][LLDPE][工程塑料][LLDPE][工程塑料][LLDPE][工程塑料][LLDPE][工程塑料][LLDPE][LLDPE][工程塑料][LLDPE][工程塑料][LLDPE][LLDPE][工程塑料][PC]
[市辖区][东莞市][郑州市][苏州市][济宁市][市辖区][厦门市][厦门市][深圳市][沧州市][佛山市][苏州市][沧州市][深圳市][珠海市][东莞市][南宁市][衡水市][太原市][南宁市][苏州市][石家庄市][深圳市][深圳市][太原市][市辖区][深圳市][苏州市][沧州市][廊坊市][开封市][石家庄市][宁波市][佛山市][镇江市][廊坊市][杭州市][长治市][宁波市][深圳市][无锡市][石嘴山市][保定市][临沂市][西安市][广州市][商丘市][青岛市][深圳市][郑州市][苏州市][衡水市][惠州市][深圳市][东莞市][市辖区][淄博市][泰州市][荆州市][沧州市][无锡市][深圳市][廊坊市][无锡市][济宁市][泉州市][金华市][广州市][东莞市][泉州市][长沙市][苏州市][市辖区][邢台市][市辖区][滨州市][扬州市][东莞市][苏州市][厦门市][沧州市][无锡市][淄博市][衡水市][新乡市][市辖区][洛阳市][南宁市][阜阳市][南宁市][南宁市][阜阳市][市辖区][聊城市][武汉市][新乡市][东莞市][济宁市][温州市]
[ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评][ABS日评][PS日评][PVC日评][pp日评][PE日评]
[进口出口][网络营销][专家评点][专家评点][专家评点][政策法规][政策法规][政策法规][进口出口][专家评点][政策法规][专家评点][专家评点][进口出口][进口出口][政策法规][专家评点][专家评点][专家评点][政策法规][专家评点][专家评点][专家评点][政策法规][进口出口][专家评点][专家评点][政策法规][政策法规][政策法规][进口出口][专家评点][专家评点][专家评点][专家评点][专家评点][专家评点][专家评点][专家评点][政策法规][政策法规][专家评点][专家评点][专家评点][政策法规][专家评点][进口出口][政策法规][专家评点][专家评点][政策法规][政策法规][政策法规][专家评点][网络营销][专家评点][专家评点][专家评点][专家评点][专家评点][政策法规][政策法规][专家评点][专家评点][专家评点][政策法规][政策法规][政策法规][政策法规][政策法规][政策法规][进口出口][政策法规][政策法规][政策法规][网络营销][专家评点][专家评点][专家评点][专家评点][政策法规][政策法规][政策法规][专家评点][专家评点][专家评点][政策法规][专家评点][政策法规][专家评点][政策法规][政策法规][政策法规][政策法规][政策法规][专家评点][政策法规][专家评点][专家评点][专家评点]
版权所有 &
网络实名:全球塑胶网
客服热线:9 传真:0
本网客服QQ: 展会合作QQ: 全球塑胶网业务QQ: Copyright & pla.com. All Rights Reserved常年法律顾问:KG-70S PVC外润滑剂
商品名称:KG-70S
化学名称:硬脂酸,已二酸季戊四醇酯
产品标准:
轻微浅黄色粉状(或片状)固体
熔 点(℃,&)
闪 点( ℃,> )
比 重( 80℃ )
0.910~0.925
粘 度( 75℃,mPa&S,> )
折光率( 70℃ )
1.445~1.455
挥发性( 160℃,4hr,% < )
酸 值( mg KOH/g,&)
碘 值(gI2/100g,<)
性质:本产品为白色至浅黄色蜡状固体,属非离子表面活性剂,与 PVC混合可提高不粘性及自由流动性。
用途:用于 PVC加工作外部润滑剂,也可作脱模剂使用。
包装:20Kg 塑袋外加纸箱包装。
用法:直接与树脂混配,用量范围在0.4-0.8份每100份。
上一个产品: 】
下一个产品:【】

我要回帖

更多关于 oh my zsh 不起作用 的文章

 

随机推荐