当前位置: 首页 > news >正文

网站搭建周期资源搜索神器

网站搭建周期,资源搜索神器,注册深圳公司不在深圳经营,地方网站运营教程Kubernetes高级存储 PV PVC k8s支持的存储系统很多,全部掌握不现实。为了屏蔽底层存储实现的细节,方便用户使用,k8s引入PV和PVC两种资源对象。 PV(Persistent Volume)持久化卷,对底层共享存储的抽象,一般由k8s管理员进…

Kubernetes高级存储

PV PVC

k8s支持的存储系统很多,全部掌握不现实。为了屏蔽底层存储实现的细节,方便用户使用,k8s引入PV和PVC两种资源对象。

PV(Persistent Volume)持久化卷,对底层共享存储的抽象,一般由k8s管理员进行创建配置,通过插件完成共享存储的对接。

PVC(Persistent Volume Claim)持久化声明,是用户对于存储需求的一种声明。PVC就是用户向k8s系统发出的一种资源需求申请。
在这里插入图片描述

PV

官方文档:

Kubernetes 文档
概念
存储
持久卷

资源清单:

apiVersion: v1  
kind: PersistentVolume
metadata:name: pv2
spec:nfs: # 存储类型,与底层真正存储对应capacity:  # 存储能力,目前只支持存储空间的设置storage: 2GiaccessModes:  # 访问模式storageClassName: # 存储类别persistentVolumeReclaimPolicy: # 回收策略

参数说明:

  • 存储类型

    底层实际存储的类型,kubernetes支持多种存储类型,每种存储类型的配置都有所差异

  • 存储能力

    目前只支持存储空间的设置( storage=1Gi )

  • 访问模式

    ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载ReadOnlyMany(ROX): 只读权限,可以被多个节点挂载ReadWriteMany(RWX):读写权限,可以被多个节点挂载

  • 回收策略

    Retain (保留) 保留数据,需要管理员手工清理数据Recycle(回收) 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/* Delete (删除) 与 PV 相连的后端存储完成 volume 的删除操作

实验:

使用NFS作为存储,创建3个PV,对应三个暴露路径

  1. 准备环境

    #创建目录
    [root@master ~]# mkdir /root/data/{pv1,pv2,pv3} -pv
    mkdir: created directory ‘/root/data/pv1’
    mkdir: created directory ‘/root/data/pv2’
    mkdir: created directory ‘/root/data/pv3’
    # 暴露服务 IP网段是你集群节点所在的网段
    [root@master ~]# vim /etc/exports
    [root@master ~]# more /etc/exports
    /root/data/pv1     192.168.126.0/24(rw,no_root_squash)
    /root/data/pv2     192.168.126.0/24(rw,no_root_squash)
    /root/data/pv3     192.168.126.0/24(rw,no_root_squash)
    #重启服务
    [root@master ~]# systemctl restart nfs
  2. 创建pv.yaml

    apiVersion: v1
    kind: PersistentVolume
    metadata:name:  pv1
    spec:capacity: storage: 1GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Retainnfs:path: /root/data/pv1server: 192.168.126.132---apiVersion: v1
    kind: PersistentVolume
    metadata:name:  pv2
    spec:capacity: storage: 2GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Retainnfs:path: /root/data/pv2server: 192.168.126.132---apiVersion: v1
    kind: PersistentVolume
    metadata:name:  pv3
    spec:capacity: storage: 3GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Retainnfs:path: /root/data/pv3server: 192.168.126.132
    
  3. 操作

    [root@master ~]# vim pv.yaml
    #创建pv
    [root@master ~]# kubectl create -f pv.yaml
    persistentvolume/pv1 created
    persistentvolume/pv2 created
    persistentvolume/pv3 created
    #查看pv
    [root@master ~]# kubectl get pv -o wide
    NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE   VOLUMEMODE
    pv1    1Gi        RWX            Retain           Available                                   44s   Filesystem
    pv2    2Gi        RWX            Retain           Available                                   44s   Filesystem
    pv3    3Gi        RWX            Retain           Available                                   44s   Filesystem

PVC

PVC是资源申请,用来声明对存储空间,访问模式,存储类别需求信息

资源清单:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvcnamespace: dev
spec:accessModes: # 访问模式selector: # 采用标签对PV选择storageClassName: # 存储类别resources: # 请求空间requests:storage: 5Gi

参数说明:

  • 访问模式:描述用户应用对存储资源的访问权限
  • 选择条件:通过Label Selector使PVC对于系统中已存在的PV进行筛选
  • 存储类别:PVC定义时可设定需要的后端存储类别
  • 资源请求:描述对存储资源的请求

实验:

  1. 创建pvc.yaml,申请pv

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc1namespace: dev
    spec:accessModes: - ReadWriteManyresources:requests:storage: 1Gi---apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc2namespace: dev
    spec:accessModes: - ReadWriteManyresources:requests:storage: 1Gi---apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc3namespace: dev
    spec:accessModes: - ReadWriteManyresources:requests:storage: 1Gi
    
    #创建pvc
    [root@master ~]# kubectl create -f pvc.yaml
    persistentvolumeclaim/pvc1 created
    persistentvolumeclaim/pvc2 created
    persistentvolumeclaim/pvc3 created
    #查看pvc
    [root@master ~]# kubectl get pvc  -n dev -o wide
    NAME   STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE   VOLUMEMODE
    pvc1   Bound    pv1      1Gi        RWX                           14s   Filesystem
    pvc2   Bound    pv2      2Gi        RWX                           14s   Filesystem
    pvc3   Bound    pv3      3Gi        RWX                           14s   Filesystem
    #查看pv
    [root@master ~]# kubectl get pv -o wide
    NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM      STORAGECLASS   REASON   AGE   VOLUMEMODE
    pv1    1Gi        RWX            Retain           Bound    dev/pvc1                           22m   Filesystem
    pv2    2Gi        RWX            Retain           Bound    dev/pvc2                           22m   Filesystem
    pv3    3Gi        RWX            Retain           Bound    dev/pvc3                           22m   Filesystem
  2. 创建pods.yaml,实验pv

    apiVersion: v1
    kind: Pod
    metadata:name: pod1namespace: dev
    spec:containers:- name: busyboximage: busybox:1.30command: ["/bin/sh","-c","while true;do echo pod1 >> /root/out.txt; sleep 10; done;"]volumeMounts:- name: volumemountPath: /root/volumes:- name: volumepersistentVolumeClaim:claimName: pvc1readOnly: false
    ---
    apiVersion: v1
    kind: Pod
    metadata:name: pod2namespace: dev
    spec:containers:- name: busyboximage: busybox:1.30command: ["/bin/sh","-c","while true;do echo pod2 >> /root/out.txt; sleep 10; done;"]volumeMounts:- name: volumemountPath: /root/volumes:- name: volumepersistentVolumeClaim:claimName: pvc2readOnly: false        
    
    #创建Pod
    [root@master ~]# kubectl create -f pods.yaml
    pod/pod1 created
    pod/pod2 created
    #查看Pod
    [root@master ~]# kubectl get pods -n dev -o wide
    NAME   READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
    pod1   1/1     Running   0          103s   10.244.1.5    node1   <none>           <none>
    pod2   1/1     Running   0          103s   10.244.2.11   node2   <none>           <none>
    #查看PVC
    [root@master ~]#  kubectl get pvc -n dev -o wide
    NAME   STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE   VOLUMEMODE
    pvc1   Bound    pv1      1Gi        RWX                           10m   Filesystem
    pvc2   Bound    pv2      2Gi        RWX                           10m   Filesystem
    pvc3   Bound    pv3      3Gi        RWX                           10m   Filesystem
    #查看数据卷输出信息
    [root@master ~]#  more /root/data/pv1/out.txt
    pod1
    pod1
    pod1
    pod1
    pod1
    [root@master ~]#  more /root/data/pv2/out.txt
    pod2
    pod2
    pod2
    pod2
    pod2#数据已经同步
    

生命周期

PV和PVC一一对应,类似于键值对,遵循以下生命周期:

  • 资源供应:手动创建底层存储和PV
  • 资源绑定:PV创建后,k8s负责根据PVC声明去寻找PV,并绑定(如果找不到,PVC会一直处于Pending状态,直到管理员创建了符合要求的PV),PV一旦绑定PVC,就会被这个PVC独占,不能再与其他PVC进行绑定
  • 资源使用:可在Pod里像Volume使用数据卷
  • 资源释放:用户删除PVC来释放PV

在这里插入图片描述

http://www.yayakq.cn/news/186163/

相关文章:

  • 网页设计公司主要业务赣州seo顾问
  • 网站360做的标记如何取消如何选择番禺网站建设
  • 外贸网站有哪些中国排名前十的建筑公司
  • 建立自己的网站平台百度网站公司信息推广怎么做的
  • 雁塔区住房和城乡建设局网站品牌网站运营
  • pc网站建设怎么做网站模板 div
  • 微信生活门户网站源码flash as3 网站模板
  • 网站资质证书1668阿里巴巴官网
  • 房产网站定制房产中介
  • 佛山做网站的公司哪家好网易企业邮箱费用
  • 网站开发主要内容和要求网站开发是什么
  • 山东网站制作推荐2017 WordPress 主题
  • 青岛公司注册网站网站建设开发哪家好
  • 做网站招标公众号制作135
  • 工商网站如何提高网站关键词的排名
  • 网站优化是做什么的营销的本质
  • 网站开发及设计演讲海报台州品牌网站建设
  • 网页制作模板的网站element怎么建网站赚钱
  • 网站版式设计说明数商云价格
  • 伍佰亿网站建设查询学校信息的网站
  • 大学生网站开发总结报告建房的网站
  • 网站建设与用户需求分析银川网站建设多少钱
  • 做一家拍卖网站需要什么资质冬奥会网页设计素材
  • 网站建设倒计时单页源码南昌专业网站设计
  • 网站备案核验单2017网站建设方案
  • 网站开发网络结构图网站制作 flash 修改
  • 找人网站 优帮云做挂件像网站
  • 163建筑网站定制公交app下载
  • 网站轮播效果怎么做郑州网站制作郑州网站制作案例
  • 做知识产权相关的网站做营销型网站公司