在本指南中,我们将创建一个简单的Rancher安装,它是在单个Linux机器上运行所有内容的单一主机安装。

准备一个LINUX主机

配置64位Ubuntu 16.04的Linux主机,该主机必须具有3.10以上的内核。您可以使用笔记本电脑,虚拟机或物理服务器。请确保Linux主机至少有1GB内存。将Docker安装到主机上。

Rancher Server 的版本

Rancher服务器有2个不同的标签。对于每个主要版本标签,我们将提供特定版本的文档。

  • rancher/server:latest版本将是我们最新的开发版本。这些构建将通过我们的CI自动化框架进行验证。这些版本不适合在生产环境中部署。

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

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

启动Rancher Server

您只需要一个启动Rancher服务器的命令。启动容器后,我们将打印出容器日志,以查看服务器何时启动和运行。

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
# Tail the logs to show Rancher
$ sudo docker logs -f <CONTAINER_ID>

Rancher Server启动只需要几分钟的时间。当日志显示.... Startup Succeeded, Listening on port...,Rancher UI已启动并正在运行。这一行日志几乎是在配置完成之后。输出后可能会有其他日志,所以请不要以为它是初始化日志的最后一行。

我们的UI在端口8080上公开,所以为了查看UI,请转到http:// <SERVER_IP>:8080。如果您在运行Rancher Server的同一台主机上运行浏览器,则需要使用主机的真实IP,如http://192.168.1.100:8080而不是http:// localhost:8080或http://127.0. 0.1:8080。

添加主机

为了简单起见,我们将添加运行Rancher服务器的主机作为Rancher中的主机。在实际生产部署中,我们建议使用运行Rancher服务器的专用主机。

要添加主机,请访问UI并单击Infrastructure,这会立即将您带到Hosts页面。点击Add Host。Rancher会提示你选择一个主机注册的URL。此URL是Rancher服务器正在运行的位置,必须可以从要添加的所有主机访问。这在Rancher服务器通过NAT防火墙或负载均衡器暴露于Internet的安装中非常有用。如果您的主机拥有192.168.*.*这样的私有或本地IP地址,则Rancher将打印一条警告,要求您确保主机确实可以访问该URL。

现在,您可以忽略这些警告,我们只会添加Rancher服务器主机本身。点击保存。默认情况下,Custom选项将被选中,它提供Docker命令来启动Rancher代理容器。云提供商也会有选择,Rancher使用Docker Machine来启动主机。

在UI中,它提供了需要在主机上打开的端口的说明以及一些可选信息。由于我们正在添加一台运行Rancher服务器的主机,因此我们需要添加应该用于主机的公共IP。其中一个选项提供了输入此IP的功能,该功能会使用环境变量自动更新自定义命令。

在运行Rancher服务器的主机上运行此命令。

当您在Rancher UI上单击关闭时,您将被引导回到infrastructure->Hosts 视图。几分钟后,主机将自动出现。

基础设施服务

当您第一次登录到Rancher时,您将自动进入默认环境。已经为此环境选择默认的牛环境模板来启动基础架构服务。这些基础设施服务需要启动,以利用牧场主的好处,如DNS,元数据,网络和健康检查。这些基础架构堆栈可以在Stacks->Infrastructure 中找到。直到主机添加到Rancher中,这些堆栈将处于不健康的状态。添加主机后,建议在添加服务之前等待所有基础架构堆栈处于活动状态。

在主机上,除非您单击显示系统复选框,否则基础架构服务中的容器将被隐藏。

通过UI创建一个容器

导航到Stacks页面,如果看到欢迎屏幕,则可以单击欢迎屏幕中的“Define a Service”按钮。如果您的Rancher中已经有服务,您可以点击任何现有Stacks中的“Add Service”,或者创建一个新 Stack来添加服务。Stack只是将服务组合在一起的一种便捷方式。如果您需要创建一个新的Stack,请单击Add Stack,提供名称和描述,然后单击创建。然后,点击新Stacj中的Add Service

以“第一服务”的名义提供服务。您可以使用我们的默认设置,然后单击创建。牧场主将开始在主机上启动容器。无论您的主机具有哪个IP地址,第一个容器将具有10.42。*。*范围的IP地址,因为Rancher使用ipsec基础架构服务创建了托管覆盖网络。这个托管的覆盖网络是容器如何在不同的主机上相互通信。

如果您单击第一个容器的下拉列表,您将能够执行管理操作,如停止容器,查看日志或访问容器控制台。

通过本地DOCKER CLI创建一个容器

即使容器是在UI之外创建的,Rancher也会在主机上显示任何容器。在主机的shell终端中创建一个容器。

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

在用户界面中,您将看到主机上弹出第二个容器!

Rancher会对Docker守护进程中发生的事件做出反应,并且做正确的事情来调和它的世界观与现实。您可以阅读更多关于使用本地docker CLI使用Rancher的信息。

如果您查看第二个容器的IP地址,您会注意到它不在10.42.*.*范围内。它取而代之的是由Docker守护进程分配的通常的IP地址。这是通过CLI创建Docker容器的预期行为。

如果我们想通过CLI创建一个Docker容器并且仍然从Rancher的覆盖网络给它一个IP地址呢?我们所要做的只是在命令中添加一个标签(即io.rancher.container.network = true),让Rancher知道你希望这个容器成为托管网络的一部分。

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

创建一个多容器应用程序

我们已经向您展示了如何创建单个容器,并解释了如何在我们的跨主机网络中连接它们。但是,大多数真实世界的应用程序都是由多个服务组成的,每个服务都由多个容器组成。例如,一个LetsChat应用程序可以由以下服务组成:

  1. 负载均衡器。负载均衡器将Internet流量重定向到“LetsChat”应用程序。
  2. 一个由两个“LetsChat”容器组成的Web服务。
  3. 由一个“Mongo”容器组成的数据库服务。

负载均衡器以Web服务(即LetsChat)为目标,Web服务将链接到数据库服务(即Mongo)。

在本节中,我们将介绍如何在Rancher中创建和部署LetsChat应用程序。

导航到“Stacks”页面,如果看到欢迎屏幕,则可以单击欢迎屏幕中的“Define a Service”按钮。如果您的Rancher中已经有服务,您可以点击Add Stack创建一个新的堆栈。提供名称和说明,然后点击创建。然后,点击新stack中的添加服务。 首先,我们将创建一个名为database的数据库服务并使用mongo镜像。点击创建。您将立即被带到一个Stack页面,该页面将包含新创建的数据库服务。

接下来,再次点击Add Service添加另一个服务。我们将添加一个LetsChat服务并链接到数据库服务。让我们使用名称,网站,并使用sdelements /lets-chat 镜像。在UI中,我们将移动滑块以使服务的比例为2个容器。在服务链接中,添加数据库服务并提供名称mongo。就像在Docker中一样,当你输入“as name”作为mongo的时候,Rancher会链接来自链接数据库的letschat镜像中必要的环境变量。点击创建。

最后,我们将创建我们的负载均衡器。点击添加服务按钮旁边的下拉菜单图标。选择添加负载均衡器。提供一个名字,比如letschatapplb。输入源端口(即80),选择目标服务(即网络),并选择目标端口(即8080)。 Web服务正在侦听端口8080.单击“创建”。

我们的LetsChat应用程序现已完成!在“Stacks”页面上,您可以找到负载均衡器的公开端口作为链接。点击该链接,一个新的浏览器将打开,这将显示LetsChat应用程序。

使用RANCHER CLI创建一个多容器应用程序

在本节中,我们将向您展示如何使用名为Rancher CLI的命令行工具来创建和部署我们在前一节中创建的相同的LetsChat应用程序。 在Rancher中引入服务时,Rancher CLI工具与流行的Docker Compose工具类似。它采用相同的docker-compose.yml文件并在Rancher上部署应用程序。您可以在扩展并覆盖docker-compose.yml文件的rancher-compose.yml文件中指定其他属性。

在前面的章节中,我们使用负载均衡器创建了一个LetsChat应用程序。如果你在Rancher中创建了它,你可以直接从我们的UI下载文件,从Stacks的下拉菜单中选择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_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

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->Keys。点击添加帐户API密钥。提供一个名称,然后单击创建。保存访问密钥和密钥。使用Rancher URL,Access Key和Secret Key,通过运行rancher配置来配置Rancher CLI。

# 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的新Stack,并在Rancher中启动所有服务。

results matching ""

    No results matching ""