Hashicopy之nomad应用编排方案07(提交Job)
一 背景
在Nomad中,作业的描述及其所有需求都保存在一个称为“作业文件”的文件中。此作业文件驻留在本地磁盘上,强烈建议您将作业文件签入源代码管理。
在Nomad中提交作业的一般流程是:
- 根据作业规范编写作业文件
- 使用Nomad服务器计划和检查更改
- 将作业文件提交到Nomad服务器
- (可选)检查作业状态和日志
这里有一个非常基本的例子让你开始。
二 编写一个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参数可确保作业在计划阶段和运行阶段之间没有更改。
有关高级作业更新策略(如金丝雀构建和构建绿色部署)的更多详细信息,请参阅有关作业更新策略的文档。
参考链接
- 点赞
- 收藏
- 关注作者
评论(0)