我开始用游牧民做一些测试,我可以在最简单的方法上使用一些帮助来将网络添加到一个小组任务中。基本上,我的问题是:
在任务之间添加内部网络的最简单方法是哪一种?而同一组中的任务不应该彼此具有默认的访问权限吗?还是我做错了什么?
我有这样的配置:
job "job" {
datacenters = [ "dc1" ]
type = "service"
group "group" {
count = 1
task "db" {
kill_timeout = "120s"
driver = "docker"
config {
image = "dbimage"
port_map {
db = 3306
}
}
env {
MYSQL_DATABASE = "db"
MYSQL_ROOT_PASSWORD = "pass"
}
service {
name = "db"
port = "db"
}
resources {
memory = 256
network {
mode = "host"
port "db" {}
}
}
}
task "app1" {
driver = "docker"
kill_timeout = "120s"
config {
image = "app1"
port_map {
app1 = 5000
}
}
service {
name = "app1"
port = "app1"
}
resources {
memory = 128
network {
mode = "host"
port "app1" {}
}
}
}
task "app2" {
driver = "docker"
kill_timeout = "120s"
config {
image = "app2:image"
port_map {
app2 = 4000
}
}
env {
.....
}
service {
name = "app2"
port = "app2"
}
resources {
memory = 256
network {
mode = "host"
port "app2" {}
}
}
}
}
}我希望我的app1和app2可以在内部进行对话,并与数据库进行对话。我已经读过传递给每个容器的游牧民地址变量,我试图达到连接,但我被拒绝连接。是通过连接完成此行为的唯一方法吗?还是有更简单的方法?感谢你的帮助:)
发布于 2021-03-04 09:31:52
可以使用NOMAD_ADDR_task_port变量连接到作业组中的其他任务。
例如,使用$NOMAD_ADDR_db_db环境变量在app1和app2任务中获得ip:db任务的端口对。
有关更多信息,请参见https://www.nomadproject.io/docs/runtime/environment
https://stackoverflow.com/questions/65696410
复制相似问题