写点什么

采用 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:565410

评论

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

「百幄」之办公平台:进一道门,办所有事

融云 RongCloud

数字化 办公

【10.28-11.04】写作社区优秀技术博文一览

InfoQ写作社区官方

优质创作周报

集群并发下的数据覆盖问题

苏格拉格拉

缓存 分布式 并发 一致性

设计模式学习-基础知识

肥晨

设计模式 11月月更 设计模式基础

Docker PHP 入门实践(二)

Felix

php Docker 实战 11月月更

Docker PHP 入门实践 (三)

Felix

php Docker thinkphp 11月月更

Redis核心技术

苏格拉格拉

redis 架构 持久化 部署 集群

BI系统打包Docker镜像及部署的技术难度和实现

葡萄城技术团队

Docker 容器 BI

并发编程中的锁、条件变量和信号量

C++后台开发

Go 并发编程 linux开发 C++开发

Baklib|如何搭建在线帮助中心站点?

Baklib

Docker PHP 入门实践(一)

Felix

php 实战案例 Docker 镜像 11月月更

智采云火了的背后,是企业降本增效的刚需

ToB行业头条

稳定性治理方法论

苏格拉格拉

方法论 稳定性

大咖说·我和我的伙伴们|云原生携手禾连健康助力医疗行业发展

大咖说

阿里云 微服务 云原生

喜讯!麦聪DaaS平台荣获“2022行业信息化优秀产品”奖

雨果

数字化转型 DaaS数据即服务 麦聪软件

深圳中心化区块链交易所开发安全的重要性

W13902449729

区块链交易所搭建

QuTrunk与Paddle结合实践--VQA算法示例

启科量子开发者官方号

Python 人工智能 ai框架 量子计算 量子编程

产品网站的FAQ页面该如何编辑?

Baklib

产品 FAQ

uniapp引入 iconfont

源字节1号

微信小程序 软件开发 前端开发 后端开发

马蜂窝毕博:分析完这9点工作原理,我们最终选择了 Apache SeaTunnel!

Apache SeaTunnel

开源 技术选型 数据集成 Seatunnel 数据集成平台

从演进的视角理解微服务架构

苏格拉格拉

架构 微服务 微服务架构 架构演进

一文带你详细了解JVM运行时内存

程序员小毕

Java 程序员 面试 后端 JVM

不愧是阿里内部Spring Boot笔记,从头到尾全是干货

小小怪下士

Java spring 程序员 阿里 springboot

PingCAP 推出 TiDB Cloud Serverless Tier BETA 版

PingCAP

TiDB

FOTSL:端到端的文本检测与识别方法的原理方法与优势

合合技术团队

人工智能 场景 端口 文本检测 文本识别

SQL 碎碎念,你可能用不到但不能不知道的数据库技巧(1)

百里丶落云

数据库 后端 11月月更

量子编程实践:Bell Pair电路及Deutsch算法

启科量子开发者官方号

#python #量子计算 #人工智能 #AI框架

python数据分析-开篇什么是数据分析

AIWeker

Python 人工智能 数据分析 11月月更

Spring Boot「24」DAO 模式与 Repository 模式

Samson

Java spring Spring Boot 学习笔记 11月月更

LED显示屏有色差要怎么处理?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

Redis数据结构

苏格拉格拉

redis 缓存 Redis 数据结构

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