Nomad cluster

Nomad小型集群构建记录

Nov 20, 2022

今天来做一个实施,把黑尾盒子的运行环境从docker swarm切换成nomad。之前许下的,得做。

关于nomad的一些介绍,可以看[官网]。nomad本质上是和k8s处于同一生态位的实现,它在中文文档中蹩脚地称为“集群管理和工作负荷调度器”。nomad支持容器、虚拟机及原生可执行程序,本身并不负责服务发现和密钥,而是依赖自家的consul和vault,所以它比较全功能的k8s,还是要轻好多的。

凡事都有第一次,为了nomad在我手里光辉的第一次,我初始化了我的云环境:

  • LightingHouse * 3(debian bullseye)
  • CVM * 3(debian bullseye)
  • Consul * 3

云联网已创建。

安装一下

按照[官方文档]在每个节点上装好nomad。Nomad是一个独立的二进制文件,非常简单。

官方的安装文档中在debian系发行版上使用了apt-add-repository,这东西在bullseye的螺服务器版本上默认是没有的,需要安装software-properties-common,然后连带安装一大堆包。如果不想安装这些玩意,手动生成apt配置即可:

echo "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nomad.list > /dev/null

然后一路apt操作,安装nomad就好。装好之后,可以验证一下:

然后,咱们从腾讯云的“微服务引擎(TKE)”中,嫖一个consul集群。正常来说,这东西是不会单独使用的,所以在腾讯云上创建一个,并没有单独计费。记得要创建到对应的子网中。这波操作可是太6了:


启用服务,并启动:

sudo systemctl enable nomad
sudo systemctl restart nomad

默认的nomad配置,是同时启动server和client的。这里咱们准备在三个lightinghouse上启动server,并在三个cvm上只启动client,也就是,三个server节点,六个client节点。关注/etc/nomad.d/nomad.hcl,默认的配置只有这么点东西:

# Full configuration options can be found at https://www.nomadproject.io/docs/configuration

data_dir  = "/opt/nomad/data"
bind_addr = "0.0.0.0"

server {
  # license_path is required as of Nomad v1.1.1+
  #license_path = "/opt/nomad/license.hclic"
  enabled          = true
  bootstrap_expect = 1
}

client {
  enabled = true
  servers = ["127.0.0.1"]
}

Tags