rancher 中使用NFS共享存储

本文解释如何在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/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容