本文共 2785 字,大约阅读时间需要 9 分钟。
在Rancher中使用NFS,实现容器跨主机共享数据
摘要:
本文通过实例介绍怎样在Rancher中配置Rancher-NFS,实现Rancher中“服务”内的“容器”实例共享一台外置NFS-Server服务器上的数据目录。
环境说明:
首先使用1台Rancher Server虚机和3台Rancher Agent虚机搭建集群环境。用一条命令,复制粘贴,创建好Rancher Server以后,使用内置的Swarm模板,创建mySwarm环境,并将3个Rancher Node加入到mySwarm环境中。创建一个空的myApp“应用”,以便在这个“应用”中创建测试用的“服务”。
Rancher非常易用,整个搭建过程非常简单,可以参见文末的参考链接,不再赘述。
同时,单独准备一台Ubuntu 16.04机器,安装上NFS服务,共享/data目录,便于测试。
Rancher Server:192.168.3.160
Rancher Node4:192.168.3.164
Rancher Node5:192.168.3.165
Rancher Node6:192.168.3.166
NFS Server :192.168.3.167,共享目录/data,
一、在应用商店中,添加Rancher NFS应用,Rancher NFS配置选项:
二、在myApp“应用”中,添加一个“服务”myalpine1的配置选项:
*三、在myapp“应用”中,再添加一个“服务”nginx1的配置选项:
四、验证NFS服务器端和Rancher工作主机上的容器内的目录内容是否一致:
五、附图:
1.1-Swarm-基础设施-添加mySwarm环境-以默认的Swarm为模板
1.2-基础设施应用-从应用商店添加
1.3-在应用商店中-搜索nfs-找到Rancher-NFS
1.4-选择一个模板版本-进行部署
1.5-选择一个模板版本-进行部署
1.6-Rancher-NFS配置选项页面-NFS服务器地址-共享出来的目录-NFS版本-三项必填
1.7-Rancher会自动创建NFS应用-包含3个容器
1.8-Rancher分别在Node4-5-6三个主机节点上各创建了1个nfs-nfs-driver存储驱动
2.1-添加一个myalpine1服务
2.2-添加一个myalpine1服务-填写卷和卷驱动
2.3-存储驱动中已经创建好了一个卷myalpine1
2.4-查看容器myapp-myalpine1可以看到卷及挂载点files
2.5-到myapp-myalpine1服务中-执行命令行.jpg
2.6-到myapp-myalpine1容器的命令行中,查看目录,已经自动创建了files目录,创建一个文本文件
2.7-扩展服务到3个容器,Rancher自动在node5、node6上创建两个容器
2.8-在node6主机上的容器中执行命令行
2.9-在node6主机上的容器中执行命令行,看到的内容和node4主机上的的容器目录内容是一样的
2.10-在NFS服务器上查看data目录,自动生成了myalpine1目录以及该目录下的文本文件
3.1-以Nginx镜像创建3个容器实例的nginx1服务-卷的参数设置1
3.2-以Nginx镜像创建3个容器实例的nginx1服务-卷的参数设置2
3.3-到新创建的Nginx1服务的容器实例中-执行命令行-创建一个测试文件1
3.4-到新创建的Nginx1服务的容器实例中-执行命令行-创建一个测试文件2
3.5-到NFS服务器端,查看data目录,自动创建了nginx1_html卷的目录,并且能看到在容器中创建的文件内容1
3.6-在nginx1服务的另一个容器实例中-跨主机-执行命令行-查看该容器的html目录,能够看到刚才在另一个容器实例中创建的文件内容1
3.7-在nginx1服务的另一个容器实例中-跨主机-执行命令行-查看该容器的html目录,能够看到刚才在另一个容器实例中创建的文件内容2
1.1-Swarm-基础设施-添加mySwarm环境-以默认的Swarm为模板
1.2-基础设施应用-从应用商店添加
1.3-在应用商店中-搜索nfs-找到Rancher-NFS
1.4-选择一个模板版本-进行部署
1.5-选择一个模板版本-进行部署
1.6-Rancher-NFS配置选项页面-NFS服务器地址-共享出来的目录-NFS版本-三项必填
1.7-Rancher会自动创建NFS应用-包含3个容器
1.8-Rancher分别在Node4-5-6三个主机节点上各创建了1个nfs-nfs-driver存储驱动
2.1-添加一个myalpine1服务
2.2-添加一个myalpine1服务-填写卷和卷驱动
2.3-存储驱动中已经创建好了一个卷myalpine1
2.4-查看容器myapp-myalpine1可以看到卷及挂载点files
2.5-到myapp-myalpine1服务中-执行命令行.jpg
2.6-到myapp-myalpine1容器的命令行中,查看目录,已经自动创建了files目录,创建一个文本文件
2.7-扩展服务到3个容器,Rancher自动在node5、node6上创建两个容器
2.8-在node6主机上的容器中执行命令行
2.9-在node6主机上的容器中执行命令行,看到的内容和node4主机上的的容器目录内容是一样的
2.10-在NFS服务器上查看data目录,自动生成了myalpine1目录以及该目录下的文本文件
3.1-以Nginx镜像创建3个容器实例的nginx1服务-卷的参数设置1
3.2-以Nginx镜像创建3个容器实例的nginx1服务-卷的参数设置2
3.3-到新创建的Nginx1服务的容器实例中-执行命令行-创建一个测试文件1
3.4-到新创建的Nginx1服务的容器实例中-执行命令行-创建一个测试文件2
3.5-到NFS服务器端,查看data目录,自动创建了nginx1_html卷的目录,并且能看到在容器中创建的文件内容1
3.6-在nginx1服务的另一个容器实例中-跨主机-执行命令行-查看该容器的html目录,能够看到刚才在另一个容器实例中创建的文件内容1
3.7-在nginx1服务的另一个容器实例中-跨主机-执行命令行-查看该容器的html目录,能够看到刚才在另一个容器实例中创建的文件内容2
参考链接:
Ubuntu 16.04系统上NFS的安装与使用
Rancher 中应用、服务、容器的概念
使用Rancher搭建K8S测试环境
Rancher 官方在线培训-教学视频链接及内容目录
Rancher 中配置NFS卷驱动插件