微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nomad 集群管理器和调度器

程序名称:Nomad

授权协议: MPL

操作系统: 跨平台

开发语言: Google Go

Nomad 介绍

Nomad 是一个集群管理器和调度器,专为微服务和批量处理工作流设计。Nomad 是分布式,高可用,可扩展到跨数据中心和区域的数千个节点。

Nomad 提供一个常规工作流跨基础设施部署应用。开发者使用一个声明式作业规范来定义应用该如何部署,资源有什么要求(cpu,内存,硬盘)。Nomad
接收这些作业,查找可用的资源来运行应用。调度算法确保所有的约束都满足,尽量在一个主机部署尽可能多的应用,优化资源利用。此外,Nomad
支持在所有主流操作系统运行虚拟化,容器化或者是独立的应用,灵活的支持广泛的工作流负载

Nomad 已经在生产环境使用,主要特性:

  • Docker :Nomad 支持 Docker 作为第一类的工作负载类型

  • 操作简单

  • 多个数据中心和多个区域

  • 灵活的工作负载

  • 可扩展

代码示例:

# Define the hashicorp/web/frontend job
job "hashicorp/web/frontend" {
    # Run in two datacenters
    datacenters = ["us-west-1", "us-east-1"]

    # Only run our workload on linux
    constraint {
        attribute = "$attr.kernel.name"
        value = "linux"
    }

    # Configure the job to do rolling updates
    update {
        # Stagger updates every 30 seconds
        stagger = "30s"

        # Update a single task at a time
        max_parallel = 1
    }

    # Define the task group
    group "frontend" {
        # Ensure we have enough servers to handle traffic
        count = 10

        task "web" {
            # Use Docker to run our server
            driver = "docker"
            config {
                image = "hashicorp/web-frontend:latest"
            }

            # Ask for some resources
            resources {
                cpu = 500
                memory = 128
                network {
                    mbits = 10
                    dynamic_ports = ["http"]
                }
            }
        }
    }
}

Nomad 官网

https://www.nomadproject.io/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐