美文网首页
rancher 中使用NFS共享存储

rancher 中使用NFS共享存储

作者: 大罗马的太阳 | 来源:发表于2017-01-04 21:28 被阅读3609次

本文解释如何在Centos 7中设置NFS服务器,并且如何Rancher中使用NFS 作为共享存储。解决volumes 数据跟随container 漂移的问题。
注:本文提到的NFS server 仅是为了测试rancher共享存储而配置的。生产使用请进行具体配置。

一、准备NFS Server 服务器

  1. 本例使用的NFS Server 服务器信息
    10.1.107.108
    centos 7.2

  2. 安装NFS Server
    yum -y install nfs-utils

  3. 配置NFS Server Exports
    要想客户端可以访问到,需要在服务端把挂载点export出来

vim /etc/exports
/mnt/share       10.1.107.0/24(rw,async,no_root_squash,no_subtree_check)

参数说明:
/mnt/share:nfs共享的目录
10.1.107.0/24:*所有IP ,示例为10.1.107.0-10.1.107.254区间的IP可以访问;
rw:read-write,可读写;
ro:read-only,只读;
sync:同步写入(文件同时写入硬盘和内存),适用在通信比较频繁且实时性比较高的场合
async:异步写入(文件先写入内存,稍候再写入硬盘),性能较好(速度快),适合超大或者超多文件的写入,但有数据丢失的风险,比如突然断电等情况;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限(可能会不安全);
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
all_squash:将来访的所有用户映射为匿名用户或用户组;
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值;
no_subtree_check:如果NFS输出的是一个子目录,则无需检查其父目录的权限(可以提高效率)

  1. 启动NFS Server
systemctl enable nfs-server.service
systemctl start nfs-server.service

如果已经启动nfs-server.service,修改/etc/exports后可以执行exportfs -a 重新加载配置

  1. 配置防火墙
yum -y install firewalld
systemctl start firewalld.service
systemctl enable firewalld.service
#务必注意ssh
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload
  1. 客户端检测
    $ showmount -e 10.1.107.108
    正常情况下应该能看到/mnt/share

二、配置Rancher

  1. 安装nfs插件
    rancher 界面商店选择 rancher NFS


  2. 配置nfs功能



    完成后在每个主机上都创建了一个实例。

  3. 创建卷
    在rancher界面基础设施里面存储应该可以看到已安装了的主机,可以添加卷,如果指定了卷名称,需要使用下面实践中给出的办法来对应。否则的话实例会自动创建一个卷名称。


  4. 使用
    创建service时,在卷的设置页面,卷驱动填写rancher-nfs,创建后,挂载volumes的标识是guid形式的。下面给出的实践是采用docker-compose的方式指定的挂载点key值。

三、实践

创建stack时指定docker-compose.yml是最方便的办法。[TBD:界面设置控制不是很精确,可能跟rancher-ui的版本有关系]
下面给出gitlab的配置供参考,

  1. 配置了external: true说明是environment级别的共享。没有的话是stack级别的共享,即 docker-compose中不同的service可以共享。
  2. 配置了per_container: true说明是容器级别的共享,即每个容器独立创建一个volume。
  3. environment 级别的volume只能从界面手工删除,系统自动创建的volume会随容器销毁而销毁。
  1. docker-compose.yml
version: '2'
volumes:
  gitlab-config:
    external: true
    driver: 'rancher-nfs'
  gitlab-data:
    external: true
    driver: 'rancher-nfs'
  gitlab-log:
    external: true
    driver: 'rancher-nfs'
services:
  web:
    image: gitlab/gitlab-ce:latest
    restart: always
    hostname: gitlab.126.com
    environment:
      GITLAB_TIMEZONE: Beijing
      GITLAB_OMNIBUS_CONFIG: |
        gitlab_rails['smtp_enable'] = true;
        gitlab_rails['smtp_address'] = "smtp.126.com";
        gitlab_rails['smtp_port'] = 25;
        gitlab_rails['smtp_user_name'] = "hq-yjysupport@126.com";
        gitlab_rails['smtp_password'] = "Password";
        gitlab_rails['smtp_authentication'] = "login";
        gitlab_rails['smtp_enable_starttls_auto'] = false;
        gitlab_rails['gitlab_email_from'] = 'hq-yjysupport@126.com';
        gitlab_rails['gitlab_email_reply_to'] = 'hq-yjysupport@126.com';
    ports:
      - 80:80
      - 443:443
      - 22:22
    volumes:
      - gitlab-config:/etc/gitlab
      - gitlab-log:/var/log/gitlab
      - gitlab-data:/var/opt/gitlab
  1. rancher-compose.yml
version: '2'
services:
  web:
    retain_ip: true
    scale: 1
    start_on_create: true

  1. http://docs.rancher.com/rancher/v1.3/en/rancher-services/storage-service/

相关文章

  • rancher 中使用NFS共享存储

    本文解释如何在Centos 7中设置NFS服务器,并且如何Rancher中使用NFS 作为共享存储。解决volum...

  • rancher 实践

    rancher docker运行,国内环境 忘记登录密码 删除 如果使用NFS 存储:api-server 需要添...

  • 外链

    文件上传 docker-compose 在Rancher中使用NFS,实现容器跨主机共享数据 docker下搭建f...

  • NFS企业级网络存储服务

    1、什么是NFS? 2、为什么要用共享存储? 3、共享存储的种类 4、NFS工作原理 5、安装 6、配置nfs 实...

  • NFS共享机制

    NFS共享机制 1.为什么用共享存储2.存储有哪些工具3.共享存储应用场景有哪些4.部署nfs共享存储5.客户端尝...

  • kubernetes(k8s)jenkins+gitlab自动化

    一、共享存储NFS部署 1、关闭防火墙 2、安装配置 nfs 3、共享目录设置权限: 4、配置 nfs,nfs 的...

  • 2020-03-06 NFS系统综合说明

    1. NFS系统应用的优缺点说明 NFS服务可以让不同的客户端挂载使用同一个共享目录,也就是将其作为共享存储使用,...

  • NFS

    第1章 存储与nfs存储概述 1.为什么用共享存储2.存储有哪些工具3.共享存储应用场景有哪些4.部署nfs共享存...

  • 03期中架构-NFS

    第1章 存储与nfs存储概述 1.为什么用共享存储2.存储有哪些工具3.共享存储应用场景有哪些4.部署nfs共享存...

  • NFS共享存储

    第1章 存储与nfs存储概述 1.为什么用共享存储2.存储有哪些工具3.共享存储应用场景有哪些4.部署nfs共享存...

网友评论

      本文标题:rancher 中使用NFS共享存储

      本文链接:https://www.haomeiwen.com/subject/nhdavttx.html