New Relic开源其Docker部署工具Centurion

New Relic开源了其在内部生产环境中使用的Docker部署工具Centurion。Centurion可以从Docker registry中构建容器,并用正确的环境变量、主机容量映射、端口映射将他们运行在一组主机上,另外Centurion还支持滚动部署。

New Relic的项目经理Karl Matthias在DockerCon上宣布基于MIT许可开源Centurion。Centurion项目以Ruby gem的方式组织,并使用Rake任务语法内建的DSL读取配置文件,不过很快它就会支持从etcd中读取配置。Centurion的DSL包括定义要部署的镜像、要部署的Docker服务器、环境变量、容器容量以及端口的相关指令,同时它还支持定义多个环境,比如模拟环境、生产环境。

用于分布式容器环境的Centurion包含多个命令:

  • 滚动部署到一组Docker服务器rolling_deploy:一次启动或停止一个容器以确保应用的负载均衡。部署时,每个容器都会进行健康检查以保证应用正确启动。默认情况下,它会向应用的根路径发送一个GET请求,并期望应用能返回一个200范围内(译者注:2XX都算成功)的有效响应状态码。
  • 部署到一组Docker服务器deploy:硬停机,然后在指定的主机上启动容器。对于那些在任何时段都要可用的应用来说,不推荐使用。
  • 在主机上部署一个Bash控制台deploy_console:在容器中已存在的环境下启动一个命令行shell。Dockerfile 中的 CMD 指令被替换为 /bin/bash ,使用主机列表中第一个主机。
  • 列出特定项目的服务器的所有标签list:running_container_tags:列出目前所有的标签以及标签下运行的机器。同样地列出所有主机的唯一标签列表,当部署出现问题时,这一列表对确认部署的状态很有帮助。
  • 列出运行当前项目的所有容器list:running_containers:返回配置中每个 Docker服务器上运行项目的所有容器的列表。
  • 列出registry镜像list:返回项目的registry上所有的镜像。

该项目正在添加一些新的功能,比如为配置和服务发现集成 etcd 、证书验证以及服务器池的动态主机分配。

你可能感兴趣的:(New Relic开源其Docker部署工具Centurion)