天天看點

使用rancher 搭建docker叢集1.安裝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
           
  • 傳回主界面即可看到添加成功