容器化和Kubernetes如今已成为创建可扩展云原生应用程序的基本要素。但并非每个应用程序工作负载都需要容器或Kubernetes资源。HashiCorp Nomad是一个轻量级的工作负载调度程序,提供了与Kubernetes相似的优势,但不仅可以管理容器,还能管理其他很多东西。Akamai与HashiCorp合作,通过Akamai云计算服务为用户提供了快速、简洁、流畅的高可用集群部署服务。
Nomad既可以作为Kubernetes的替代品,也可以作为其补充。然而Nomad不仅支持容器,还可以配合其他工具使用,提供任务驱动程序、自定义“作业”,或者包含任务列表或定制化内容的声明性配置文件。
由于并非每个应用程序都能迅速实现容器化,Nomad将云原生、以容器为先的开发与对传统应用程序的支持相结合。这有助于企业内部的开发团队在不必完全重新架构其软件的情况下更充分地利用工作负载调度程序。
Nomad与其他Marketplace集群应用程序一起,使高可用、自我复制集群的部署和配置变得像在单个实例上部署应用程序一样容易。Marketplace集群消除了通常需要进行的手动任务和额外脚本,可以更方便地设置高可用环境。集群不会产生额外费用,只会根据实际使用的资源计费。
工作原理
Nomad可以用一个统一的工作流程部署和管理容器化应用程序和非容器化的传统应用程序。例如,应用程序可能需要Kubernetes进行大规模容器编排,但Nomad可以处理独立的应用程序,包括原始二进制文件、Java Jar文件和QEMU/KVM虚拟机。
在后端,Nomad会在Nomad服务器和Nomad客户端之间分配工作。服务器在接受用户作业并将任务委派给客户端方面是运作的“大脑”。Nomad客户端是实际负责运行分配给自己任务的机器。Nomad使用Bin packaging进行有效的作业调度和资源优化,并利用Consul作为服务发现网格在三至五个服务器之间运行。
Nomad集群在单个区域内的复制
要使用Akamai的Marketplace部署集群,只需添加自己的Linode API令牌和集群的受限sudo用户,然后选择是否应将帐户SSH密钥添加到所有节点。随后该集群应用程序将部署三个Nomad服务器和三个Nomad客户端。
安装完成后,用户即可通过Nomad API或其他UI管理应用程序的作业。
注意:默认情况下,Nomad通过检测到的第一个IP连接到其他集群成员,因此每个区域被限制为只能部署一个Nomad集群。通过使用Nomad客户端集群应用程序添加3、5或7个额外的计算实例客户端,这些实例将通过由集群生成的consul_nomad_autojoin_token自动加入现有集群,从而实现不受限制的水平扩展。详细情况可以参阅这里。
对于需要多区域复制或自定义配置的工作负载,请联系我们的云解决方案工程师。
对于较小的非生产工作负载,Nomad也可作为单个实例部署。
HashiCorp和Akamai云计算服务
自从去年将Nomad和Vault单实例部署应用程序上架到Akamai Marketplace以来,Akamai一直在与HashiCorp合作,借此简化IaC(基础设施即代码)和云原生部署在Akamai平台上的管理工作。有关Akamai平台上其他HashiCorp工具的详细信息,请查看我们的Terraform提供程序和Terraform指南。