使用fleetd和consul在coreos集群上部署应用程序

houston的Python项目详细描述


使用 FleetConsul

休斯顿作为命令行应用程序安装,用于 停靠应用程序堆栈的部署。

休斯顿部署允许将文件放置到主机操作系统上,部署 使用consul确认容器的启动,以及 在一次运行中删除以前的容器版本。

VersionDownloadsStatusCoverageLicense

安装

休斯顿可以通过Python package index安装 使用您选择的工具:

pip install houston

文档

文档可在ReadTheDocs上找到。

还有一个example configuration directory

部署类型

休斯顿有3种部署类型:全局、独立堆栈和服务。这三种类型都允许使用cloud-init stylewrite_files节进行文件归档部署[1]

  • 全局部署放置一个单元列表,这些单元计划在所有或大多数coreos实例中共享。
  • 独立部署类似于全局部署,但允许首先部署文件存档的更有针对性的部署。
  • 服务部署允许部署单个单元及其依赖的共享单元

用法示例

部署完整堆栈应用程序的示例:

$ houston -c config -e test-us-east-1 example 7b7d061b
INFO     Deploying example-file-deploy@11bede3c.service
INFO     Deploying example-memcached@1.4.24.service
INFO     Deploying example-nginx@35f9e1f3.service
INFO     Deploying example-consul-template-nginx@d3bac01d.service
INFO     Deploying example-pgbouncer@f20fb494.service
INFO     Deploying example-consul-template-pgbouncer@d3bac01d.service
INFO     Deploying example-datadog@ff444e66.service
INFO     Deploying example@7b7d061b.service
INFO     example@7b7d061b.service has started
INFO     Validated service is running with Consul
INFO     Destroying example@b67b4317.service
INFO     Deployment of example 7b7d061b and its dependencies successful.
INFO     Eagle, looking great. You're Go.

执行时,houston从service’s file manifest创建一个tarball文件 上传到领事的KV数据库。然后部署一个动态创建的系统单位到舰队, 它从consul中提取tarball并将文件提取到coreos文件系统。

在下一步中,它将遍历 manifest,提交并启动每个单元,等待 直到一个单元在systemd中列出为所有节点的active,然后 继续下一个。

依赖关系容器启动后,它启动示例服务, 等待Systemd将其报告为活动。然后它向consul查询版本 已启动的服务,确保它在所有预期的 舰队说已经部署到的节点。

一旦确定了部署,它就会查看提交给舰队的所有单位, 检查是否有其他版本的容器正在运行,而不是它部署的容器。 如果是这样的话,它会用舰队摧毁其他的集装箱。

最后,它将检查是否有其他文件存档版本存在于领事馆中。 服务,如果是的话就把它们取下来。

管理堆栈部署的一个更有趣的部分是命名空间 使更新一个堆栈不会影响 另一个。例如,在配置中,服务可以被称为 pgbouncer:f20fb494,但在部署时,它将带有前缀和版本 如果服务名是example,则与example-pgbouncer@f20fb494对应。

版本历史记录

可在https://houston.readthedocs.org/en/latest/history.html

[1]Global file deployments happen after the unit files are deployed so that Consul can be up and running prior to the placement of the global files.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java可以从struts传递<param/>。xml作为隐藏参数?   带有文件字符串的java建议   安卓中带有用户名和密码的java RTSP流   eclipse如何在我的java代码中导入CSVreader特性?无论出于什么原因,我都不能使用cvsreader功能   Java类型推断在编译时失败,但Eclipse编译并运行良好   SpringBootJava。木卫一。IOException weblogic。乌提尔斯。编译器。ToolFailureException   在Spark中排序时出现java NotSerializableException   java在整数数组中查找缺少的数字   Angular 4中的AES 128加密和Java中的解密   显示GUI的java问题   java不包括ant build in javadocs中的文件   关闭弹出窗口后关闭java平台| JavaFX   java使用for循环还是while循环进行迭代?   java如何使用POI Apache获取生成的Excel文件中列的大小或长度   java Thornttail ArquillianTest,带有用于pactProvider测试的h2数据库   为什么XPATH(Java7)选择了太多的节点?   在自定义远程webapp上将数据附加到我的HDFS时发生java异常   xml如何在java多模块项目中创建bean entityManagerFactoryBean?   ConcurrentHashMap中的java死锁   Tomcat Java内存选项保存在哪个文件中