快速入门指南

在本指南中,我们将在一台 Linux 主机上安装 Rancher。

准备一台 Linux 主机

准备一台Linux主机:

使用64位的Ubuntu 16.04,必须有3.10+的内核

至少1G内存

安装了 Docker。

你可以使用笔记本、虚拟机或者物理服务器。

如何安装Docker可以参考官方文档。

注意: 目前 Rancher 不支持 Mac和 Windows 下的 Docker

译者注: 目前 Rancher v1.6 最好安装 Rancher 官方推荐的 Docker 17.06.0-ce.

Rancher server 标签

Rancher server 有两个不同的标签。对于每一个主要版本的标签,我们将提供特定版本的文档。

rancher/server:latest标签将是我们最新开发版本。这些版本会已经通过我们的CI自动化框架验证。这些版本不意味着在它们可以在生产环境中部署。

rancher/server:stable标签将是我们最新的稳定版本。这个标签是我们推荐用于生产的版本。

请不要使用有任何带有rc{n}后缀的版本。这些rc是 Rancher 的测试版本。

启动 Rancher server

你需要一行命令来启动 Rancher server。启动后,我们将跟踪查看容器的日志。

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable

# 跟踪日志

$ sudo docker logs -f

需要几分钟的时间等待 Rancher serer 启动。当日志显示.... Startup Succeeded, Listening on port...后,Rancher的 UI 就会启动并运行。

日志显示基本上是实时的。请不要以为这是在初始化时的日志的最后一行,后边可能还会有更多的日志。

注: 任何有 Rancher 所在主机IP的人员都可以访问 Rancher 的主界面和API。我们建议你进行 访问控制 的配置

添加主机

为简单起见,我们将 Rancher Server 所在的机器添加为主机。在实际环境中,我们推荐使用独立的(一个或多个)主机来运行 Rancher server。

要添加主机,访问的用户界面,然后单击Infrastructure,它会立即跳到Hosts页面。点击 Add Host。

Rancher 会提示你选择一个主机注册 URL。这个网址是 Rancher server 运行的地址,必须要保证其它被添加的主机都能访问到。把 Rancher 服务器的端口通过防火墙的 NAT 或者负载均衡器暴露出来,或者暴露到 Internet上在有些情况下是很有用的。如果你的主机有一个私有或者本地 IP 地址,例如: 192.168.*.*;Rancher 将打印一个提示信息,告诉您是否确认这个 IP 地址可以被正常访问到。

现在我们添加 Rancher 服务器主机自身,因此我们可以忽略这个提示信息。点击保存。之后的页面中,默认情况下选中的是custom选项。在这可以得到运行 rancher/agent 容器的命令。这里还有其它的公有云的选项。

网页列出了需要服务器预先打开的端口和说明。由于我们正在添加 Rancher 服务器的主机,我们需要添加这个主机所使用的共有 IP。Rancher agent 命令中如果没有这个参数,这个主机的 IP 很可能会是个错误的配置。

在需要添加的主机上运行界面提示的命令。

当您单击关闭之后就会到达Stacks - > Infrastructure页面。等待一两分钟后,主机就自动出现了。

基础架构服务

第一次登录 Rancher, 你会自动处于 默认 环境中。在默认环境中我们使用了 cattle 的环境模板来添加一些基础架构服务。 这些基础架构服务需要预先被添加进来,才能获得 Rancher 框架的支持。这些基础架构服务可以在 ` Stacks -> Infrastructure` 里找到。

这些应用在添加主机之前都会会保持 unhealthy 的状态。在增加主机后,我们需要等待一点时间,直到这些应用变为 active 的状态。

在主机页面中,默认情况下,作为基础设施服务的容器不会显示出来。你也可以勾选显示系统容器,将系统容器显示出来。

通过界面创建容器

编者注:你可能会混淆一些概念,下文翻译的“应用”英文原文都是stack,而不是application。这个翻译是按照 Rancher 里的中文翻译对应的,并非编者所创。

点击 stacks 进入 stack 页面。如果您看到欢迎屏幕,您可以点击定义一个应用。如果已经存在了一些应用,您可以点击添加服务于任何现有的应用,或创建一个新应用中添加服务。

应用/statck 仅仅是一个方便的方式来组服务结合在一起。如果你需要创建一个新的应用,点击添加应用,填好名称和描述,单击创建,然后点击添加服务。

假设我们定义了一个服务叫first-service。你可以使用默认设置单机创建。 Rancher 就会将容器添加到主机中。无论你的主机IP地址是多少,这个first-service容器的IP都会在 10.42.*.* 的范围内,因为在前文中 Rancher 使用了 ipsec 的基础设施服务,这个服务采用了 overlay 的网络架构解决容器间的跨主机通信问题。

在容器界面中,点击 first-container 的下拉菜单,你就可以进行一些容器的管理操作,例如停止容器、擦好看日志,或者进入命令行等。

通过 Docker 原生命令创建容器

Rancher也会显示那些通过 Docker 原生命令行创建的容器。

通过主机的终端,我们运行以下命令创建容器:

$ docker run -d -it --name=second-container ubuntu:14.04.2

在 Rancher 的主机页面上,你会看到一个名叫 second-container 的容器冒出来了。

Rancher 感知到 Docker daemon 发生的事件,并用恰当的方式将他们显示出来, 可以查看 native docker CLI. 获得更多的信息。

如果你查看 second-container 的 IP,你会发现它并不是10.42.*.* 范围里的,而是与 Docker deamon 类似的 IP。这是使用原生命令行创建容器的结果。

如果我们希望使用原生命令行创建容器,又将它纳入 Rancher 的 Overlay 网络,使得管理更为便利,应该怎么办呢? 很简单,我们为它在命令行中添加一个标签,例如io.rancher.container.network=true,使得 Rancher 将这个容器识别为可以管理的。

$ docker run -d -it --label io.rancher.container.network=true ubuntu:14.04.2

创建一个多容器应用

我们已经展示了如何创建单独的容器,并解释它们如何将我们的跨主机网络的连接。然而,大多数现实中的应用,是创建多种服务,每个服务由多个容器组成。例如一个LetsChat应用,可以包括以下服务:

负载均衡器LB。负载均衡网络流量重定向到“LetsChat”应用程序。

一个_网络_服务 web service 由两个“LetsChat”容器组成。

一个 db service 由一个“Mongo的”容器组成。

lb 与 web service 相连,web service 与 db service 相连(例如Mongo)。

在本节中,我们将详细介绍如何创建和部署LetsChat在牧场主的应用。

导航到stacks页面,如果您看到欢迎屏幕,您可以点击 Define a Service。如果已经有相关的应用存在了,您可以点击** Add Stack来创建一个新的应用。填好名称和描述,单击创建。然后在新的应用中点击 **Add Service。

首先,我们使用mongo镜像,创建一个名为database的数据库服务。点击创建。你会立即回到应用页面(Stacks),其中将包含新创建的db service。

接下来,点击Add Service再添加另外的服务。我们将添加一个LetsChat服务,并链接到db service——创建一个名为web的服务的并使用sdelements/lets-chat镜像。

在页面中,我们将将滑块移动到——有服务的规模为2个容器。

在 Service Links,添加db service,并提供名称mongo。

类似于Docker,Rancher 将从mongo中链接所需的环境变量到letschat镜像。点击创建。

最后,我们创建一个负载平衡器。点击旁边的下拉菜单图标Add Service按钮。选择 Add Load Balancer。我们明明为letschatapplb。输入的源端口(即80),选择目标服务(即web),并选择一个目标端口(即8080, 假定 web service 监听 8080 端口), 点击创建。

我们LetsChat应用程序现在完成了!在Stacks页面,你就可以找到负载平衡器为网络上暴露的端口。点击这个链接,你就到了 LetsChat 的应用上了。

使用 Rancher CLI 创建多容器应用程序

在本节中,我们将向您展示如何使用 Rancher CLI 创建和部署相同的LetsChat

在 Rancher 中,使用 Rancher CLI 把应用拉起来,就像 Docker Compose 工具那么简单。你同样需要docker-compose.yml文件来部署在 Rancher 上的应用。此外您可以指定一个额外的rancher-compose.yml扩展和覆盖docker-compose.yml的文件。

在上一节中,我们创建了一个带有负载均衡器的 LetsChat 应用。如果你已经在 Rancher 创建了它,你可以直接从应用中的下拉菜单导出配置。在docker-compose.yml和rancher-compose.yml文件是这样的:

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_agent: 'true'

io.rancher.container.agent.role: environmentAdmin

image: rancher/lb-service-haproxy:v0.4.2

web:

labels:

io.rancher.container.pull_image: always

tty: true

image: sdelements/lets-chat

links:

- database:mongo

stdin_open: true

database:

labels:

io.rancher.container.pull_image: always

tty: true

image: mongo

stdin_open: true

RANCHER-COMPOSE.YML 示例

version: '2'

services:

letschatapplb:

scale: 1

lb_config:

certs: []

port_rules:

- hostname: ''

path: ''

priority: 1

protocol: http

service: 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

Rancher CLI 的二进制包可以在 Rancher 主页面的右下角找到。适用于 Windows Mac 和 Linux.

为了在Rancher CLI 中使用 Rancher 的一系列服务,我们还需要设置一些环境变量。我们需要在 Rancher 页面中创建一个帐户API密钥。点击API - > Key。点击添加帐户API密钥。填写名称,然后点击创建。保存Access Key和Secret Key。 之后就可以通过 Rancher URL,Access Key和Secret Key,使用 rancher config 来配置 Rancher CLI了。

# Configure Rancher CLI

$ rancher config

# Set the Rancher URL

URL []: http://:8080/

# Set the access key, i.e. username

Access Key []:

# Set the secret key, i.e. password

Secret Key []:

现在,将 docker-compose.yml 和 rancher-compose.yml 保存后运行如下命令:

$ rancher up -d -s NewLetsChatApp

你就可以看到一个名为NewLetsChatApp的应用就启动起来了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐