AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

采用 Cloud Foundry 的 BOSH 来管理有状态的 Docker 容器

  • 2014-07-25
  • 本文字数:1212 字

    阅读完需:约 4 分钟

Cloud Foundry 针对 Docker 发布了一个具有实验性质的开源项目 CF-BOSH ,这个项目提供的功能和原先的 BOSH 项目是相同的,也就是大规模分布式服务的部署管理和生命周期管理,但是它却是适用于 Docker 容器的。

Cloud Foundry BOSH 是一套通用工具链,它能够在提供监控、告警和自我修复的功能的同时,将许多处于 IaaS 上层的多节点应用程序协调地结合起来并管理 IaaS 的生命周期,这其中就包括有状态数据在内。它会管理 VM 模板(在 Cloud Foundry 术语中称之为干细胞(stemcells))、软件发布与部署。BOSH 利用了 YAML 清单并且会创建和管理一个 VM 池,BOSH 会为每个任务从池中取出一个 VM,并通过部署清单来更新它的配置。

Cloud Foundry 团队的平台工程师 Ferran Rodenas列举了 Docker 版本的 BOSH 的一些优势

  1. 可以将多个 Docker 容器精心地组织进多个虚拟机中。
  2. 可以选择将容器部署到 IaaS(AWS、OpenStack、VSphere、VCHS、CloudStack 或者 Google Compute Engine)中。
  3. 可以自动监控容器并在失败的情况下进行重新启动。
  4. 如果一个容器失败了,那么当它重启时,所有依赖于它的容器也都会重启。
  5. 可以自动监控虚拟机并在失败的情况下重新创建。
  6. 可以将主数据卷绑定到 Docker 容器上。
  7. 隶属于 Docker 容器的数据磁盘可以在不丢失数据的情况下调整大小。

面向 Docker 的 Cloud Foundry BOSH 版本在部署的时候采用了一种基于 YAML 文件的声明式方法,该文件定义了任务、或者虚拟机,以及要部署的 Docker 容器。它不仅仅监视 Docker 守护进程的工作和监听状态,同样还监视所部署的容器的运行状态。如果由于某些原因,Docker 守护进程或者某个容器停止了,BOSH 会自动检测到这一失败并在没有任何人类干预的情况下再次重新启动进程直到成功为止。

BOSH 包含一个健康度监控器(health monitor),这个监控器会定期 ping 一个运行在虚拟机内部的代理以此来检查它的状态,当它不能联络到这个代理或者部署状态不是所期望的状态时,它就会触发告警。这个告警可以通过不同方式进行发送,比如电子邮件或者传呼机。另外,它还可以触发一个特别的“复活(resurrector)”响应器来自动替换掉这个虚拟机,重新添加已有的持久化磁盘(persistent disk),并再次部署和启动进程。

现在人们还在做一些其他的工作来尝试将 Docker 镜像或者 Dockerfiles 与 Cloud Foundry 集成到一起。 Diego 项目通过替换 Cloud Foundry 的执行代理(DEA)模块以使得其在跨运行时环境(runtime environments)方面更具有扩展性,这些运行时环境就包括 Docker。CloudCredo 公司编写开发了 Decker ,Decker 采用 Docker 作为后端来对 Cloud Foundry 的 DEA 模块重新进行了实现。

查看英文原文: Managing Stateful Docker Containers with Cloud Foundry BOSH


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-07-25 21:565377

评论

发布
暂无评论
发现更多内容

CSS11 - 浮动

Mr.Cactus

html/css

链上智能合约APP开发|链上智能合约系统软件开发

系统开发

华为云张昆:支持全场景全业务,GaussDB加速企业数字化转型

华为云开发者联盟

数据库

SpringCloud 从入门到精通 08--- Eureka集群

Felix

前端代码书写规范

Mr.Cactus

大前端 html/css

Python 使用SQLServer

IT蜗壳-Tango

七日更

重学JS | 异步编程 Promise

梁龙先森

大前端 编程语言 28天写作

对于我们程序员来说,基本面是什么呢?

Java架构师迁哥

用技术的方式,在UI设计稿中设置随机码,保证高清

行者AI

Python

从根上理解高性能、高并发(四):深入操作系统,彻底理解同步与异步

JackJiang

网络编程 高并发 高性能 即时通讯

2020DevOps状态报告——平台模型:扩展DevOps的新方法

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

浪潮云防勒索一站式解决方案,让勒索病毒“上云”无门

产品推荐

关于2020 我有12个关键词

阅读

云原生动态周报 |华为云主导抗疫药物筛选科研成果"神农项目"登上国际化学顶刊封面

华为云原生团队

GitHub 疫情 云原生 Prometheus 华为云

区块链即时通讯系统开发方案,IM聊天社交软件开发

v16629866266

Mobileye的创新科技与方案将助力自动驾驶汽车畅行世界、惠及大众

E科讯

初识 D3.js :打造专属可视化

vivo互联网技术

JavaScript 数据分析 可视化 图表 D3

CodeDay#5 启动报名| 带你深入探索支付宝终端动态化实践

蚂蚁集团移动开发平台 mPaaS

小程序 mPaaS 2021年度技术盘点与展望 热门活动

2020DevOps状态报告

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

关于“存在”的一点思考

石君

28天写作 量子 世界为何存在

再谈跨界 互联网+的建筑行业

张老蔫

28天写作

Spring中@Import的作用

张健

即构推出低延迟直播产品L3,可将直播延迟降到1s

ZEGO即构

学习新语言步骤(有其他语言基础前提)

周周

2020中国云计算生态峰会召开 浪潮云摘得三项大奖

云服务

DevSecOps:把合规融入DevOps

啸天

DevOps 安全 法律 DevSecOps 应用安全

anyRTC-语音连麦demo上线

anyRTC开发者

音视频 WebRTC 直播 实时语音 语音聊天室

CSS12 - 清除浮动

Mr.Cactus

html/css

大数据知识专栏 - Zookeeper的Shell操作

小马哥

大数据 zookeeper ZooKeeper原理 28天写作

波场链智能合约软件开发|波场链智能合约APP系统开发

系统开发

专科出身Java开发,2年进入苏宁,5年跳槽阿里,我晋升这么快的秘诀是什么?

Java架构追梦

Java 阿里巴巴 面试 架构师 成长路线

采用Cloud Foundry的BOSH来管理有状态的Docker容器_DevOps & 平台工程_Carlos Sanchez_InfoQ精选文章