【问题标题】:Nomad configuration for single node to act as production server and client单节点作为生产服务器和客户端的 Nomad 配置
【发布时间】:2019-09-30 10:02:40
【问题描述】:

如何将 Nomad 设置为与其开发模式相同的行为,而是将其作为生产设置运行以保留数据?那就是nomad agent -dev

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

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

【问题讨论】:

    标签: nomad


    【解决方案1】:

    由于其他答案在其批评中是有效的,但没有费心回答问题,因此您可以为 linux 做以下事情:

    这假设您在 /usr/local/bin/nomad 安装了 nomad

    游牧配置

    /etc/nomad.d 内创建以下config.hcl。 确保从示例配置中替换 name 的值。

    client {
      enabled = true
    }
    server {
      enabled = true
      bootstrap_expect = 1
    }
    datacenter = "dc1"
    data_dir = "/opt/nomad"
    name =  "YOUR_NOMAD_NAME_HERE"
    

    数据将保存在data_dir(本示例配置中为/opt/nomad

    Linux 服务

    然后在/etc/systemd/system/里面创建一个服务nomad.service

    [Unit]
    Description=Nomad
    Documentation=https://nomadproject.io/docs/
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    ExecReload=/bin/kill -HUP $MAINPID
    ExecStart=/usr/local/bin/nomad agent -config /etc/nomad.d
    KillMode=process
    KillSignal=SIGINT
    LimitNOFILE=infinity
    LimitNPROC=infinity
    Restart=on-failure
    RestartSec=2
    StartLimitBurst=3
    TasksMax=infinity
    
    [Install]
    WantedBy=multi-user.target
    

    最后以systemctl enable nomad && systemctl start nomad开始

    【讨论】:

      【解决方案2】:

      Production Nomad 并没有真正“保留”预期意义上的数据。它通过共识协议在集群内共享数据。每个服务器都保存自己的“世界状态”副本,然后与它的对等方“闲聊”以注意到它需要进行的任何更改。如果有一定程度的混乱或需要抢七,“领导者”会提供答案。如果集群中的服务器出现故障,这种模式会创建冗余和弹性。 Consul 也被设计为以几乎相同的方式工作。

      “开发”模式本质上是一个单服务器集群,也是一个客户端。 出于多种原因,您确实不想在生产中执行此操作。 主要是,服务器集群旨在监督和管理其关联客户端上的资源和分配。当您增加工作的数量和资源需求时,将它们在同一台机器上进行生产可能会产生各种问题。您最不想要的就是您的工作与监督它的流程竞争资源。

      推荐的基准生产设置是 3 个 Nomad 服务器和 2 个 Nomad 客户端,总共 5 个实例。这为您提供了 Nomad 生产部署中所期望的最低限度的隔离和冗余。

      我建议尽早选择 Nomad 服务器的数量(建议 3 或 5 个,正确选举领导者需要奇数)并强化配置,以便服务器永远不会意外地进入和退出存在。不要使用自动缩放或动态寻址方案。相反,为服务器锁定分配的 IP、主机名等,以便在它们需要重新启动或由于某种原因下线时,它们会像以前一样出现。否则,如果其中一台服务器移动,您可能会冒破坏服务器共识的风险。对于 Nomad 客户端,我通常使用手动扩展组,它允许我扩大或缩小 Nomad 客户端的数量。如果您可以很好地监控资源以向缩放器提供信号,您可能可以使用自动缩放。需要进行一些工作才能正确缩减(即标记不合格、等待耗尽),但扩展本质上只是配置盒子并运行 Nomad 客户端。

      【讨论】:

      • 应用部署在服务器或客户端的什么位置?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 2016-06-03
      相关资源
      最近更新 更多