使用rancher 搭建docker集群

1.安装docker并配置工作目录

安装docker

以17.03版本为例

[root@Ieat4 ~]# curl https://releases.rancher.com/install-docker/17.03.sh | sh

测试安装是否成功

[root@Ieat4 ~]# sudo docker ps
CONTAINER ID        IMAGE      COMMAND      CREATED             STATUS      PORTS          NAMES

添加"youuser"用户到docker组

[root@Ieat4 ~]# sudo usermod -aG docker youuser

添加之后该用户使用docker命令可以不加sudo

设置docker服务开机启动

[root@Ieat4 ~]# systemctl enable docker.service

设置docker挂载盘

通常安装完之后docker的数据目录都在/var/lib/docker 文件夹下面,一般这个都在我们的系统盘下面,系统盘一般比较小而且一旦重装系统很可能面临数据丢失。所以要docker的工作目录映射到我们的数据盘下面,如下:

映射磁盘到目录

假如要映射到/data目录

如果映射到已有目录就跳过下面步骤

新建/data目录

[root@Ieat4 ~]# mkdir /data

假设我们有一块新磁盘尚未映射,下面查看所有磁盘

[root@Ieat4 ~]# fdisk -l

假设查看到/dev/sdb没有被映射,下面我们映射一下

[root@Ieat4 ~]# mount /dev/sdb /data

如果新磁盘有读写保护:

mount: /dev/sdb 写保护,将以只读方式挂载
mount: 文件系统类型错误、选项错误、/dev/sdb 上有坏超级块、
       缺少代码页或助手程序,或其他错误

       有些情况下在 syslog 中可以找到一些有用信息- 请尝试
       dmesg | tail  这样的命令看看。

我们先格式化

[root@Ieat4 ~]# mkfs.ext4 /dev/sdb

下面是结果

mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244154368 inodes, 1953234944 blocks
97661747 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4102029312
59608 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成       

接着再挂载

[root@Ieat4 ~]# mount /dev/sdb /data

查看是否挂载成功,发现已经成功,/data目录有7.3T的可用空间

[root@Ieat4 ~]# df -h /data
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb        7.3T   23G  6.9T    1% /data

设置开机自动挂载目录,否则重启主机之后,磁盘未自动挂载导致docker服务运行异常,通过往/etc/fstab中追加一条记录来实现

[root@Ieat4 ~]# echo '/dev/sdb /data     ext4    defaults   0 0' >> /etc/fstab

查看一下是否写入成功

[root@Ieat4 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu Sep 29 14:00:46 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        1 1
UUID=0a7a28d0-04ad-4ed2-912c-bf31fc53b13d /boot                   xfs     defaults        1 2
/dev/mapper/centos-home /home                   xfs     defaults        1 2
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb /data                    ext4    defaults        0 0

映射docker工作目录

停止docker服务

[root@Ieat4 ~]# service docker stop

将默认docker工作目录移动到/data下,不要使用cp,移动后/var/lib/docker目录应该不存在了才对

[root@Ieat4 ~]# sudo mv /var/lib/docker /data

结果我们要把docker工作目录放在/data/docker下面

[root@Ieat4 ~]# ls /data/docker
containers  image  network  overlay  plugins  swarm  tmp  trust  volumes

建立软连接,文件夹后面不要加 “/”,这样/var/lib/docker即为/data/docker的快捷方式,往/var/lib/docker写的话,实际写入了/data/docker目录

[root@Ieat4 ~]# ln -s /data/docker /var/lib/docker

查看软连接是否成功

[root@Ieat4 ~]# ls -la /var/lib/docker
lrwxrwxrwx 1 root root 12 7月  14 17:20 /var/lib/docker -> /data/docker

启动docker

sudo service docker start

查看是否正常工作

[root@Ieat4 ~]# sudo docker ps
CONTAINER ID        IMAGE      COMMAND      CREATED             STATUS      PORTS          NAMES

2.安装rancher-server

注意将所有主机的主机名设置好,一定不要用localhost、127.0.0.1等,以免引起集群网络通讯不通的问题

挑选一台主机192.168.0.101安装,在这里选择rancher-server的1.6版本

[root@Ieat4 ~]# sudo docker run --name rancher-server -d --restart=unless-stopped -p 18180:8080 rancher/server

等待一两分钟后,浏览器访问一下该主机的18180端口,即看到安装成功,进入界面后,按照提示添加主机即可

3.添加主机

比如要添加:192.168.0.106

  • 设置rancher-server ip地址,设置为其他主机可以访问的ip


    0.png
  • 点击添加主机


    1.png
  • 选择Custom -> 输入要添加主机的ip -> copy docker 命令


    2.png
  • 在要添加的主机上运行copy的docker命令

sudo docker run -e CATTLE_AGENT_IP="192.168.0.106"  --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10 http://192.168.0.101:18180/v1/scripts/78D7F7E9398F93E7A5B6:1514678400000:xCO6dhSSWPpVF3bGQXWWVZrvgvE
  • 返回主界面即可看到添加成功
上一篇:Direct Buffer vs. Heap Buffer


下一篇:redis几种数据导出导入方式