首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nomad Hashicorp基本网络任务

Nomad Hashicorp基本网络任务
EN

Stack Overflow用户
提问于 2021-01-13 05:56:40
回答 1查看 1.3K关注 0票数 0

我开始用游牧民做一些测试,我可以在最简单的方法上使用一些帮助来将网络添加到一个小组任务中。基本上,我的问题是:

在任务之间添加内部网络的最简单方法是哪一种?而同一组中的任务不应该彼此具有默认的访问权限吗?还是我做错了什么?

我有这样的配置:

代码语言:javascript
复制
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可以在内部进行对话,并与数据库进行对话。我已经读过传递给每个容器的游牧民地址变量,我试图达到连接,但我被拒绝连接。是通过连接完成此行为的唯一方法吗?还是有更简单的方法?感谢你的帮助:)

EN

回答 1

Stack Overflow用户

发布于 2021-03-04 09:31:52

可以使用NOMAD_ADDR_task_port变量连接到作业组中的其他任务。

例如,使用$NOMAD_ADDR_db_db环境变量在app1app2任务中获得ip:db任务的端口对。

有关更多信息,请参见https://www.nomadproject.io/docs/runtime/environment

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65696410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档