Nomad

来自Gea-Suan Lin's Wiki
Gslin讨论 | 贡献2020年1月3日 (五) 17:41的版本 →‎設定
跳到导航 跳到搜索

NomadHashiCorp推出的资源管理软体。

架构

Nomad分成Server与Client架构:

  • Server负责协调与分配工作。
  • Client负责实际执行工作。

Server建议至少三台机器,Client建议至少两台机器。

安装

Nomad server与Nomad client的安装都相同(透过设定扮演不同的角色),这边是安装0.10.2版,记得到官方网站上确认最新版的号码后,修改对应的设定:

cd /tmp; wget https://releases.hashicorp.com/nomad/0.10.2/nomad_0.10.2_linux_amd64.zip; unzip nomad_0.10.2_linux_amd64.zip; sudo install -m 0755 nomad /usr/local/bin/; wget https://raw.githubusercontent.com/hashicorp/nomad/master/dist/systemd/nomad.service; sudo install nomad.service /lib/systemd/system/; sudo service daemon-reload; sudo systemctl enable nomad; sudo mkdir /srv/nomad

设定

Nomad server的部份,依照官方的建议放到/etc/nomad.d/server.hcl

datacenter = "us-east-1a"
data_dir = "/srv/nomad"
enable_syslog = true
log_level = "INFO"
region = "us-east-1"
server {
    enabled = true
    bootstrap_expect = 3
    server_join {
        retry_join = ["10.1.1.10:4648", "10.1.1.11:4648", "10.1.1.12:4648"]
    }
}

Nomad client的部份,依照官方的建议放到/etc/nomad.d/client.hcl

datacenter = "us-east-1a"
data_dir = "/srv/nomad"
enable_syslog = true
log_level = "INFO"
region = "us-east-1"
client {
    enabled = true
    servers = ["10.1.1.10:4648", "10.1.1.11:4648", "10.1.1.12:4648"]

    chroot_env {
        "/bin" = "/bin"
        "/etc" = "/etc"
        "/lib32" = "/lib32"
        "/lib64" = "/lib64"
        "/lib" = "/lib"
        "/run/resolveconf" = "/run/resolveconf"
        "/run/systemd/resolve" = "/run/systemd/resolve"
        "/sbin" = "/sbin"
        "/usr" = "/usr"
    }
}
ports {
    http = 5656
}

设定完成后(无论是server或是client)都可以启用:

sudo service nomad restart
sudo service nomad status

常用指令

目前测试的情况下,所有的指令都接受NOMAD_ADDR环境变数。如果没有设定环境的话,需要在命令列加上-address=http://a.b.c.d:4646参数:

export NOMAD_ADDR=http://nomad-server:4646

操作类性指令:

nomad alloc status <id>
nomad alloc logs <id>
nomad server members
nomad node status
nomad job run example.nomad
nomad job status
nomad job stop example

外部连结