zoukankan      html  css  js  c++  java
  • kubernetes nfs-client-provisioner外部存储控制器

     

    介绍:

    nfs-client-provisione是一个专门用于NFS外部目录挂载的控制器,当多个副本创建时,他们的命名方式如下:

    • pv provisioned as ${namespace}-${pvcName}-${pvName} 表示正在使用的
    • pv recycled as archieved-${namespace}-${pvcName}-${pvName}  POD delete操作后之前使用的PV目录名称前面会多出一个archieved-用于区分

    现在测试:

    1.安装NFS

    NFS测试环境:腾讯云NFS文件存储(自建NFS也可以)

    首先登陆腾讯云平台打开文件存储服务,新建一个服务,注意地址选择何K8S同一网络环境

     

    这里我的NFS服务端地址是192.168.100.74~至此NFS已经创建完成

     

    2.部署nfs-client-provisioner

    下面用到的测试文件均是从官方文档种获取的

    地址:https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client

     

     

    我的K8S版本是1.10

    kubectl create -f deployment.yaml

    这里只需要修改你的NFS地址即可 /ifs/kubernetes 是你远程端NFS需要创建的目录记得提前创建,否则会报错创建PVC的时候会提示你让你手动创建目录

    kind: Deployment
    apiVersion: extensions/v1beta1
    metadata:
      name: nfs-client-provisioner
    .....
              image: registry.cn-hangzhou.aliyuncs.com/lisong/nfs-client-provisioner:latest #地址默认是谷歌的,如果你没有翻墙请改成这个
    .....  

    kubectl create -f class.yaml

    ##千万注意上面第一个操作不要使用deployment去执行~否则你会发现POD无法创建

    上面2部执行完成之后我们需要作RBAC认证,文件也在官方文档种有,目录是deploy/auth

    kubectl create -f serviceaccount.yaml

    kubectl create -f clusterrole.yaml

    kubectl create -f clusterrolebinding.yaml

    上述操作做完之后测试是否能够正常挂载

    kubectl create -f test-clai.yaml # 声明,指定使用哪一个外部控制器以及对控制器资源的请求容量

    kubectl create -f test-pod.yaml #创建测试POD

    kind: Pod
    apiVersion: v1
    metadata:
      name: test-pod
    spec:
      containers:
      - name: test-pod
        image: busybox:1.24  #官方的busybox地址是谷歌的,如果你没有翻墙请改成这个
        command:
          - "/bin/sh"
        args:
          - "-c"
          - "touch /mnt/SUCCESS && exit 0 || exit 1"
        volumeMounts:
          - name: nfs-pvc
            mountPath: "/mnt"
      restartPolicy: "Never"
      volumes:
        - name: nfs-pvc
          persistentVolumeClaim:
            claimName: test-claim
    

      

    查看PO

     

    现在我们请查看我们的NFS服务~因为NFS是使用的腾讯云的,所以我们找个地方挂载我们的根目录/

    mount -t nfs -o vers=4 192.168.100.74:/ /testnfs/

    ~请记住

     /testnfs/就是你的NFS根目录,不要搞混了~在POD上创建的挂在目录都是NFS上面的目录

     

     完成,目录已创建~看一下是否创建了文件

     

     文件也创建成功

    NFS挂在还有2种方式

    第一种:

     第二种:

    第二种和我提到的外部控制器原理是一样的~只是第一个PV将不需要由我们请创建和维护了~

    具体就是 创建PV 包含了NFS的IP地址,NFS版本,模式,指定PV的大小 #NFS目录需要提前创建好,否则在创建PVC时候等提示,等待VLOUME创建,需要管理员请创建这个目录~

    在然后就一样了,创建StorageClass,创建PVC,

    如何使用:

        跟test-pod.yaml使用方法一样。

  • 相关阅读:
    MySQL优化
    右键菜单怎样添加“在此处打开命令提示符”选项
    MemSQL与MySQL不兼容问题总结
    Ubuntu Server 18.04 修改网路配置
    How to Install MemSQL
    Metro UI 菜单(Winform)
    Windows Server 2008 系统设置集合
    推荐个好东西swoole,php如虎添翼
    php的swoole扩展中onclose和onconnect接口不被调用的问题
    关于编程语言(转/收藏)-原文作者:韩天峰(Rango)
  • 原文地址:https://www.cnblogs.com/heweiblog/p/9073261.html
Copyright © 2011-2022 走看看