Hashicopy之nomad应用编排方案07(提交Job)

举报
kaliarch 发表于 2022/06/11 12:34:01 2022/06/11
【摘要】 一 背景在Nomad中,作业的描述及其所有需求都保存在一个称为“作业文件”的文件中。此作业文件驻留在本地磁盘上,强烈建议您将作业文件签入源代码管理。在Nomad中提交作业的一般流程是:根据作业规范编写作业文件使用Nomad服务器计划和检查更改将作业文件提交到Nomad服务器(可选)检查作业状态和日志这里有一个非常基本的例子让你开始。 二 编写一个Job文件Nomad试图在它的工作规范中在轻...

一 背景

在Nomad中,作业的描述及其所有需求都保存在一个称为“作业文件”的文件中。此作业文件驻留在本地磁盘上,强烈建议您将作业文件签入源代码管理。
在Nomad中提交作业的一般流程是:

  1. 根据作业规范编写作业文件
  2. 使用Nomad服务器计划和检查更改
  3. 将作业文件提交到Nomad服务器
  4. (可选)检查作业状态和日志

这里有一个非常基本的例子让你开始。

二 编写一个Job文件

Nomad试图在它的工作规范中在轻松和表达之间取得平衡。Nomad还提供了Nomad init命令来生成示例作业文件。有关Nomad作业规范的更详细信息,请参阅Nomad文档。
下面是一个示例作业文件,它首先运行一个小型docker容器web服务器。

job "docs" {
  datacenters = ["dc1"]

  group "example" {
    network {
      port "http" {
        static = "5678"
      }
    }
    task "server" {
      driver = "docker"

      config {
        image = "hashicorp/http-echo"
        ports = ["http"]
        args = [
          "-listen",
          ":5678",
          "-text",
          "hello world",
        ]
      }
    }
  }
}

此作业文件以纯文本形式存在于本地工作站上。当您对此作业文件感到满意时,您将计划并审查计划程序决定。将作业文件提交给源代码管理通常是最佳实践,尤其是在团队中工作时。

三 计划一个Job

作业文件编写完成后,您可能希望预览Nomad在运行时所做的更改。nomad job plan命令调用调度程序的一个演练,并输出将执行哪些调度决策。

nomad job plan httpecho.nomad

请注意,没有采取任何行动。此作业未运行。这是一次完全的演习,没有拨款。

四 提交一个Job

假设计划的输出看起来可以接受,现在要求Nomad执行该作业。这是通过nomad job run命令完成的。您可以选择提供由plan命令提供的modify索引,以确保从计划到现在之间没有对此作业进行任何更改。

既然计划了作业,它可能正在运行,也可能没有运行。您需要检查分配状态和日志,以确保作业正确启动。关于检查状态的下一节详细介绍了检查此作业状态的方法。

五 更新和应用一个Job

对作业进行更新时,最好始终运行plan命令,然后运行run命令。例如:

六 运行一个Job

现在,假设输出正常,执行nomad job run命令。包括check-index参数可确保作业在计划阶段和运行阶段之间没有更改。

有关高级作业更新策略(如金丝雀构建和构建绿色部署)的更多详细信息,请参阅有关作业更新策略的文档。

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。