快速入门指南
在本指南中,我们将进行简单的Rancher安装,它是单个主机安装,可在单个Linux计算机上运行所有内容。
准备一个Linux主机
提供一个64位Ubuntu 16.04的Linux主机,它必须具有3.10+的内核。您可以使用笔记本电脑,虚拟机或物理服务器。请确保Linux主机至少有1GB内存。将受支持的Docker版本安装到主机上。
要在服务器上安装Docker,请按照Docker的说明进行操作。
注意:目前,Docker for Windows和Docker for Mac不支持。
Rancher服务器标签
Rancher服务器有2个不同的标签。对于每个主要版本标签,我们将提供特定版本的文档。
rancher/server:latest
标签将是我们最新的开发版本。这些构建将通过我们的CI自动化框架进行验证。这些版本不适用于部署在生产中。rancher/server:stable
标签将是我们最新的稳定发布版本。此标签是我们推荐用于生产的版本。
请不要使用任何带有rc{n}
后缀的版本。这些rc
构建意味着Rancher团队测试构建。
启动Rancher服务器
#启动Rancher服务端。
$ sudo docker run -d --restart = unless-stopped -p 8080:8080 rancher / server:stable
#显示Rancher尾部日志
$ sudo docker logs -f < CONTAINER_ID >
Rancher服务器只需要几分钟即可启动。当日志显示.... Startup Succeeded, Listcning on port...
时,Rancher UI已启动并运行。在配置完成后,这一行的日志几乎立即显示。在此输出后可能还有其他日志,所以请不要认为它是日志的最后一行。
我们的UI在8080
端口上提供服务,所以为了查看UI,请转到http://<SERVER_IP>:8080
。如果您在运行Rancher服务器的同一主机上运行浏览器,则需要使用主机的真实IP,http://192.168.1.100:8080
而不是http://localhost:8080
或不http://127.0.0.1:8080
。
注意: Rancher将无法配置访问控制,您的UI和API将可供任何有权访问您的IP的用户使用。我们建议配置访问控制。
添加主机
为简单起见,我们将在Rancher中添加运行Rancher服务器的主机作为agent主机。在实际生产部署中,我们建议使用专用主机运行Rancher服务器。
要添加主机,请访问用户界面,然后单击基础架构,这将立即引导您进入主机添加页面。点击添加主机。Rancher会提示您选择主机注册URL。此URL是Rancher服务器正在运行的地方,必须可以从要添加的所有主机访问。这在Rancher服务器将通过NAT防火墙或负载平衡器暴露于Internet的安装中很有用。如果您的主机具有私有或本地IP地址192.168.*.*
,则Rancher会打印一个警告,要求您确保主机确实可以访问该URL。
现在你可以忽略这些警告,我们只会添加Rancher服务器主机本身。单击保存。默认情况下,将选择“ 自定义”选项,该选项提供了Docker命令来启动Rancher代理容器。还将有云提供商的选择,Rancher使用Docker Machine启动主机。
在UI中,它提供了需要在主机上打开的端口的说明以及一些可选信息。由于我们正在添加运行着Rancher服务器的主机,因此我们需要添加应该用于主机的公共IP。其中一个选项提供了输入此IP的功能,该IP可以自动使用环境变量更新自定义命令。
在运行Rancher服务器的主机中运行此命令。当您在Rancher UI上单击关闭时,您将被引导回基础结构 - > 主机视图。几分钟后,主机会自动出现。
基础设施服务
当您首次登录Rancher时,您将自动进入默认 环境。为此环境选择了默认的Cattle环境模板来启动基础设施服务。这些基础架构服务需要启动,以利用Rancher的好处,如dns,元数据, 网络和健康检查。这些基础架构堆栈可以在Stacks - > Infrastructure中找到。这些堆栈将处于一个unhealthy
状态,直到主机被添加到Rancher。添加主机后,建议在添加服务之前等待所有基础结构堆栈变为active。
在主机上,基础架构服务的容器将被隐藏,除非您单击“ 显示系统”复选框。
通过UI创建容器
导航到“ 堆栈”页面,如果看到欢迎屏幕,可以在欢迎屏幕中单击“ 定义服务 ”按钮。如果您的Rancher设置中已有服务,您可以单击任何现有堆栈中的“ 添加服务”,或者创建一个新的堆栈来添加服务。堆栈只是将服务组合在一起的便利方式。如果您需要创建新的堆栈,请单击添加堆栈,提供名称和描述,然后单击创建。然后,单击新建堆栈中的“ 添加服务 ”。
为“服务”提供一个名为“first-service”的服务。您可以使用我们的默认设置,然后单击创建。Rancher将开始在主机上启动该容器。无论主机的IP地址如何,第一容器将具有10.42.*.*
范围内的IP地址,因为Rancher已使用基础ipsec
架构服务创建了托管覆盖网络。该managed 网络是容器在不同的主机之间相互通信的方式。
如果您单击第一个容器的下拉列表,您将能够执行管理操作,如停止容器,查看日志或访问容器控制台。
通过本机Docker CLI创建容器
即使在UI外创建容器,Rancher也会在主机上显示任何容器。在主机的shell终端中创建一个容器。
$ docker run -d -it --name=second-container ubuntu:14.04.2
在UI中,您将在主机上看到second-container弹出!
Rancher对Docker守护进程发生的事件做出反应,并且做出正确的事情来调和自己的世界观与现实。您可以阅读更多关于使用本地Docker CLI的 Rancher 。
如果您查看second-container的IP地址,您将注意到它不在该10.42.*.*
范围内。它具有由Docker守护程序分配的通常的IP地址。这是通过CLI创建Docker容器的预期行为。
如果我们想通过CLI创建一个Docker容器,并且仍然从Rancher的覆盖网络给它一个IP地址呢?我们需要做的就是io.rancher.container.network=true
在命令中添加一个标签(ie ),让Rancher知道你希望这个容器成为managed
网络的一部分。
$ docker run -d -it --label io.rancher.container.network = true ubuntu:14.04.2
创建多容器应用程序
我们已经向您展示了如何创建单个容器,并解释了它们在跨主机网络中的连接方式。然而,大多数现实世界的应用程序都是由多个服务组成的,每个服务由多个容器组成。一个LetsChat应用,例如,可能包括以下服务:
- 负载均衡器 负载平衡器将Internet流量重定向到“LetsChat”应用程序。
- 一个网络服务由两个“LetsChat”容器。
- 一个数据库服务由一个“Mongo的”容器。
负载平衡器针对Web服务(即LetsChat),Web服务将链接到数据库服务(即Mongo)。
在本节中,我们将介绍如何在Rancher 中创建和部署LetsChat应用程序。
导航到“ 堆栈”页面,如果看到欢迎屏幕,可以在欢迎屏幕中单击“ 定义服务 ”按钮。如果您的Rancher中已经有服务设置,您可以单击添加堆栈来创建一个新的堆栈。提供名称和描述,然后单击创建。然后,单击新建堆栈中的“ 添加服务 ”。
首先,我们将创建一个名为数据库服务database
并使用该mongo
映像。单击创建。您将立即跳转到堆栈页面,其中将包含新创建的数据库服务。
接下来,再次点击添加服务添加其他服务。我们将添加一个LetsChat服务并链接到数据库服务。我们使用web
这个名称,然后使用sdelemcnts/lets-chat
镜像。在UI中,我们将移动滑块以使服务的比例为2个容器。在服务链接中,添加数据库服务并提供名称mongo
。就像在Docker一样,letschat
当您输入“as name”时,Rancher将链接数据库中镜像中必需的环境变量mongo
。单击创建。
最后,我们将创建我们的负载平衡器。单击添加服务按钮旁边的下拉菜单图标。选择添加负载平衡器。提供一个名字letschatapplb
。输入源端口(ie 80
),选择目标服务(即Web),并选择目标端口(即8080
)。该网络服务正在侦听端口8080
。单击创建。
我们的LetsChat应用程序现已完成!在“ 堆栈”页面上,您可以将负载均衡器的暴露端口查找为链接。点击该链接并打开一个新的浏览器,这将显示LetsChat应用程序。
使用Rancher CLI创建多容器应用程序
在本节中,我们将介绍如何使用我们的命名行工具“ Rancher CLI”创建和部署我们在上一节中创建的相同LetsChat应用程序。
当在Rancher中提供服务时,Rancher CLI工具与受欢迎的Docker Compose工具类似。它需要相同的docker-compose.yml
文件,并在Rancher上部署应用程序。您可以在rancher-compose.yml
扩展和覆盖该docker-compose.yml
文件的文件中指定其他属性。
在上一节中,我们使用负载平衡器创建了一个LetsChat应用程序。如果您在Rancher中创建了它,您可以从我们的UI中直接下载文件,方法是从堆栈的下拉菜单中选择Export Config。在docker-compose.yml
和rancher-compose.yml
文件是这样的:
Example docker-compose.yml
version: '2'
services:
letschatapplb:
#If you only have 1 host and also created the host in the UI,
# you may have to change the port exposed on the host.
ports:
- 80:80/tcp
labels:
io.rancher.container.create_agcnt: 'true'
io.rancher.container.agcnt.role: cnvironmcntAdmin
image: rancher/lb-service-haproxy:v0.4.2
web:
labels:
io.rancher.container.pull_image: always
tty: true
image: sdelemcnts/lets-chat
links:
- database:mongo
stdin_opcn: true
database:
labels:
io.rancher.container.pull_image: always
tty: true
image: mongo
stdin_opcn: true
Example rancher-compose.yml
version: '2'
services:
letschatapplb:
scale: 1
lb_config:
certs: []
port_rules:
- hostname: ''
path: ''
priority: 1
protocol: http
service: quickstartguide/web
source_port: 80
target_port: 8080
health_check:
port: 42
interval: 2000
unhealthy_threshold: 3
healthy_threshold: 2
response_timeout: 2000
web:
scale: 2
database:
scale: 1
通过点击位于页脚右侧的下载CLI ,从Rancher UI下载Rancher CLI二进制文件。我们提供下载Windows,Mac和Linux的二进制文件的功能。
为了使用Rancher CLI在Rancher中启动服务,您需要设置一些环境变量。您需要在Rancher UI 中创建一个帐户API密钥。点击API - > 键。点击添加帐户API密钥。提供名称,然后单击创建。保存访问密钥和密钥。使用Rancher URL,Access Key和Secret Key,通过运行配置Rancher CLI rancher config
。
# Configure Rancher CLI
$ rancher config
# Set the Rancher URL
URL []: http://<SERVER_IP>:8080/
# Set the access key, i.e. username
Access Key []: <accessKey_of_account_api_key>
# Set the secret key, i.e. password
Secret Key []: <secretKey_of_account_api_key>
现在,导航到您保存“docker-compose.yml”和“rancher-compose.yml”的目录,然后运行命令。
$ rancher up -d -s NewLetsChatApp
在Rancher中,将创建一个新的堆栈,名为 NewLetsChatApp ,其中包含所有在Rancher中启动的服务。