• k8s 连接glusterfs 集群使用


    准备glusterfs 存储

    glusterfs volume 为public,挂载在服务器的/data/public/ 下,创建项目目录projects
    mkdir /data/public/projects/
    
    创建单独测试项目数据目录volume-test-nginx 
    mkdir /data/public/projects/volume-test-nginx
    

    创建k8s 名称空间 testnginx

    kubectl create ns testnginx
    

    准备glusterfs endpoint 配置

    {
      "kind": "Endpoints",
      "apiVersion": "v1",
      "metadata": {
        "name": "glusterfs-cluster",
        "namespace": "testnginx"       #指定endpoint 名称空间
      },
      "subsets": [
        {
          "addresses": [
            {
              "ip": "10.65.0.19"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.20"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.21"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.22"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.23"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.24"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.25"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.26"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        },
        {
          "addresses": [
            {
              "ip": "10.65.0.27"
            }
          ],
          "ports": [
            {
              "port": 1000
            }
          ]
        }
      ]
    }
    
    

    准备 glusterfs svc 配置文件

    # cat glusterfs-service.json 
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "glusterfs-cluster",
        "namespace": "testnginx"
      },
      "spec": {
        "ports": [
          {"port": 1000}
        ]
      }
    }
    
    

    准备 glusterfs pv

    # cat pv.yaml 
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      namespace: testnginx
      name: gluster-volume-testnginx
    spec:
      capacity:
        storage: 3Gi
      accessModes: ["ReadWriteMany","ReadOnlyMany"]
      glusterfs:
        endpoints: "glusterfs-cluster"
        path: "public/projects/volume-test-nginx" #public 为glusterfs volume,projects/volume-test-nginx 为单独项目路径
        readOnly: false
    

    准备 glusterfs Pvc 配置

    # cat pvc.yaml 
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      namespace: testnginx
      name: gluster-volume-testnginx
    spec:
      accessModes: ["ReadWriteMany"]
      resources:
        requests:
          storage: 3Gi
    
    

    准备glusterfs 测试nginx 配置文件

    # cat dp.yaml 
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: testnginx
      namespace: testnginx
      labels:
        app.name: testnginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app.name: testnginx
      template:
        metadata:
          labels:
            app.name: testnginx
        spec:
          containers:
          - name: testnginx
            image: nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
            - name: glusterfsvol
              mountPath: "/usr/share/nginx/html"
          volumes:
          - name: glusterfsvol
            persistentVolumeClaim:
              claimName: gluster-volume-testnginx
    

    生成配置文件

    kubectl apply  -f glusterfs-endpoints.json
    kubectl apply  -f glusterfs-service.json
    kubectl apply  -f pv.yaml
    kubectl apply  -f pvc.yaml
    kubectl apply  -f dp.yaml
    
    

    查看nginx 数据目录

    # kubectl exec -it -n testnginx  testnginx-67f47689d9-zcgrd bash
    root@testnginx-67f47689d9-zcgrd:/# cd /usr/share/nginx/html/
    root@testnginx-67f47689d9-zcgrd:/usr/share/nginx/html# ls
    index.html
    root@testnginx-67f47689d9-zcgrd:/usr/share/nginx/html# cat index.html 
    111
    
    查看 glusterfs 存储
    [root@lgy-storage1 10.65.0.1 /data/public/projects/volume-test-nginx ] 
    # cat index.html 
    111
    
  • 相关阅读:
    基于poi的Excel文件导出(简单表头、固定模板)
    maven 程序包sun.plugin.util不存在
    基于poi的Excel文件导出(固定表头、固定模板)
    java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
    String字符串转List<JavaBean>
    spring项目打包,包含java下的各种配置文件
    代理客户端请求本地调试方法
    故障排除:"log file sync"等待 (文档 ID 1626301.1)
    package.json-属性详解
    excel 制作图加入latex
  • 原文地址:https://www.cnblogs.com/lixinliang/p/15095246.html
Copyright © 2020-2023  润新知