CoreOS项目
CoreOS的设计目的是为你提供想谷歌一样的大型互联网公司一样的基础设施管理能力来动态扩展和管理的计算能力.
CoreOS的安装文件和运行以来非常小,它提供了精简的Linux系统.它使用Linux容器在更高的抽象层来管理你的服务,而不是通过常规的YUM和APT来安装包.
COreOS集合可以运行在任何平台:Vagrant,Amazon EC2,QEMU/KVM,VMware和OpenStack等等,甚至你所使用的硬件环境.
我们要学Docker,就不得不学习CoreOS,CoreOS对Docker甚至容器技术的发展都带来了巨大的推动作用.
CoreOS是一种支持大规模服务部署的Linux系统.
CoreOS特性
一个最小化操作系统
CoreOS被设计成一个来构建平台的最小化现在操作系统.
它比现有的Linux安装平均节省40%的RAM(大约114M)并允许从PXE/iPXE非常快速的启动.
无痛更新
利用主动和被动双区分方案来更新OS,使用分区作为一个单元而不是一个包一个包的更新.这样就会使得每次更新变得快速,可靠,而且很容易回滚.
Docker容器
应用作为Docker容器运行在CoreOS上.容器以包的形式提供最大的灵活性并且可以在几毫秒启动.
支持集群
CoreOS可以在一个机器上很好的运行,但是它被设计用来搭建集群.可以通过fleet很容易的使应用部署在多态机器上并且通过服务把他们连接在一起.
分布式系统工具
内置诸如分布式锁和主选举等原生工具用来构建大规模分布式的构建模块.
服务发现
很容易定位服务在集群的那里运行并当发生改变时进行通知.它是复杂高动态集群必不可少的.在CoreOS中构建高可用和自动故障负载.
快速搭建CoreOS集群
在这里我们需要搭建一个CoreOS集群环境,使用Vagrant和VirtualBox.
首先我们需要在Ubunt上安装这两个工具,可能在安装的过程中出现Vagrant版本过低的情况,这可能是源过低的原因,使用vagrant --version命令查看一下vagrant的版本,vagrant的版本需要在1.6.0以上才可以.楼主用的阿里云服务器自带版本是1.4.3.这个版本显然过低.于是楼主找了一个源.你的环境还需要安装好git.保证这三个东西都是最新版本!
配置工作
从CoreOS官方代码库获取基本配置,并进行修改:
git clone https://github.com/coreos/coreos-vagrant
cd coreos-vagrant
cp user-data.sample user-data
获取新的token(在获取的过程中,楼主出现了好几次错误,于是多试了几次就可以了).将获得的token放到user-data文件中:
#cloud-config
coreos:
etcd:
discovery:https://discovery.etcd.io/<token>
启动集群
默认情况下,在config.rb.sample文件中的num_instance为1.这就说默认情况下将启动一个单机.我们需要修改config.rb.sample中的num_instance为3.
复制文件:
$cp config.rb.sample config.rb
修改config.rb.sample:
$vi config.rb.sample
启动集群:
$vagrant up
添加ssh的公钥
$ssh-add ~/.vagrant.dinsecure_private_key
连接集群中的第一台机器:
$vagrant ssh core-01 -- -A
测试机群
使用fleet来查看机器运行状态
$fleetctl list-machines
应该可以看到三台机器的情况,这样的话,本地基于三台机器的集群已经成功启动.之后就可以基于CoreOS的三大工具做任务分发,分布式存储等很多功能了.
CoreOS提供了三大工具,他们分别是:服务发现,容器管理和进程管理.
使用etcd服务发现,使用docker容器管理,使用fleet进程管理.
具体的关于CoreOS三大工具的内容,咱们以后慢慢谈起.