标签: nomad

如何从本地 docker 镜像进行游牧工作

nomad docker 镜像将从 Docker Hub 获取。但是我想使用一些本地镜像。我如何使用主题。(我不想使用私人仓库)

示例我想使用本地图像test


> docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
test                        latest              da795ca8a32f        36 minutes ago      567MB
Run Code Online (Sandbox Code Playgroud)
job "test" {
  datacenters = ["dc1"]

  group "example" {
    task "test" {
      driver = "docker"

      config {
        image = "test"
      }

      resources {
        cpu = 500
        memory = 256 
      }
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

这是不对的 !

docker nomad

9
推荐指数
2
解决办法
4832
查看次数

使用 Vault 机密时发出 API 请求时出错

我正在遵循本教程,但我不知道为什么在运行某些 Vault 命令时会收到这些权限错误

  vault kv put secret/hello foo=world
    Error making API request.
    
    URL: GET http://127.0.0.1:8200/v1/sys/internal/ui/mounts/secret/hello
    Code: 403. Errors:
    
    * permission denied
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息...

vault status
Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    1
Threshold       1
Version         1.8.4
Storage Type    inmem
Cluster Name    vault-cluster-fc4492f9
Cluster ID      87956902-532d-dcfd-5e9a-9f1d36207ef4
HA Enabled      false
Run Code Online (Sandbox Code Playgroud)

还有我的Vault包的版本

vault --version
Vault v1.8.4 (925bc650ad1d997e84fbb832f302a6bfe0105bbb)
Run Code Online (Sandbox Code Playgroud)

我已经导出了 Token 和地址,所以我不知道下一步要做什么来解决这个问题。谁能帮我吗?提前致谢。


更新

从 UI 中我可以访问http://127.0.0.1:8200/ui/vault/但在 CLI 中仍然遇到相同的问题。我什至尝试了保管库身份验证登录,但没有任何变化。

hashicorp-vault nomad vault

7
推荐指数
1
解决办法
2万
查看次数

如何防止游牧任务退出?

在 docker 中,我们有-t标志来防止容器退出。如何在游牧民族中实现同样的事情?

我想调试是否可以从另一个服务 ping 一个服务,所以我只想要一个带有 curl 的容器。但是,如果我尝试部署 ubuntu 映像,如下所示指定它,它会退出并继续重新启动。我该怎么做才能让它继续运行?

task "testubuntu" {

  driver = "docker"

  config {
      image = "ubuntu:latest"
  }

  resources {
      cpu = 500
      memory = 256
      network {
          mbits = 10
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

devops nomad

5
推荐指数
1
解决办法
217
查看次数

游牧和端口映射

Nomad 有三种不同的方式来映射端口:

  1. 组级别下的网络节
  2. 配置下的网络节 -> 资源级别
  3. 配置级别下的 port_map 节

有什么区别,我什么时候应该使用哪个?

networking consul nomad

5
推荐指数
1
解决办法
2975
查看次数

KRaft - 无法向控制器法定人数注册

我在 docker 中使用Apache Kafka V3.1 并尝试使用 Nomad 来编排它。我在创建分布式集群时遇到问题。

目标是在 3 个 EC2 实例上拥有 3 个代理/控制器节点

:~$ nslookup broker.service.brain.consul
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   broker.service.brain.consul
Address: 30.10.12.52
Name:   broker.service.brain.consul
Address: 30.10.11.8
Name:   broker.service.brain.consul
Address: 30.10.13.172
Run Code Online (Sandbox Code Playgroud)

从 Nomad 客户端实例之一内部:

IPv4 address for docker0: 172.17.0.1
IPv4 address for ens5:    30.10.13.172
IPv4 address for nomad:   172.26.64.1
Run Code Online (Sandbox Code Playgroud)

这是相关的Nomad Job配置

job "kafka" {
  datacenters = ["stream"]
  type = "service"
  group "broker" {
    count = 3
    service {
      name = "broker"
      port = "9092"
      tags = …
Run Code Online (Sandbox Code Playgroud)

apache-kafka docker nomad

5
推荐指数
1
解决办法
5375
查看次数

删除 Nomad 中作业的旧分配详细信息

当我检查游牧工作的状态时。除了新的分配之外,我还可以看到所有旧的分配详细信息(包括停止和完成)。这个名单相当巨大。

有什么方法可以删除/删除旧的分配详细信息并仅显示最新的分配详细信息

nomad

4
推荐指数
1
解决办法
5658
查看次数

通过 nomad 在 docker 中挂载卷

我正在尝试通过 nomad 运行 docker 容器。该作业规范旨在使用 java docker 映像运行 docker 容器。来自 localhost 路径的卷应该安装到 docker 容器上。该卷将包含一些 java 文件。容器应按照命令指定的方式编译 java 文件。

期望:应该完成 java 程序的编译,并且应该在容器和本地主机路径中创建一个类文件。

职位规格文件:

job "java" {
  datacenters = ["dc1"]
  type = "service"
  
  update {
    max_parallel = 1
    healthy_deadline = "3m"
    progress_deadline = "10m"
    auto_revert = false
    canary = 0
  }

  migrate {
    max_parallel = 1
    health_check = "checks"
    min_healthy_time = "10s"
    healthy_deadline = "5m"
  }

  group "compile" {
    count = 1
    
    service {
      name = "java-compile"
      tags = ["java", "compile"]
    } …
Run Code Online (Sandbox Code Playgroud)

docker nomad

4
推荐指数
1
解决办法
6797
查看次数

您将如何使用 Hashicorp 的 Nomad '模板节' 通过 Nomad 作业文件生成 nginx 配置文件?

假设 Consul 和 Nomad 已配置为在资源池上运行。您将如何仅出于生成 Nginx 'default.conf' 文件的目的而呈现模板文件。

以下面的模板节配置为例;Nomad 无法生成 default.conf '文件';而是创建了一个 default.conf '目录'。

template {
    source        = "/path/to/tmp.ctmpl"
    destination   = "folder/default.conf"
    change_mode   = "restart"
    change_signal = "SIGINT"
}
Run Code Online (Sandbox Code Playgroud)

我要么错过了一个技巧,要么误解了“模板节”的功能。

模板生成目录而不是文件的问题之一是,您无法将目录挂载到配置文件路径。因此,运行使用 Nomad docker 驱动程序和示例“docker”卷配置的任务会导致错误。

volumes = ["/path/to/job/folder/default.conf:/etc/nginx/conf.d/default.conf" ]
Run Code Online (Sandbox Code Playgroud)

还是不可能让模板节生成配置文件?

*Ps 使用 Nomad 构建 0.5.5 **

nginx docker consul consul-template nomad

3
推荐指数
1
解决办法
7245
查看次数

如何通过 Nomad 作业文件将文件复制到 Docker 容器

是否可以?

这是我的游牧工作文件

job "test-job" {
  ...
  group "test-group" {
    driver = "docker"
    config {
      image = "<image-name>"
    }
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道可以通过 Dockerfile 的 docker build 将文件复制到 Docker 映像。但我想避免从“image-name”映像显式创建新的 Docker 映像。

我也知道可以将文件复制到从 Docker 映像派生的正在运行的 Docker 容器中。但自从我使用游牧推出泊坞窗图片和填充的容器,将是方便的我,如果保荐人可以复制(通过即时新的泊坞窗层文件拷贝的创建)。

所以我想知道这是否以及如何可能?

docker nomad

3
推荐指数
1
解决办法
2580
查看次数

单个节点的 Nomad 配置作为生产服务器和客户端

我怎样才能建立游牧到行动一样,它的发展模式,而是因此它仍然存在数据来运行这个作为生产安装?就是这样nomad agent -dev

我是否重复运行客户端/服务器进程?或者我可以将它配置为同时运行吗?

所以本质上是一个单节点游牧集群

nomad

2
推荐指数
2
解决办法
2193
查看次数