低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

Docker 爱好者欢庆吧!CoreOS 被添加到 DigitalOcean 中

2014 年 9 月 26 日

云主机提供商 DigitalOcean 最近宣布开始支持 CoreOS ,CoreOS 是一种新的以 Docker 为中心的 Linux 发行版本。随着基于容器的开发成为主流,CoreOS 也越来越受欢迎,支持这个特殊操作系统的云主机提供商日益增加,DigitalOcean 也是其中的一分子。

于此同时,Digital 和 CoreOS 在他们的官方博客上也炫耀了这一新的关系。 CoreOS 的博客指出已经有超过 2000 个的开发者在 DigitalOcean 上申请了 CoreOS,并且每个虚拟主机提供者都有权使用 alpha、beta 或者正式版本。 DigitalOcean 则宣布在 CoreOS 的 alpha 通道上可以部署一种叫做“droplets”的虚拟容器。除了 CoreOS,DigitalOcean 还支持其它版本的 Linux,比如 CentOS、Debian、Fedora 和 Ubuntu。

CoreOS 是轻量级的 Linux 版本,它在谷歌的Chrome OS 基础上对集群(clusters)而不是单个服务器的处理做了优化。CoreOS 只运行少量的基础服务,也没有包管理器(a package manager),它的理念是几乎所有的应用都应在Docker 的容器中运行。集群管理是通过两个核心技术来完成的, DigitalOcean 在新的教程中对此进行了描述。集群中的业务发现(service discovery)则是通过叫做 etcd 的服务来完成的。

Etcd 服务是一个高可用性的键 - 值(key-value)存储,每个节点可以从中获取配置数据,询问运行业务的相关信息,并且发布一些信息告知给相关的其它成员。每个节点都运行自己的 etcd 客户端,它们被配置成可以和集群中的其它客户端相关通信以共享和发布信息。

如果应用想从这个存储中取回信息,它只需要在本地机器上直接连接 etcd 客户端接口即可。在每个节点上所有的 etcd 数据都是可用的,这和数据实际的存储位置无关,而每个要存储的数据都会分布在整个集群中,并进行自动化地复制。首要选择也会自动化地处理,这使得对这个键值存储的管理变得相当简单。

对 CoreOS 集群和相关 Docker 容器的编制(orchestration)则是通过叫做“fleet”的服务来完成的。

Fleet 的概念非常简单,它就是完成集群范围内的系统初始化的。

在集群环境中的每个节点上都会运行它自己惯用的初始化系统 systemd,这个初始化系统用于启动和管理本机上的服务。所以从简化的意义上说,fleet 做的就是提供相应的接口来控制集群中每个成员上的 systemd 系统。

你可以通过 fleet 来启动或停止相应的服务,或者是获取那些在集群中正在运行进程的状态信息。不仅如此,fleet 还有一些重要的特性使得它的可用性更强,比如它支持分布式处理的机制,这样就可以在不太忙的主机上来启动服务。

你也可以为要运行的服务指定一些预置条件。比如,你可以强调一个服务必须运行在特定的主机上,或者不允许运行在特定的主机上,而判断的条件包括主机的位置、主机是否已经运行,等等。因为 fleet 是利用 systemd 来启动本地进程,所以每个定义服务的文件也就利用了 systemd 的单元文件(unit files),这些文件带有一些定制选项。你可以一次性地把这些配置文件传递给 fleet,并利用它来管理整个集群。

CoreOS 提供了独特的自动更新策略,它在一个双重根分区下实现对操作系统补丁的更新。

首先,你的系统会在 A 根分区上启动,而 CoreOS 会和更新服务进行交互,查找是否有新的更新。如果有可用的更新,那这个补丁会被下载并安装到 B 根分区。为了确保不影响当前的应用,需要使用 Linux 的控制群组来对更新进程进行控制,即对磁盘和网络 I/O 的访问进行限制。

使用双重根分区策略,是对现有的使用 yum 和 apt-get 包管理工具流程的改进。使用包管理工具来更新,会导致一些已知的问题,如它会强制守护进程使用新的库文件或者移动配置文件到某个位置。而在 CoreOS 中,系统更新被视为一个原子操作,所以它是可以回退的。

在 CoreOS 系统中,当前使用的根分区(假设是 root A)不会被修改,所以你的服务器永远不会处在不稳定或部分更新的状态。当你要完成更新时,只要启动机器,那么几秒内刚刚更新好的系统就会在另一个根分区(root B)上启动起来了。

云主机提供商们已经在排队支持 CoreOS 了,除了 DigitalOcean 以外, AWS Google Compute Engine CenturyLink Cloud Rackspace OpenStack VMware 其它一些厂家也已经支持CoreOS。CenturyLink Labs(可参考 之前InfoQ 的新闻报道) 在其开源项目 Panamax 中把 CoreOS 打造成 Docker 的管理平台,并使用 fleet 来对 Docker 进行编制。

目前,DigitalOcean 对虚拟容器 droplets 做了定价,即单 CPU、512MB 内存和 20GB SSD 硬盘配置时每月 5 美金。DigitalOceanh 具有全球性的数据中心,分别部署在旧金山、纽约、伦敦、阿姆斯特丹和新加坡。随着对 CoreOS 支持的发布,DigitalOcean 还提供了一套关于创建 CoreOS 集群和使用 Docker 容器的教程。就像 TechCrunch 报道的那样,看样子 DigitalOcean 的团队正在做很多的事情。

这如同 DigitalOcean 公司的共同创始人 Ben Uretsky经常给我讲的那样,这家公司在过去几年中为满足要求仅仅忙于规模的扩张了,而一些基本的产品开发(比如增加更多的发布版本)却常常中途而废了。现在 DigitalOcean 有了大量的资金和更大的团队,它可以把注意力投入到提供更多新的特性上了,比如说如今 CoreOS 的发布。

查看英文原文: Docker Fans Rejoice! CoreOS Added to DigitalOcean


感谢夏雪对本文的审校。

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

2014 年 9 月 26 日 08:231975

评论

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

第9周作业

Geek_72d5ab

第九周作业

产品经理训练营

《Redis 核心技术与实战》学习笔记 08:GEO数据类型和时间序列数据

escray

redis 极客时间 学习笔记 3月日更 Redis 核心技术与实战

函数依赖根据依赖属性的不同,可分为3种

在即

28天写作 28天挑战 3月日更

ProxmoxVE系列:VMware,是时候卸载了

Bob

vmware 虚拟化 服务器开发 proxmoxve PVE

翻译:《实用的Python编程》07_04_Function_decorators

codists

Python PEP

第八章作业

流浪猫

产品经理训练营 - 第八章作业

joelhy

产品经理训练营

产品经理训练营--第9周作业

月亮 😝

第八章—数据分析作业

墨狂之逸才

Python SMTP 发送邮件方法

HoneyMoose

第八章作业 - 用户路径

Au revoir

如何提高Flutter应用程序的性能

老孟Flutter

flutter

产品经理面试常见问题总结 3

lenka

3月日更

面试进阶齐飞!Github疯传的阿里分布式设计实录也太香了

程序员小毕

Java 程序员 架构 面试 分布式

JDBC—数据库事务处理

打工人!

Java MySQL 数据库事务 JDBC

13|PPT 教程|字体使用原则

青城

第六次作业

Geek_79e938

Flutter 中与平台相关的生命周期

老孟Flutter

flutter

推荐几本 Go 相关书籍

roseduan

go 书籍推荐 Go Concurrency Patterns Go web 书籍

文档是给未来自己的珍贵礼物

steve_lee

文档

Spring-Retry重试实现原理,有点东西哈

Java小咖秀

Java spring 源码 原理 开发

MySQL - 事务

insight

3月日更

ARTS——week 3

steve_lee

“英特尔‘IDM2.0’的疯狂”

intel001

C++后台开发必看,这个学习路线必须收藏

赖猫

c++ Linux 后台开发 服务器开发

Wireshark数据包分析学习笔记Day20

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

分而治之——D&C

Kylin

3月日更 21天挑战 分而治之

6年时间,从实习生到阿里巴巴的P7,这就是我这个三本生的进阶之路

神奇小汤圆

Java 编程 程序员 架构 面试

[老孟Flutter] Stateful 组件的生命周期

老孟Flutter

flutter

数据结构之栈

我是程序员小贱

3月日更

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

Docker爱好者欢庆吧!CoreOS被添加到DigitalOcean中-InfoQ