教程 - 部署第一个应用程序

DC/OS 101 教程第 3 部分

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 101 教程第 3 部分

先决条件

目的

您现在在群集中运行了一个工作持久层 Redis。 在本部分中,您将部署连接到 Redis 的简单应用程序。

步骤

  1. 查看应用程序
  • 让我们首先了解应用程序。它非常简单,只需检查是否可以联系 Redis,然后打印存储在那里的密钥总数。
  1. 部署应用程序
  • python 脚本依赖于 redis-py Python 库,您不能假设它存在于所有代理节点上。因此,您应该在提供所有依赖关系的 mesosphere/dcos-101 Docker 容器中运行它。请随时查看 DOCKERFILE,它用于创建 mesosphere/dcos-101 图像。
  • 看看应用定义。应用定义是 Marathon 用于部署和管理应用程序的配置。此应用定义将下载 python 脚本,然后在 mesosphere/dcos-101 Docker 容器内运行它。
  • 使用应用定义将 app1 添加到 Marathon:dcos marathon app add https://raw.githubusercontent.com/joerg84/dcos-101/master/app1/app1.json
  1. 检查 app1 是否正在运行:
    • 通过查看所有 DC/OS 任务:dcos task。在这里,您应该查看此任务当前所处的状态,可能是正在分段或正在运行。
    • 通过查看所有 Marathon 应用程序:dcos marathon app list
    • 通过检查日志:dcos task log app1。在这里,您应该看到 app1 在哪个节点和端口上运行以及显示 Redis 中密匙数的应用程序输出。不同运行之间甚至在应用程序生命周期内,节点和端口可能会有所不同,具体取决于群集中的事件。

结果

您已使用 Marathon 在 Docker 容器内部部署了第一个应用程序。 您验证了应用程序正在运行并已与先前部署的 Redis 服务成功连接。

深入研究

您刚刚直接使用 Marathon 部署了第一个应用程序。另请注意,Redis 服务本身是通过 Marathon 运行的。 Marathon 被称为 DC/OS 的初始化系统,因为其主要工作是支持长时间运行服务。 Marathon 还允许扩展或卸载应用程序。 除 DC/OS GUI 以外,还有多种选项可以在 Marathon 上部署和维护应用程序:

  • DC/OS CLI:您刚刚使用此选项部署了应用程序。若要获得有关 Marathon CLI 的更多信息 ,请使用 dcos marathon app --help
  • HTTP 端点:Marathon 还附带广泛的 REST API