如何在Ubuntu16.04上使用Rancher和Docker机器管理多节点部署
介绍
Rancher 支持基于 Docker Machine 的配置,这使得在云提供商或您自己的数据中心内创建 Docker 主机变得容易。 使用 Rancher,您可以直接从 Rancher UI 启动计算节点,这是能够从单个界面创建和管理多节点(以及未来的多云)部署的一个小而关键的步骤。
在本教程中,您将使用 Rancher 中内置的 DigitalOcean 驱动程序 从 Rancher UI 创建 Droplet 并配置它们以运行 Docker 计算主机,您可以监控、扩展和用于部署 Docker 容器。
先决条件
要遵循本教程,您将需要:
第 1 步——创建一个 Droplet 来托管 Rancher
为了使用 Rancher 管理 Docker 主机和容器,我们需要让 Rancher 运行。 我们将使用 DigitalOcean 的 Docker 镜像和一些 User Data 来快速启动和运行。
首先,登录您的 DigitalOcean 帐户并选择 Create Droplet。 然后,在 Choose an Image 部分下,选择 One-click Apps 标签。 在 18.04 镜像上选择 Docker 18.06.1~ce~3。
接下来,选择一个 1GB Droplet 并为您的 Droplet 选择一个数据中心区域。
然后在选择附加选项部分选择用户数据,在出现的文本框中输入下面的脚本。 该脚本告诉 Droplet 获取 rancher/server
Docker 映像并在启动时在容器中启动 Rancher 服务器。
#!/bin/bash docker run -d --name rancher-server -p 80:8080 rancher/server
最后,添加您的 SSH 密钥,为您的 Droplet 提供主机名,然后按 Create 按钮。 然后等待创建新服务器。 服务器启动后,Docker 将下载 Rancher 镜像并启动 Rancher 服务器,这可能需要几分钟时间。
要仔细检查 Rancher 是否正在运行,请登录到您的新 Droplet:
ssh root@your_ip_address
登录后,获取正在运行的 Docker 容器的列表:
docker ps
您将看到以下内容,确认 Rancher 正在运行:
Outputec5492f1b628 rancher/server "/usr/bin/entry /usr/" 15 seconds ago Up 13 seconds 3306/tcp, 0.0.0.0:80->8080/tcp rancher-server
如果您没有看到此内容,请等待几分钟,然后重试。 一旦你确认 Rancher 正在运行,你就可以退出机器。
第 2 步 — 为 Rancher 配置身份验证
服务器启动后,浏览至 http://your_server_ip/
以调出 Rancher UI。 由于 Rancher 服务器目前对 Internet 开放,因此最好设置身份验证,这样公众就无法对我们的环境进行更改。 让我们将 Rancher 配置为使用基于 Github OAuth 的身份验证。
您将在屏幕顶部的 ADMIN 菜单项旁边看到一个警告图标。
如果您将鼠标悬停在此链接上,您将看到消息 未配置访问控制 。 从ADMIN菜单中选择访问控制。 Github 将被选为默认的身份验证方法,因此请按照页面上的说明向 GitHub 注册新应用程序。
注册应用程序后,将 Github 应用程序页面中的 Client ID 和 Client Secret 复制到 Rancher 用户界面中的相应文本字段中。 然后点击保存。
然后,在测试并启用身份验证下,点击Authenticate with GitHub,在弹出的窗口中点击Authorize application。 页面将重新加载,设置 OAuth 的说明将替换为 Configure Authorization 部分。 添加应该被授予访问 Rancher 的任何其他用户和组织。 如果您进行任何更改,请单击 保存 按钮。
接下来,让我们创建一个 环境 来组织我们的计算主机。
第 3 步 — 创建环境
Rancher 中的环境允许我们将主机分组为逻辑集。 Rancher 提供了一个名为 Default 的环境,但让我们创建自己的环境。 单击屏幕顶部的 Default 链接以显示 Environments 菜单,然后单击 Manage Environments。 单击页面上出现的添加环境按钮。
填写项目的名称和描述。 将所有其他设置保留为默认值,然后单击 创建 。 然后再次使用项目选择菜单来选择您的新环境。
现在让我们在这个新环境中启动一些主机。
第 4 步 — 启动 Rancher 计算节点
保护 Rancher 部署并添加项目后,从 Infrastructure 菜单中选择 Hosts,然后单击 Add Host 按钮。
在 Add Host 屏幕上,您将看到几个提供程序:Custom、Amazon EC2、DigitalOcean、Azure , 和 数据包 。 Custom 选项列出了在预先安装了 Docker 的服务器上手动启动 Rancher 计算节点的步骤。 其他的用于在各自的云系统上启动计算节点。
选择DigitalOcean选项,如下图:
在 Access Token 字段中,放置您从先决条件部分获得的 DigitalOcean API 的个人访问令牌。 然后按下一步:配置Droplet。
一组新的字段将出现在屏幕上。 填写以下详细信息:
- Name:您要创建的服务器的名称。 在这种情况下,输入
host01
。 - 数量:保留在
1
。 增加这将创建多个主机并自动为您命名每个主机。 - Image:选择 Ubuntu 16.04.1 x64 被禁用,因为它们与 Rancher 不兼容。
- Size:Droplet 的大小。 选择 1GB Droplet 的选项。
- Region:将创建 Droplet 的区域。 选择一个地理上离你最近的。
最后点击创建。 Rancher 将使用 Docker Machine 创建指定的 Droplet 并在其上安装 Docker。 Rancher 还将在新创建的 Droplet 上运行 rancher-agent
,然后再向 Rancher 服务器注册。
几分钟后,您将在 Rancher UI 中看到您的新主机。 您还将获得有关主机的一些基本信息,例如其 IP 地址、处理器时钟速度、内存和存储。
您可以根据需要多次重复此步骤,以便在部署中启动更多计算节点。 现在让我们探索一下 Rancher 的内置监控,以及如何停用和删除便笺。
第 5 步 — 监控和扩展您的部署
配置好计算节点后,单击其中一台主机的名称以调出“监控”屏幕,您可以在其中查看该计算节点的 CPU 利用率和内存消耗。
如果您发现您正在使用大部分内存,或者您的 CPU 持续发热,您可能需要启动更多节点以降低容器密度并分散负载。 这就是 docker-machine
集成真正有用的地方; 您可以通过直接从 Rancher 的 UI 配置更多计算节点来快速响应负载峰值。
一旦峰值减弱,您可以通过访问 Hosts 页面,找到您的主机,然后单击 Deactivate 图标(带有两条垂直线的框)来关闭任何其他节点,如图所示在下图中:
随后您可以从 Deactivate 按钮右侧的菜单中单击 Activate 或 Delete。
结论
您现在知道如何使用 Rancher 及其与原生 DigitalOcean 驱动程序支持的集成来启动、监控和停用计算节点。 从这里,您可以探索 如何使用 Rancher 作为负载均衡器 。