您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

Kubernetes 持久化存储之GlusterFS

来源:网络整理 浏览:336次 时间:2020-05-28

GlusterFS是一个开源的分布式文件,具有强大的横向扩展能力,可支持数PB存储容量和数千客户端,通过网络互连成一个并行的网络文件系统。具有扩展性、高性能、高可用性等特点。

前提:必须要在实验环境中部署了Gluster FS集群,文中创建了名为:gv0的存储卷

1.创建endpoint,文件名为glusterfs_ep.yaml

$ vi glusterfs_ep.yamlapiVersion: v1kind: Endpointsmetadata:  name: glusterfs  namespace: defaultsubsets:# 添加GlusterFS各个集群的IP地址- addresses:  - ip: 10.0.0.41  - ip: 10.0.0.42  ports:  # 添加GlusterFS端口号  - port: 49152    protocol: TCP

执行yaml

$ kubectl create -f  glusterfs_ep.yamlendpoints/glusterfs created// 查看创建好的endpoints[root@k8s-master01 ~]# kubectl get epNAME                 ENDPOINTS                                    AGEglusterfs            10.0.0.41:49152,10.0.0.42:49152       15s

2.为该endpoint创建svc
Endpoint是GlusterFS的集群节点,那么需要访问到这些节点,就需要创建svc

$ vi glusterfs_svc.yamlapiVersion: v1kind: Servicemetadata:  # 该名称必须要和endpoint里的name一致  name: glusterfsspec:  ports:  - port: 49152    protocol: TCP    targetPort: 49152  sessionAffinity: None  type: ClusterIP

执行yaml

$ kubectl create -f  glusterfs_svc.yamlservice/glusterfs created$ kubectl get svcNAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)     AGEglusterfs            ClusterIP   10.1.104.145   <none>        49152/TCP   20s

3.为Glusterfs创建pv

$ vi glusterfs_pv.yamlapiVersion: v1kind: PersistentVolumemetadata:  name: gluster  labels:    type: glusterfsspec:  capacity:      # 指定该pv的容量    storage: 50Gi  accessModes:    - ReadWriteMany  glusterfs:    # 指定glusterfs的endpoint名称    endpoints: "glusterfs"    # path名称是在glusterfs里创建的卷    # 可登录到glusterfs集群执行"gluster volume list"命令来查看已创建的卷    path: "gv0"    readOnly: false

执行yaml

$ kubectl create -f  glusterfs_pv.yamlpersistentvolume/gluster created$ kubectl get pvNAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGEgluster   50Gi       RWX            Retain           Available                                   10s

4.为Glusterfs创建pvc

$ vi glusterfs_pvc.yamlapiVersion: v1kind: PersistentVolumeClaimmetadata:  # 名称必须和指定的pv一致  name: glusterspec:  accessModes:    - ReadWriteMany  resources:    requests:          # 指定该pvc使用pv的容量空间      storage: 20Gi

执行yaml

$ kubectl  create -f glusterfs_pvc.yamlpersistentvolumeclaim/gluster created$ kubectl get pvcNAME      STATUS   VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGEgluster   Bound    gluster   50Gi       RWX                           83s

5.创建nginx pod并挂载到cluster的pvc nginx_pod.yaml

$ vim nginx-demo.yaml---# PodapiVersion: v1kind: Podmetadata:  name: nginx  labels:    app: web    env: testspec:  containers:    - name: nginx      image: nginx:1.13      ports:        - containerPort: 80      volumeMounts:        - name: data-gv0          mountPath: /usr/share/nginx/html  volumes:  - name: data-gv0    persistentVolumeClaim:          # 绑定指定的pv      claimName: gluster

执行yaml

$ kubectl  create -f nginx-demo.yamlpod/nginx created[root@k8s-master01 ~]# kubectl get pods  | grep "nginx"nginx  1/1     Running     0          2m     10.244.1.222   k8s-node01   <none>           <none>

在任意客户端挂载/mntglusterfs目录,然后创建一个index.html文件

$ mount -t glusterfs k8s-store01:/gv0 /mnt/$ cd /mnt && echo "this nginx store used gluterfs cluster" >index.html

在master节点上通过curl访问pod

$ curl  10.244.1.220/index.htmlthis nginx store used gluterfs cluster

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com