zoukankan      html  css  js  c++  java
  • k8s基于NFS部署storageclass实现pv并标记为一个默认的StorageClass

    架构:

    一. 搭建storageclass (跟k8s集群同一网段下的主机)
    1.搭建NFS服务 (所有节点)
    安装nfs服务:(集群中的每个节点也要安装否则不支持)

    yum -y install nfs-utils
    

    启动nfs并设为开机自启:

    systemctl start nfs && systemctl enable nfs
    

    创建共享挂载目录: mkdir -pv /data/volumes/{v1,v2,v3}

    mkdir -pv /data/volumes/{v1,v2,v3}
    

    编辑/etc/exports文件,将目录共享到192.168.200.0/24这个网段中:(网段根据自己的情况写)

    vim /etc/exports
    /data/volumes/v1  192.168.200.0/24(rw,no_root_squash)
    /data/volumes/v2  192.168.200.0/24(rw,no_root_squash)
    /data/volumes/v3  192.168.200.0/24(rw,no_root_squash)
    

    发布:exportfs -avr

    exporting 192.168.200.0/24:/data/volumes/v3
    exporting 192.168.200.0/24:/data/volumes/v2
    exporting 192.168.200.0/24:/data/volumes/v1
    

    查看:showmount -e

    /data/volumes/v3 192.168.200.0/24
    /data/volumes/v2 192.168.200.0/24
    /data/volumes/v1 192.168.200.0/24
    

    2.在k8s的master主节点部署NFS插件

    下载项目:

    for file in class.yaml deployment.yaml rbac.yaml test-claim.yaml ; do wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/$file ; done
    

    修改deployment.yaml文件

    vim deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nfs-client-provisioner
      labels:
        app: nfs-client-provisioner
      # replace with namespace where provisioner is deployed
      namespace: default
    spec:
      replicas: 1
      strategy:
        type: Recreate
      selector:
        matchLabels:
          app: nfs-client-provisioner
      template:
        metadata:
          labels:
            app: nfs-client-provisioner
        spec:
          serviceAccountName: nfs-client-provisioner
          containers:
            - name: nfs-client-provisioner
              image: quay.io/external_storage/nfs-client-provisioner:latest     ##默认是latest版本
              volumeMounts:
                - name: nfs-client-root
                  mountPath: /persistentvolumes
              env:
                - name: PROVISIONER_NAME
                  value: fuseim.pri/ifs          ##这里的供应者名称必须和class.yaml中的provisioner的名称一致,否则部署不成功
                - name: NFS_SERVER
                  value: 192.168.200.3           ##这里写NFS服务器的IP地址或者能解析到的主机名
                - name: NFS_PATH
                  value: /data/volumes/v1        ##这里写NFS服务器中的共享挂载目录(强调:这里的路径必须是目录中最后一层的文件夹,否则部署的应用将无权限创建目录导致Pending)
          volumes:
            - name: nfs-client-root
              nfs:
                server: 192.168.200.3            ##NFS服务器的IP或可解析到的主机名 
                path: /data/volumes/v1           ##NFS服务器中的共享挂载目录(强调:这里的路径必须是目录中最后一层的文件夹,否则部署的应用将无权限创建目录导致Pending)
    

    3.部署yaml文件

    kubectl apply -f .
    

    4.查看服务

    kubectl get pods
    NAME                                      READY   STATUS    RESTARTS   AGE
    nfs-client-provisioner-6d4469b5b5-bh6t9   1/1     Running   0          73m
    

    5.列出你的集群中的StorageClass

    kubectl get storageclass
    NAME                      PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    managed-nfs-storage        fuseim.pri/ifs   Delete          Immediate           false                  77m
    

    6.标记一个StorageClass为默认的 (是storageclass的名字也就是你部署的StorageClass名字是啥就写啥)

    kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
    

    7.验证你选用为默认的StorageClass

    kubectl get storageclass
    NAME                            PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    managed-nfs-storage (default)   fuseim.pri/ifs   Delete          Immediate           false                  77m
    
  • 相关阅读:
    jython resources
    Installing a Library of Jython ScriptsPart of the WebSphere Application Server v7.x Administration Series Series
    jython好资料
    ulipad install on 64bit win7 has issue
    an oracle article in high level to descibe how to archtichre operator JAVA relevet project
    table的宽度,单元格内换行问题
    Linux常用命令大全
    dedecms系统后台登陆提示用户名密码不存在
    登录织梦后台提示用户名不存在的解决方法介绍
    Shell常用命令整理
  • 原文地址:https://www.cnblogs.com/lfl17718347843/p/14131062.html
Copyright © 2011-2022 走看看