CoreOS折腾笔记(一)集群部署


最近在技改完成之后打算进行大量的微服务化改造,而方便进行微服务化的步骤之一,就是将现有的系统移植进入Docker环境之中。在标准容器系统的选择上,我把目光放在了CoreOS上。实际上,我在CoreOS版本还是2开头的时候就有简单研究过,但是当时主要作为研究Docker的途径,现在则是作为集群化部署的基准系统。从本文开始的一系列折腾则是我在研究CoreOS集群化使用的一些纪录,而本文就是介绍一个本地实现容器化机群的步骤。

安装Vagrant

略,因为太简单了。另外还需要VirtualBox,不要忘记装。

配置CoreOS-vagrant

执行以下命令:
git clone https://github.com/coreos/coreos-vagrant.git
cd coreos-vagrant


下载CoreOS的vagrant配置。值得在进入正式配置之前一提的是,CoreOS本身是没有默认密码或者安装密码机制的,也就是说,现有的所有认证登录需要通过SSH进行。如果是通过vagrant安装,会自动生成登录需要的SSH密钥,这个是需要额外注意的内容。

首先,将仓库中提供的两个模版配置文件复制成正式,接下来需要修改对应的文件:
cp config.rb.sample config.rb
cp user-data.sample user-data


首先修改config.rb文件。这里重点是两个参数,一个是启动的实例数量,另外一个是升级的版本,我修改成了
$num_instances=4
$update_channel='stable'


启动4个实例,升级选择的版本则是月度升级版。另外一个user-data暂时不作修改。

接下来执行:
vagrant up


在一堆输出之后,生成的4个实例就已经在运行了。也可以通过命令vagrant status查看运行状态。
➜  coreos-vagrant git:(master) vagrant status
Current machine states:

core-01                   running (virtualbox)
core-02                   running (virtualbox)
core-03                   running (virtualbox)
core-04                   running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.


接下来需要把SSH密钥添加到SSH可以识别的路径中,当然,也可以使用ssh -i每次指定key。
➜  coreos-vagrant git:(master) ssh-add ~/.vagrant.d/insecure_private_key
Identity added: /Users/user/.vagrant.d/insecure_private_key (/Users/user/.vagrant.d/insecure_private_key)
➜  coreos-vagrant git:(master) vagrant ssh core-01 -- -A
CoreOS stable (1010.5.0)
core@core-01 ~ $


这里的-- -A前两的个横杆表示ssh参数的起始。之后的-A是标准的SSH命令参数,表示将主机的SSH秘钥传递到虚拟机里面,这样做是为了之后的涉及SSH操作更加方便,否则会在某些命令时报错。

进入CoreOS之后,就可以查看现在集群中的机器,可以通过如下命令:
core@core-01 ~ $ fleetctl list-machines
MACHINE     IP      METADATA
6e1b9fae... 172.17.8.104    -
91060182... 172.17.8.103    -
af1494a6... 172.17.8.102    -
c99fef8a... 172.17.8.101    -


查看设备是否正常加入。当然,也可以很方便的登录其它系统:
core@core-01 ~ $ fleetctl ssh -machine af1494a6
The authenticity of host '172.17.8.102' can't be established.
ECDSA key fingerprint is 24:34:be:4e:b7:43:be:94:34:33:b2:81:e0:0c:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.8.102' (ECDSA) to the list of known hosts.
CoreOS stable (1010.5.0)
core@core-02 ~ $ exit
logout


这样我们的第一步,使用CoreOS部署本地集群就已经实现了。

最后,如果需要关闭这些CoreOS实例,可以通过vagrant halt停止所有,下次可以通过vagrant up就可以重新启动了。

关于作者

作者李俱顺(kevin at yeeuu dot com),杭州云柚科技有限公司联合创始人、架构师。关注IoT、云计算和安全相关方向。

0 个评论

要回复文章请先登录注册