问题标签 [nomad]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
connect - 如何通过 Consul Connect 将 Wordpress 服务连接到 MariaDB 服务?
我在通过 Consul Connect 连接到 MariaDB 时遇到了严重问题。
我正在使用 Nomad 使用代理创建服务,具有以下作业定义:
但是,似乎服务器无法访问数据库。
服务器和数据库代理的日志显示某种 TLS 问题正在发生,但我不知道如何解决这个问题。
服务器代理日志
数据库代理日志
networking - Nomad 和端口映射
Nomad 有三种不同的方式来映射端口:
- 组级别下的网络节
- 配置 -> 资源级别下的网络节
- 配置级别下的 port_map 节
有什么区别,什么时候应该使用哪个?
devops - 如何从 Consul 转发 Nomad 任务?
我想在我的主机上调试一个容器,而不是从容器内调试(所以我有 curl 和其他软件之类的东西)。K8S 具有端口转发容器的功能,如何通过 consul 实现?
consul - 我可以运行带有 windows 服务器和 linux 客户端的集成 nomad/consul 集群吗?
我正在迁移一个标准的全 linux nomad/consul 集群,其中 nomad/consul 服务器几乎不使用我们的工作负载资源,并且在我们的新环境中为它们启动专用的 linux VM 似乎有点浪费,当我移动环境时拥有多个具有备用容量的 windows 虚拟机,我可以将其用于 nomad 服务器和 consul 服务器进程,以提供必要的冗余。
所以我的问题归结为:如果我的 consul 服务器和 nomad 服务器进程只在 windows 上,而 nomad 代理和 consul 代理进程只在 linux 上 - 他们都会相处吗?除了原生系统 prometheus 导出器之外,nomad 作业都是 docker 化的。
high-availability - 客户康复后Nomad传播
我试图了解 Nomad 如何spread
处理客户端故障。
在 Nomad 作业中,您可以定义一个spread
节,以便作业的实例传播到所有客户端。
以下是文档: https ://www.nomadproject.io/docs/job-specification/spread
由于这spread
是一个软偏好,如果某个客户端出于任何原因出现故障,Nomad 会将在丢失的客户端上运行的所有作业迁移到另一个可用的客户端。(即使使用 bin-packing 也会生效)。
如果有 2 个客户端网格和具有两个分配的作业,如果一个客户端失败,则两个分配将在同一个客户端上运行。
当网格恢复并启动新客户端时会发生什么?作业是否会在该节之后重新传播spread
到两个节点,或者两个分配是否会继续在同一个客户端上运行,直到作业重新运行?
docker - Nomad Runtime 环境和值插值未能加载环境值
我正在使用 docker 驱动程序为气流工作节点创建一个 Nomad 作业,并尝试从 env 中读取当前 nomad 客户端的 IP 地址或主机名。
我首先在任务模板中尝试过,HOST_NAME="{{ env "attr.unique.hostname" }}"
工作正常,我可以在日志中打印出正确的主机名。
但是,当我尝试使用变量插值hostname
(https://www.nomadproject.io/docs/ runtime/interpolation),例如hostname = ${attr.unique.hostname}
我在 terraform 部署期间收到此类投诉
Invalid value for "vars" parameter: vars map does not contain key "attr",
我还尝试了运行时环境(https://www.nomadproject.io/docs/runtime/environment)并填写配置参数,例如ipv4_address = "$NOMAD_IP_<label>:$NOMAD_HOST_PORT_<label>"
(https://www.nomadproject.io/docs/drivers/docker.html#ipv4_address)。它也未能传递正确的值。
selenium - 如何为 Selenium Grid 配置 Nomad 作业
我正在尝试在 Hashicorp Nomad 中设置 Selenium Grid,但我不知道如何使网络正常工作。我想要的是拥有一个硒集线器和 8 个铬节点。我发现如果我将节点任务放入自己的组中,我只能对节点任务进行多次分配。
在本地运行它,我会像这样启动网格:
我需要如何配置网络才能使其正常工作?
我现在的工作是这样的:
nomad - 将可读的 JSON 作为字符串传递给 Nomad 模板
我们正在使用 nomad 模板为我们的 nomad 部署添加环境变量。
我注意到 nomad 要求我转义我的 JSON 字符串才能正确传递它。即:说我想传入{"a":3,"b":4}
Key3 我不能按原样写它,相反,我必须写"{\"a\":3,\"b\":4}"
少得多可读。
有没有办法让我可以将纯字符串传入并使其按原样解释?
driver - 如何以非 root 用户身份运行 nomad raw_exec 任务
可以在任务中以非 root 用户身份运行Nomad raw_exec 驱动程序的进程吗?理想情况下,希望以 root 身份运行 nomad,然后删除权限以以目标用户身份运行命令:
但是当我运行这项工作时它失败了:
我在文档中找不到任何可以让我做同样事情的参数
有没有人遇到过这个问题?
谢谢!
api - Hashicorp Nomad 和 Consul API - 获取所有服务地址
我正在为我的 Nomad 集群构建一个自我配置的代理。为此,我需要检索集群中运行的所有作业,以及它们为每个运行的容器分配的 IP 和端口。这样我可以自动生成反向代理配置和负载均衡器。我必须通过 Nomad 或 Consul 的 API 来获取它,但我需要通过一个 API 调用来获取它。我知道我可以通过调用 Consul 的端点获得给定节点中的所有服务/v1/catalog/node/nomad-node-3
,但我必须指定节点。有没有我可以使用的端点?