zoukankan      html  css  js  c++  java
  • 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文件写道对应文件夹下面即可验证。

  • 相关阅读:
    容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?
    Spring Controller里注入Feign的Interface报红提示的问题
    几种常见的日志
    个人博客搭建方案选择
    elasticsearch常用操作命令
    kafka操作命令
    centos7.0安装java环境
    CentOS安装jdk的三种方法
    在OAuth2中 自定义tokenServices来提供个性化服务,每次刷新token并让原token在5分钟内有效
    解决HttpServletRequest的输入流只能读取一次的问题(转)
  • 原文地址:https://www.cnblogs.com/xingyunfashi/p/15050317.html
Copyright © 2011-2022 走看看