部署第一个应用程序

介绍如何在群集上定义和部署示例服务实例(第 4 部分)

IMPORTANT: Tutorials are intended to give you hands-on experience working with a limited set of DC/OS features with no implied or explicit warranty of any kind. None of the information provided—including sample scripts, commands, or applications—is officially supported by Mesosphere. You should not use this information in a production environment without independent testing and validation.

现在您已了解如何从 DC/OS 包资源库搜索和安装服务,那么您可以开始部署使用该服务的应用程序了。

本教程演示了如何部署一个简单的应用程序,该应用程序连接到您上一个教程中部署的 Redis 服务。

开始之前

在开始本教程前,您应验证以下内容:

  • 您可以通过至少一个管理节点和三个代理节点来访问运行中的 DC/OS 群集
  • 您可以访问安装了 DC/OS CLI 的计算机。
  • 您已安装 redis 包并且 Redis 服务已在群集中运行。

本教程中的示例应用程序和外部库有一些依赖关系。要确保完成该教程,您应该下载示例应用程序的 Docker 镜像。所提供的 Docker 镜像应包含所有必要的文件,这样,您就无需下载任何其他库或解析外部依赖关系。

学习目的

完成本教程,您将学习到:

  • 如何部署与 Redis 服务连接的简单应用程序定义。
  • 如何检查示例应用程序的状态。

查看示例应用程序定义

在本教程中,您将部署一个非常简单的 示例应用程序,该应用程序检查与 Redis 服务的连接是否可用,然后打印存储于其中的密钥总数。

该示例应用程序是 Python 脚本,与 redis-py Python 库有依赖关系。由于此依赖关系,并且您无法假定所需的库会出现在所有代理节点上,您应使用提供所有依赖关系的 dcos-101Docker 容器来运行示例应用程序。

您还可能需要查看:

  • DOCKERFILE,用于创建 dcos-101 镜像。
  • 应用程序定义,用于部署和管理应用程序。此应用程序定义下载示例应用程序 Python 脚本,然后在 dcos-101 容器内运行它。

部署示例应用程序

  1. 通过运行以下命令,使用应用程序定义将示例应用程序添加到 Marathon:

    1. dcos marathon app add https://raw.githubusercontent.com/joerg84/dcos-101/master/app1/app1.json
  2. 检查该示例应用程序是否正在运行。

    从 DC/OS 基于 Web 的控制台:

    • 单击 服务查看服务列表中的示例应用程序

    • 单击 dcos-101查看 app1 信息

    • 单击 app1查看任务信息

  1. DC/OS CLI
  2. - 通过运行以下命令来查看所有 DC/OS 任务的状态:`dcos task`
  3. - 通过运行以下命令来查看所有 Marathon 应用程序的信息:`dcos marathon app list`
  4. - 通过运行以下命令来查看应用程序的日志信息:`dcos task log app1`
  5. `dcos task log app1` 命令的输出指示正在运行 \*\* app1 \*\* 示例应用程序的节点和端口、与 Redis 的连接状态以及您在 Redis服务中存储的密钥数。
  6. 例如:
  7. ```
  8. Running on node '10.4.6.52' and port '6512
  9. Redis Connected. Total number of keys: 2
  10. ```
  11. 要记住,不同运行之间甚至在已部署应用程序的生命周期内,节点和端口信息可能会有所不同,具体取决于群集中的其他事件。后续部分将讲解 DC/OS 如何定位在不同节点上运行的服务实例以及使用不同的端口。

后续步骤

在本教程中,您使用 Marathon 在 Docker 容器中部署了第一个应用程序,并验证了该应用程序已在运行以及可以成功连接到先前部署的 Redis 服务。

这两个教程合并展示了一个常见的场景,在该场景中,您部署后端服务(例如,Redis 或 MySQL),然后部署连接到该服务的应用程序以执行特定任务(例如,报告存储在 Redis 服务中的密钥数量或显示仪表板中的查询结果)。

接下来的教程将探讨您可以执行的其他部署任务,并揭示 DC/OS 架构中的其他组件:

相关主题

您已经使用 Marathon 部署了 Redis 服务和预定义的示例应用程序。

Marathon 是 DC/OS 平台的核心组件。Marathon 使 DC/OS 群集能够更好地支持长期运行的服务,并用于执行多项关键操作,包括按比例增加或减少应用程序实例的数量、修改资源需求或配置详细信息以及从群集中部署或删除应用程序。

有关使用 Marathon 的更多信息,请参阅以下主题:

  • 部署服务和 pod ,获取有关使用 Marathon 管理您的进程、服务和多个服务 pod 的信息。
  • DC/OS CLI Marathon 插件,获取有关针对 Marathon 使用 DC/OS CLI 命令的信息。您还可以在终端 shell 中键入 dcos marathon app --help,以获取有关 dcos marathon 命令的更多信息。
  • 重置 API,获取有关使用 HTTP 端点的信息。