CoreOS Architecture Learning
目录
. CoreOS简介
. CoreOS部署、安装、使用
. CoreOS命令使用
1. CoreOS简介
0x1: CoreOS和Docker的关系
我们先来看一张Docker的架构图
aaarticlea/png;base64,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" alt="" />
Docker是一种基于"Host OS"操作系统的虚拟化技术,部署Docker的前提是需要底层有一个运行Docker Container的操作系统,从理论上来说,RHEL、ubuntu、debain等系统,而CoreOS就是一款专门为了Docker虚拟化而设计的操作系统
0x2: CoreOS产生
CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设计,旨在通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度

0x3: CoreOS的特点
. CoreOS 没有提供包管理工具,而是通过容器化 (containerized) 的运算环境向应用程序提供运算资源。应用程序之间共享系统内核和资源,但是彼此之间又互不可见。这样就意味着应用程序将不会再被直接安装到操作系统中,而是通过 Docker 运行在容器中。这种方式使得操作系统、应用程序及运行环境之间的耦合度大大降低 . 相对于传统的部署方式而言,在 CoreOS 集群中部署应用程序更加灵活便捷,应用程序运行环境之间的干扰更少,而且操作系统自身的维护也更加容易。 . CoreOS 采用双系统分区 (dual root partition) 设计。两个分区分别被设置成主动模式和被动模式并在系统运行期间各司其职
) 主动分区负责系统运行
) 被动分区负责系统升级
一旦新版本的操作系统被发布,一个完整的系统文件将被下载至被动分区,并在系统下一次重启时从新版本分区启动,原来的被动分区将切换为主动分区,而之前的主动分区则被切换为被动分区,两个分区扮演的角色将相互对调。同时在系统运行期间系统分区被设置成只读状态,这样也确保了 CoreOS 的安全性。CoreOS 的升级过程在默认条件下将自动完成,并且通过 cgroup 对升级过程中使用到的网络和磁盘资源进行限制,将系统升级所带来的影响降至最低 . CoreOS 使用 Systemd 取代 SysV 作为系统和服务的管理工具。与 SysV 相比
) Systemd 不但可以更好的追踪系统进程,而且也具备优秀的并行化处理能力,加之按需启动等特点,并结合 Docker 的快速启动能力,在 CoreOS 集群中大规模部署 Docker Containers 与使用其他操作系统相比在性能上的优势将更加明显
) Systemd 的另一个特点是引入了 "target" 的概念,每个 target 应用于一个特定的服务,并且可以通过继承一个已有的 target 扩展额外的功能,这样使得操作系统对系统上运行的服务拥有更好的控制力 . 通过对系统结构的重新设计,CoreOS 剔除了任何不必要的软件和服务。在一定程度上减轻了维护一个服务器集群的复杂度,帮助用户从繁琐的系统及软件维护工作中解脱出来。虽然CoreOS 最初源自于Google ChromeOS,但是从一开始就决定了 CoreOS 更加适合应用于一个集群环境而不是一个传统的服务器操作系统
Relevant Link:
http://www.infoq.com/cn/articles/what-is-coreos
http://baike.baidu.com/view/10876826.htm?fr=aladdin
http://www.oschina.net/p/coreos
http://www.oschina.net/translate/coreos_and_docker_first_steps?cmp
http://www.infoq.com/cn/news/2014/07/etcd-cluster-discovery
0x4: CoreOS为大规模云计算、数据中心集群而做的改造
. CoreOS针对Linux内核所做的改造
) 存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区
) 更新分区在更新完成后,自动重新启动系统,当前机器不需要从负载集群中移除,为了保证其它应用程序不被打断,会通过Linux cgroup限制更新过程中的磁盘、网络等IO使用。 . 采用systemd取代传统的SysV
) 支持并行化任务
) 同时采用 socket 式与 D-Bus 总线式激活服务
) 按需启动守护进程(daemon)
) 利用 Linux 的 cgroups 监视进程
) 支持快照和系统恢复
) 维护挂载点和自动挂载点
) 各服务间基于依赖关系进行精密控制 . root分区被设计成只读,用以保证数据的一致性和更新可用 . CPU、IO等资源隔离
基于容器(Container)的架构实现资源隔离,CoreOS很明智使用Docker作为容器管理器用以构建、发布应用,从这个层面来看,一个应用其实就是一个容器 . etcd组件负责服务发现和配置共享,采用Raft分布式一致性协议算法,承担起,组件之间服务通信使用。很自然的,容器(Container)之间应用、服务的伸缩,就显得很简单了
Relevant Link:
https://coreos.com/
2. CoreOS部署、安装、使用
A new way to think about servers
CoreOS is Linux for massive server deployments
CoreOS is a new Linux distribution that has been rearchitected to provide features needed to run modern infrastructure stacks. The strategies and architectures that influence CoreOS allow companies like Google, Facebook and Twitter to run their services at scale with high resilience.
0x1: CoreOS Installation Based On VirtualBox
CoreOS是一种操作系统架构的产品,CoreOS的安装需要基于一定的硬件/虚拟机环境上实现
http://www.blogjava.net/yongboy/archive/2013/08/26/403325.html
0x2: CoreOS Installation Based On VMware
. Choosing a Channel
//This is a rough sketch that should work on OSX and Linux:
curl -LO http://alpha.release.core-os.net/amd64-usr/current/coreos_production_vmware_insecure.zip
unzip coreos_production_vmware_insecure.zip -d coreos_production_vmware_insecure
cd coreos_production_vmware_insecure
open coreos_production_vmware_insecure.vmx . To deploy on an ESXi/vSphere host, convert the VM to OVF
cd coreos_developer_vmware_insecure
mkdir coreos
ovftool coreos_production_vmware_insecure.vmx coreos/coreos.insecure.ovf . creates the following files in ../coreos/:
//解压后的结果
coreos.insecure-disk1.vmdk
coreos.insecure.ovf
coreos.insecure.mf . use the vSphere Client to deploy the VM as follows:
) menu "File"..."Deploy OVF Template..."
) in the wizard, specify the location of the /coresos/ coreos.insecure.ovf created earlier
) name your VM
) choose "thin provision" for the disk format
) choose your network settings
) confirm the settings then click "Finish" . Cloud-Config . Logging in
cd coreos_developer_vmware_insecure
ssh -i insecure_ssh_key core@10.0.1.81 . Replacing the key
cat ~/.ssh/id_rsa.pub | ssh core@10.0.1.81 -i insecure_ssh_key update-ssh-keys -a user
ssh core@10.0.1.81 update-ssh-keys -D oem . Using CoreOS
Relevant Link:
https://coreos.com/docs/running-coreos/platforms/vmware/
https://coreos.com/docs/
3. CoreOS命令使用
https://coreos.com/docs/quickstart/
Copyright (c) 2014 LittleHann All rights reserved
CoreOS Architecture Learning的更多相关文章
- Paper | Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising
目录 故事背景 网络结构 BN和残差学习 拓展到其他任务 发表在2017 TIP. 摘要 Discriminative model learning for image denoising has b ...
- 【翻译】asp.net core中使用MediatR
这篇文章来自:https://ardalis.com/using-mediatr-in-aspnet-core-apps 本文作为翻译,有一些单词翻译成中文可能会有一些误解(对于读者)或者错误(对于作 ...
- (转) Using the latest advancements in AI to predict stock market movements
Using the latest advancements in AI to predict stock market movements 2019-01-13 21:31:18 This blog ...
- NIPS 2016上22篇论文的实现汇集
http://blog.csdn.net/jiandanjinxin/article/details/54087592 日前,LightOn CEO 兼联合创始人 Igor Carron 在其博客上放 ...
- Linux Notes
Do what we want based on what others already did with additional abstraction and organization to ser ...
- [Papers] Semantic Segmentation Papers(1)
目录 FCN Abstract Introduction Related Work FCN Adapting classifiers for dense prediction Shift-and-st ...
- (转) Deep learning architecture diagrams
FastML Machine learning made easy RSS Home Contents Popular Links Backgrounds About Deep learning ar ...
- 论文笔记系列-Neural Architecture Search With Reinforcement Learning
摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...
- 【Network Architecture】Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning(转)
文章来源: https://www.cnblogs.com/shouhuxianjian/p/7786760.html Feature Extractor[Inception v4] 0. 背景 随着 ...
随机推荐
- c# 扩展方法奇思妙用
# 扩展方法出来已久,介绍扩展方法的文章也很多,但都是笼统的.本人最近一直在思考扩展方法的应用,也悟出了一些,准备将这最近一段时间对扩展方法的思考,写成一个系列文章.每个文章只介绍一个应用方面,篇幅不 ...
- 搭建一个Web应用
因为EasyUI会涉及到与后台数据的交互,所以使用Spring MVC作为后台,搭建一个完整的Web环境 使用gradle作为构建工具 build.gradle group 'org.zln.lkd' ...
- Git之分支创建策略
分支策略:git上始终保持两个分支,master分支与develop分支.master分支主要用于发布时使用,而develop分支主要用于开发使用. 创建master的分支developgit che ...
- C#事件与接口
using System; namespace ConsoleApplication1d { delegate void MsgDel(string s); interface IMsg { even ...
- C#属性有什么作用
1,主要作用:将读,写权限分开.如果不使用属性,仅使用public, protected, private,这几个限制都是读,写属性一起的,可读就可写,不可读同时也不可写.不能实现只读不可写,只写不可 ...
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成.Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型.它将所有的信息数据定义为blob ...
- GEOS库的学习之一:介绍和编译
对GEOS库的学习,源于一个项目:要在c++中判断二维平面中两个多边形的关系(无论凹凸).也就是判断两个多边形是否相交.相容等.听起来很简单,可实现起来却比较难,而项目又催得紧.于是我去搜索了一下,看 ...
- WP小游戏产品海外发行经验小结
在群里和大家聊天的时候,大家最多抱怨的就是国内WP份额低,辛辛苦苦做的APP变现困难.我和大家一样,兼职做一些开发,不过我的APP主要面向的是海外市场,从5月份上线到现在不到两个月的时间,没有花费一分 ...
- Windows Phone & Windows App应用程序崩溃crash信息抓取方法
最近有用户反馈,应用有崩溃的情况,可是本地调试却无法重现问题,理所当然的,我想到了微软的开发者仪表盘,可以查看一段时间内的carsh记录,不过仪表盘生成carsh记录不是实时的,而且生成的报告查看非常 ...
- VS2008+GDI实现多幅图像的GIF动画制作
相信很多朋友和我一样,经常由于这或那的原因,需制作一些特定格式的图像.如开发过程中需要给菜单.工具条及按钮等添加对应的图形标识,通过代码或资源导入方式加载这些图像时往往会有较高的格式要求. 比如,为按 ...