三者都需要从 GitHub 获取已经发布的 LAIN 版本源代码:
https://github.com/laincloud/lain/releases
下载源码后在目标机器上解压即可。
tar xf lain-VERSION.tar.gz
- Linux / MacOS
- 能够连接到互联网
- VirtualBox 5.1.22 r115126 (Qt5.6.2)
- Vagrant 1.9.4
- 最少 2G 剩余内存(如果需要拉起多个节点,最少 3G)
cd lain-VERSION
vagrant up --provision
启动耗时取决于 vagrant box 下载时间, 启动完成后 vagrant 会自动
执行bootstrap
进行初始化, 初始化需要至少20分钟,取决于网络速度。
初始化过程为集群默认配置vip=192.168.77.201
如果出现以下错误:
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was: mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant The error output from the command was: /sbin/mount.vboxsf: mounting failed with the error: No such device
这个错误是因为宿主机的 Virtual Box 的 Guest Additions 与
laincloud/centos-lain
box 已安装的 Guest Additions 版本不一致引起的,导致无法创建/vagrant
这个同步 目录。请修改工程根目录下的 Vagrantfile,禁止宿主机强行安装新版本的 Guest Additions, 即添加如下配置:config.vbguest.auto_update = false
vagrant up node2
# 待 node2 启动后
[vagrant@node1 ~]$ cd /vagrant
[vagrant@node1 ~]$ sudo lainctl node add -p playbooks node2:192.168.77.22
# root 密码为 vagrant
- CentOS 7.2
- NTP 服务保证节点间时间一致
- 需要能访问到可用的 yum 源(包括 epel)
- 能够连接到互联网
- 各节点之间能够互相 ssh
- 各节点 hostname 不同
- 各个节点位于同一个路由器之内
cd lain-VERSION
# 选择一个同网段的未被使用的 IP 地址作为 VIP
sudo ./bootstrap -r docker.io/laincloud --vip={{ vip }}
国内用户建议通过 -m 参数使用 aliyun 的加速器下载镜像,使用方式为
sudo ./bootstrap -m https://l2ohopf9.mirror.aliyuncs.com \
-r docker.io/laincloud --vip=192.168.77.201
# 需要输入 root 密码
sudo lainctl node add -p playbooks {{ hostname }}:{{ ip }}
- CentOS 7.2
- NTP 服务保证节点间时间一致
- 需要能访问到可用的 yum 源(包括 epel)
- 能够连接到互联网
- 各节点之间能够互相 ssh
- 各节点 hostname 不同
- 各个节点位于同一个 VPC (或虚拟路由器)之内
cd lain-VERSION
# 如果 VPC 不对数据包进行来源 IP 限制(如青云)
sudo ./bootstrap -r docker.io/laincloud
# 如果 VPC 限制了数据包的来源 IP(如阿里云)
sudo ./bootstrap -r docker.io/laincloud --ipip
# 需要输入 root 密码
sudo lainctl node add -p playbooks {{ hostname }}:{{ ip }}
LAIN Console 组件是 LAIN 集群的控制台,配置域名解析后即可在浏览器访问
http://console.lain.local
echo "IP/VIP console.lain.local" >> /etc/hosts
如果出现 ssh-copy-id 失败,可能需要把 node1:/root/.ssh/lain.pub
内容放到 node2:/root/.ssh/authorized_keys
里,新增一行。当然原因可能是多样的,最有可能就是 lain-02 的 /root/.ssh
目录或者目录中的文件权限不对
本视频展示了集群的初始化、扩容过程。
视频地址:http://www.bilibili.com/video/av4671059/
详细的集群管理请见LAIN白皮书第四章:集群管理员手册。