CoreOS集群的安装方式 :

我们专门做了一个菜单,以满足各种场景部署的需要。
这里写图片描述
在Yoo-Installer里,我分了6个菜单,适合四种使用场景。
分别对应于官方的CoreOS集群架构

Docker Dev Environment on Laptop
Small Cluster
Easy Development/Testing Cluster

Production Cluster with Central Services
参考: https://coreos.com/os/docs/latest/cluster-architectures.html
这里写图片描述
第一种,就是开发环境的方式。我们在开发时,可以使用这种方式来开发
这里写图片描述
小规模集群的方式。每个节点都安装了etcd服务,任何一个节点故障都不会影响整体服务
这里写图片描述
开发测试集群。
这种方式的优点是不用额外部署etcd服务,需要几个节点来测试,就加入几个,非常灵活。但是不是高可用的架构。因为如果etcd死了,整体集群就不能工作了。所以,非常适合开发测试使用
这里写图片描述
线上生产环境集群架构。这种基本上就可以做到高可用了。不同服务资源之间可以使用Meta信息进行标识
那么这些代码是如何实现的呢
这里写图片描述

主要是通过cloud-config-url参数的设置来改变不同的启动脚本,如cloud-config-url=http://192.168.1.10/config/develop-etcd/pxe.yml
注意,这里面有一个技巧。默认的话,coreos是没有密码的。有时安装时会出现一些问题,我会在启动参数里加上coreos.autologin标记,这样引导后,就可以直接进入系统,然后查找问题了。
详见代码: https://github.com/Goyoo/yoo-installer/blob/master/app/tftp/pxelinux.cfg/default
这样,我们就能顺利启动系统了。
启动后,我们需要安装系统到硬盘,下载并安装Kubernetes,并初始化一些系统环境等等
这样是怎么做的呢?
先看代码
这里写图片描述
这里我们在cloud-config-url里自定义了一个服务,叫setup.service。 等系统启动后,会下载相应的脚本:pxe.sh
详见代码:
https://github.com/Goyoo/yoo-installer/blob/master/app/views/script/pxe.ejs
脚本分为几个部分
1.同步系统时间,新机器可能时钟有问题,这样会导致coreos不能正常安装
2.硬盘分区,这个要根据自己的机器情况进行处理
3.系统的安装
4.离线下载已经准备好的Kubernetes,并放到相应的系统目录里
5.其它脚本
6.通知Yoo-Installer已经安装完成并重启

那么,我们对于Kubernetes是如何自动处理的呢
在CoreOS里,有一个Cloud-init文件,在每次系统启动时,它便会自动执行。我们利用了这个文件,自动搭建了Kubernetes的服务。
比如这个Central的YAML文件

https://github.com/Goyoo/yoo-installer/blob/master/app/views/yml/production-central.ejs

2.工作原理
……
3.具体安装过程
/….
4.采过的坑
….

Logo

开源、云原生的融合云平台

更多推荐