如何安装 docker 集群管理软件 rancher ?
发布于 作者:苏南大叔 来源:程序如此灵动~当docker
变的更加普遍之后,docker
的集群化管理也就是大势所趋。那么如何管理大量的docker
实例呢?最著名的就是大名鼎鼎的k8s
了。不过,本篇文章中,介绍的是另外一款docker
集群管理软件rancher
。rancher
这个单词的意思:大农场主。放到管理docker
这件事情上来说,也是非常贴切的。
Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。
本文中,苏南大叔就抛砖引玉一下,Rancher
的基本使用。Rancher
在定位上和k8s
比较接近,都是通过web
界面赋予完全的docker
服务编排功能。就是说:可以通过web
的方式,对docker
级群进行管理。
rancher
的安装前提,就是安装了docker
。而与docker
的宿主机的操作系统是没有关系的。同一个集群里面,可能会同时出现win
/mac
/centos
系统,这些是没有关系的。不过,建议大家都使用linux
机器。毕竟,已经提升到运维级群层面上了。里面出现一些win
或者mac
机器,整个系统就显得不那么健壮了不是?
安装rancher
苏南大叔,先选择了一台centos
系统,作为运行rancher
服务的测试机。安装好之后,这台测试机就是中心节点master
了。安装rancher
的方式是比较简单的,就是通过docker
拉取一个镜像rancher/server
。
docker pull rancher/server
截至到发稿,rancher
的最新版本为:v1.6.22
。
运行rancher/server
实例
利用docker run
把这个镜像rancher/server
实例化一下。
docker run --name <container_name> -d -v <host_vol>:/var/lib/mysql --restart=unless-stopped -p <host_port>:8080 rancher/server
下面是个范例:
docker run --name rancher -d -v /docker/mysql/:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server
- 其中
--restart=unless-stopped
这个参数,比较少见,意思是:unless-stopped
,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器。 - 端口设定,
rancher
的默认开放的端口号是8080
。外部端口,就看您高兴了。苏南大叔这边,喜欢用同样的端口号8080
。 - 目录文件挂载,需要一个目录来存放
mysql
数据库文件。内部的路径为:/var/lib/mysql
。外部路径,还是看您高兴。苏南大叔,设置了个路径/docker/mysql/
。当然,不挂载这个数据库到宿主机也是可以运行的。但是,这样做的话,您的数据库文件似乎是并不稳妥的。并且,重装的实际,有这个/var/lib/mysql
的话,原来的安装信息会被重新识别的。 - 注意
--name
参数的位置,放到命令的最后的话,会导致得到一个随机名称。
访问权限设置
这里假设,苏南大叔的宿主机地址是:192.168.99.43
。那么,Rancher
服务器容器的UI界面,可以访问的地址就是:
http://192.168.99.43:8080/
第一次使用的时候,要进行大约几分钟的初始化。所以要多多刷新几次上述地址,才能显示正常的UI界面。默认有个匿名收集用户使用信息的界面。这里,苏南大叔就习惯性的不同意收集了。
首次登录,还没有配置访问权限,为了安全期间,首先点击上面的 Admin
=>Access Control
菜单,来新建一个权限登陆账号和密码。这个账户控制系统,也比较先进,支持Github
/OpenLDAP
等六种控制方式。不过,这里,就选择Local
这种传统的账号和密码方式就行了。
点击 Enable Local Authentication
,打开本地验证,下次就需要输入用户名和密码才能登录了。
添加新的docker
节点(容器)
在这里,苏南大叔要添加的新的被控节点,其实还是Rancher
服务所在的宿主机。不过,这个操作里面,宿主机有了一个新的身份,就是被控端。好吧,其实就是自己控制自己。这个设置新的被控节点的操作,非常简单易懂,全傻瓜式操作。
在Rancher
服务器容器的UI界面上,选择Infrastuctrue
=>Hosts
菜单,点击Add host
。
被控端需要放行UDP
端口500
和4500
。(当然,在本次实验中,因为苏南大叔的试验机被控端与控制端都是一台机器,所以,这个步骤就是省略掉的)
弹出的界面选择 Custom
,将页面第 5 步出现的内容复制粘贴下来,拿到宿主机(被控的docker宿主机)的命令行里面执行。
sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.99.43:8080/v1/scripts/22A2D43209528C8CDF75:1514678400000:gTknIVNKWuaqW4nfs27J0MAxI
被控段会自动下载 rancher/agent
镜像并运行。等待下载完毕。查看一下进程,多出一个 rancher/agent
的进程,并且已经运行。此时再回网页查看 Web 控制台界面,查看Infrastuctrue
=>Hosts
菜单,就可以看到新的被控端。
在被控端的列表最下方,有个按钮Add Container
,就可以run一个新的容器。
也可以直接查看Infrastuctrue
=>Containers
菜单,不分host对容器进行操作。
结论
在Rancher
的控制下,docker
集群也变得比较好操作。不过,本文中仅仅介绍了初级的安装及使用,更多的功能还是有待广大读者来发现的。
更多rancher
相关经验文字,请点击苏南大叔的文章。https://newsn.net/tag/rancher/
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。