• k8s已nfs作为基础构建pvc


    1、先配置nfs

    [root@k8s-master1 mesh]# yum -y install nfs-utils

    2、在nfs节点创建对应共享目录:

    [root@k8s-node2 ~]# mkdir /pvshare/mypv01

    3、配置之nfs共享

    [root@k8s-node2 mypv01]# cat /etc/exports
    /pvshare *(rw,sync,no_root_squash)
    /pvshare/mypv01 *(rw,sync,no_root_squash)

    4、创建pv(master)

    [root@k8s-master1 pvc]# cat mypv.yaml
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv001       #pv的名称,可以根据项目来定,最好项目要多少给多少。
      labels:                  #pv的标签,这个何有必要,用于绑定pvc的
        pv: nfs-pv
    spec:
      capacity:
        storage: 2Gi       #pv申请的空间大小
      accessModes:
        - ReadWriteMany    #PV 的访问模式(accessModes)有三种:1、 ReadWriteOnce(RWO):是最基本的方式,可读可写,但只支持被单个 Pod 挂载。 ·2、ReadOnlyMany(ROX):可以以只读的方式被多个 Pod 挂载。 ·3、ReadWriteMany(RWX):这种存储可以以读写的方式被多个 Pod 共享。
      storageClassName: nfs    #storageClassName: nfs(如果不配置的话,可以自动的去匹配)。此配置用于绑定PVC和PV。这表明这个PVC希望使用storageClassName=nfs的PV。
      nfs:
        path: /pvshare/mypv01      #nfs共享出来的路径
        server: 192.168.28.130      #nfs共享服务器的地址

    5、创建pvc

    [root@k8s-master1 pvc]# cat mypvc.yaml
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: myclaim
      labels:    #pvc的标签是app=wordpress
        app: wordpress
    spec:
      accessModes:
        - ReadWriteMany      #PV 的访问模式(accessModes)有三种:1、 ReadWriteOnce(RWO):是最基本的方式,可读可写,但只支持被单个 Pod 挂载。 ·2、ReadOnlyMany(ROX):可以以只读的方式被多个 Pod 挂载。 ·3、ReadWriteMany(RWX):这种存储可以以读写的方式被多个 Pod 共享。
      resources:
        requests:
          storage: 1Gi
      storageClassName: nfs         #storageClassName: nfs(如果不配置的话,可以自动的去匹配)。此配置用于绑定PVC和PV。这表明这个PVC希望使用storageClassName=nfs的PV。
      selector:    #标签选择器:这里主要是和pv链接起来。
        matchLabels:
          pv: nfs-pv     

    6、建一个pod进行测试

    [root@k8s-master1 pvc]# cat pvnginx.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        run: pvnginx
      name: pvnginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          run: pvnginx
      template:
        metadata:
          creationTimestamp: null
          labels:
            run: pvnginx
        spec:
          containers:
          - image: nginx
            name: pvnginx
            resources:
              limits:
                cpu: "1"
                memory: 512Mi
           volumeMounts:
           - mountPath: /usr/share/nginx/html
             name: http-volume
         volumes:
           - name: http-volume
              persistentVolumeClaim:
                claimName: myclaim

    将index.html文件写道对应文件夹下面即可验证。

  • 相关阅读:
    class-决策树Decision Tree
    class-朴素贝叶斯NaiveBayes
    class-k近邻算法kNN
    [linux环境配置]个人用持续更新ing~
    [python基础] python生成wordcloud并保存
    [算法基础]快排、归并、堆排序比较
    [算法基础]斐波那契(recursion+loop)两种方式执行时间对比
    [python基础]xml_rpc远程调控supervisor节点进程
    [Supervisor]supervisor监管gunicorn启动DjangoWeb时异常退出
    [python基础] csv.wirterow()报错UnicodeEncodeError
  • 原文地址:https://www.cnblogs.com/xingyunfashi/p/15050317.html
Copyright © 2020-2023  润新知