天天看点

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

一、准备所需软件

操作系统:ubuntu-20.04.2-live-server-amd64.iso (可从国内镜像网站mirrors.163.com下载)

虚拟软件:VirtualBox-6.1.20-143896-Win.exe  VBoxGuestAdditions_6.1.20.iso 

    (可从官网download.virtualbox.org/virtualbox/下载)

终端软件:MobaXterm_Portable_v21.1.zip  MobaXterm_Installer_v21.1.zip

    (可从官网mobaxterm.mobatek.net下载MobaXterm Home版本)

docker安装包:containerd.io_1.4.6-1_amd64.deb  

              docker-ce_20.10.7~3-0~ubuntu-focal_amd64.deb  

              docker-ce-cli_20.10.7~3-0~ubuntu-focal_amd64.deb

       (可从国内镜像网站mirrors.163.com下载)

docker-compose:docker-compose-Linux-x86_64 (版本1.29.2)

       (从github上下载最新版本1.29.2,地址:https://github.com/docker/compose/releases)

         注意:我用家里的移动宽带上网始终打不开github网站,后用手机开热点,电脑连上手机热点,轻松下载了下来。

二、新建虚拟机svr00

虚拟机软件VirtualBox安装过程此处不详细描述,直接双击安装文件,一路默认设置即可。如过遇到问题,可自行百度解决。

1 新建虚拟电脑

在VirtualBox界面工具栏上,点击【新建】图标,在弹出窗口【新建虚拟电脑】中设置如下图2.1-1,点击【创建】,弹出窗口【创建虚拟硬盘】,设置如下图2.1-2,点击【创建】,即可完成虚拟电脑的创建。

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.1-1 新建虚拟电脑设置

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.1-2 创建虚拟硬盘设置

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.1-3 创建虚拟硬盘成功后的参数界面

2 配置虚拟电脑

1)设置CPU数量

【系统】【处理器】【处理器数量】设置为2

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.1 配置虚拟电脑的CPU数量

2)设置虚拟光盘ubuntu-20.04.2-live-server-amd64.iso

【存储】【存储介质】【控制器:SATA】右侧图标【添加虚拟光驱】,

在弹出的【虚拟光盘选择】窗口中,点击【注册】图标,指定ubuntu-20.04.2-live-server-amd64.iso文件,如图2.2.2-3 所示,点击【打开】,注册成功,如图2.2.2-4所示。

选中列表中的ubuntu-20.04.2-live-server-amd64.iso,点击【选择】,成功后如图2.2.2-5所示。

点击【OK】

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.2-1 存储设置界面

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.2-2 虚拟光盘选择界面

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.2-3 虚拟光盘文件注册界面

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.2-4 虚拟光盘文件注册成功界面

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.2-5 虚拟光盘文件设置成功界面

注意:记得将【存储介质】中的【控制器:IDE】删除掉。不然,在后面安装VirtualBox附件时,需要执行“sudo mount /dev/sr1 /mnt”,因为,/dev/cdrom指向的是/dev/sr0,而此时,sr0为【控制器:IDE】设备,这个设备里没有光盘文件。

3)设置桥接网络

【网络】【网卡1】【连接方式】选择:桥接网卡,如图2.2.3-1所示。

点击【OK】

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.3-1 网络设置界面

4)设置共享文件夹

【共享文件夹】列表右侧【添加共享文件夹】图标,在弹出的窗口中,指定共享文件夹路径,如图2.2.4-1所示。点击【OK】,成功后如图2.2.4-2所示。

点击【OK】

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.4-1 添加共享文件夹界面

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.2.4-2 共享文件夹设置界面

3 安装操作系统

设置完成后,即可启动虚拟电脑,进行操作系统安装。 

点击工具栏中【启动】图标,启动虚拟电脑,并加载虚拟光盘ubuntu-20.04.2-live-server-amd64.iso

Ubuntu服务器操作系统的安装过程,此处不做详述,有问题可自行百度查找解决方法。

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.3-1 设置完成后的参数界面

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.3-2 系统安装完成后的启动界面

4 安装VirtualBox附件VBoxGuestAdditions_6.1.20.iso

1)添加虚拟光盘文件VBoxGuestAdditions_6.1.20.iso

先要关闭虚拟电脑ub2004-svr00。

跟添加虚拟光盘ubuntu-20.04.2-live-server-amd64.iso一样,在【存储】设置界面里,将VBoxGuestAdditions_6.1.20.iso添加进去,成功后,如图2.4.1-1所示。

点击【OK】

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.4.1-1 设置虚拟光盘文件成功界面

2)在系统Ubuntu中执行安装命令

启动虚拟电脑ub2004-svr00。

挂载光驱设备到/mnt路径上。

$ sudo mount /dev/cdrom /mnt

$ ls /mnt

如果里面没有文件,可尝试执行“sudo mount /dev/sr1 /mnt”命令。

加载成功时,其文件如图2.4.2-1所示:

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图2.4.2-1 VirtualBox附件光盘加载成功后的文件

执行安装命令VBoxLinuxAdditions.run

$ sudo ./VBoxLinuxAdditions.run

Verifying archive integrity... All good.

Uncompressing VirtualBox 6.1.20 Guest Additions for Linux........

VirtualBox Guest Additions installer

Copying additional installer modules ...

Installing additional modules ...

VirtualBox Guest Additions: Starting.

VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel

modules.  This may take a while.

VirtualBox Guest Additions: To build modules for other installed kernels, run

VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>

VirtualBox Guest Additions: or

VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all

VirtualBox Guest Additions: Building the modules for kernel 5.4.0-74-generic.

This system is currently not set up to build kernel modules.

Please install the gcc make perl packages from your distribution.

VirtualBox Guest Additions: Running kernel modules will not be replaced until

the system is restarted

提示:缺少gcc make perl软件包!

安装gcc make perl软件包

$ sudo apt-get update

$ sudo apt-get install make gcc perl

安装成功后重新执行VBoxLinuxAdditions.run:

$ sudo ./VBoxLinuxAdditions.run

Verifying archive integrity... All good.

Uncompressing VirtualBox 6.1.20 Guest Additions for Linux........

VirtualBox Guest Additions installer

Removing installed version 6.1.20 of VirtualBox Guest Additions...

Copying additional installer modules ...

Installing additional modules ...

VirtualBox Guest Additions: Starting.

VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel

modules.  This may take a while.

VirtualBox Guest Additions: To build modules for other installed kernels, run

VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>

VirtualBox Guest Additions: or

VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all

VirtualBox Guest Additions: Building the modules for kernel 5.4.0-74-generic.

update-initramfs: Generating /boot/initrd.img-5.4.0-74-generic

VirtualBox Guest Additions: Running kernel modules will not be replaced until

the system is restarted

VirtualBox附件安装成功,重启虚拟电脑ub2004-svr00:

$ sudo reboot

启动成功后,登录虚拟电脑ub2004-svr00,查看共享文件夹是否自动挂载好:

$ mount

vmshare2021 on /media/sf_vmshare2021 type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=0,gid=998,dmode=0770,fmode=0770,tag=VBoxAutomounter)

$ ls -l /media/sf_vmshare2021

total 4

drwxrwx--- 1 root vboxsf 4096 Jun 14 00:26 docker20210613-ub20.04

注意:此处需要将用户添加进vboxsf组!

在virtualbox中设置共享文件夹后,共享文件夹的所有者是root,所属的组是vboxsf。用户登录是没有权限访问该文件夹的。所以,需要将用户添加进vboxsf组中,以获得访问权限。

命令格式:sudo usermod -aG vboxsf <username>

$ cat /etc/group

hexx:x:1000:

vboxsf:x:998:

$ sudo usermod -aG vboxsf hexx

$ cat /etc/group

hexx:x:1000:

vboxsf:x:998:hexx

重启一下即可生效。

5 安装docker和docker-compose

$ cd /media/sf_vmshare2021/docker20210613-ub20.04/

[email protected]:/media/sf_vmshare2021/docker20210613-ub20.04$ ls

compose-1.29.2

containerd.io_1.4.6-1_amd64.deb

docker-ce_20.10.7_3-0_ubuntu-focal_amd64.deb

docker-ce-cli_20.10.7_3-0_ubuntu-focal_amd64.deb

docker-ce-rootless-extras_20.10.7_3-0_ubuntu-focal_amd64.deb

docker-compose-Linux-x86_64-v1.29.2

docker-scan-plugin_0.8.0_ubuntu-focal_amd64.deb

$ sudo dpkg -i containerd.io_1.4.6-1_amd64.deb  docker-ce_20.10.7_3-0_ubuntu-focal_amd64.deb docker-ce-cli_20.10.7_3-0_ubuntu-focal_amd64.deb

Selecting previously unselected package containerd.io.

(Reading database ... 75625 files and directories currently installed.)

Preparing to unpack containerd.io_1.4.6-1_amd64.deb ...

Unpacking containerd.io (1.4.6-1) ...

Selecting previously unselected package docker-ce.

Preparing to unpack docker-ce_20.10.7_3-0_ubuntu-focal_amd64.deb ...

Unpacking docker-ce (5:20.10.7~3-0~ubuntu-focal) ...

Selecting previously unselected package docker-ce-cli.

Preparing to unpack docker-ce-cli_20.10.7_3-0_ubuntu-focal_amd64.deb ...

Unpacking docker-ce-cli (5:20.10.7~3-0~ubuntu-focal) ...

Setting up containerd.io (1.4.6-1) ...

Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.

Setting up docker-ce-cli (5:20.10.7~3-0~ubuntu-focal) ...

Setting up docker-ce (5:20.10.7~3-0~ubuntu-focal) ...

Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.

Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.

Processing triggers for man-db (2.9.1-1) ...

Processing triggers for systemd (245.4-4ubuntu3.4) ...

$ sudo docker version

Client: Docker Engine - Community

 Version:           20.10.7

 API version:       1.41

 Go version:        go1.13.15

 Git commit:        f0df350

 Built:             Wed Jun  2 11:56:38 2021

 OS/Arch:           linux/amd64

 Context:           default

 Experimental:      true

Server: Docker Engine - Community

 Engine:

  Version:          20.10.7

  API version:      1.41 (minimum version 1.12)

  Go version:       go1.13.15

  Git commit:       b0f5bc3

  Built:            Wed Jun  2 11:54:50 2021

  OS/Arch:          linux/amd64

  Experimental:     false

 containerd:

  Version:          1.4.6

  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d

 runc:

  Version:          1.0.0-rc95

  GitCommit:        b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7

 docker-init:

  Version:          0.19.0

  GitCommit:        de40ad0

$ sudo cp docker-compose-Linux-x86_64-v1.29.2 /usr/bin/docker-compose

$ ll `which docker-compose`

-rwxr-xr-x 1 root root 12737304 Jun 14 00:32 /usr/bin/docker-compose*

$ sudo docker-compose version

docker-compose version 1.29.2, build 5becea4c

docker-py version: 5.0.0

CPython version: 3.7.10

OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

6 设置IP地址

$ sudo vim /etc/netplan/00-installer-config.yaml

network:

   ethernets:

      enp0s3:

          #dhcp4: true

          dhcp4: no

          dhcp6: no

          addresses: [192.168.1.200/24]

          gateway4: 192.168.1.1

   version: 2

$ sudo netplan apply

三、复制虚拟电脑svr00为svr01

关闭虚拟电脑ub2004-svr00

1、复制虚拟电脑文件夹

1)将ub2004-svr00文件夹复制成ub2004-svr01文件夹

2)将ub2004-svr01文件夹中的

ub2004-svr00.vmdk  改名为 ub2004-svr01.vmdk

ub2004-svr00.vbox 改名为 ub2004-svr01.vbox

2、更改ub2004-svr01.vmdk的UUID

1)使用VBoxManage.exe internalcommands sethduuid重新设置vmdk的UUID

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage.exe internalcommands sethduuid D:\vm2021\ub2004-svr02\ub2004-svr01.vmdk

UUID changed to: 94e78577-c743-4186-aad2-499c23bbda73

2)修改ub2004-svr01.vbox文件中跟vmdk有关的uuid和location

    <MediaRegistry>

      <HardDisks>

        <HardDisk uuid="{94e78577-c743-4186-aad2-499c23bbda73}" location="ub2004-svr01.vmdk" format="VMDK" type="Normal"/>

      </HardDisks>

    </MediaRegistry>

        <StorageController name="SATA" type="AHCI" PortCount="3" useHostIOCache="false" Bootable="true" IDE0MasterEmulationPort="0" IDE0SlaveEmulationPort="1" IDE1MasterEmulationPort="2" IDE1SlaveEmulationPort="3">

          <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">

            <Image uuid="{94e78577-c743-4186-aad2-499c23bbda73}"/>

          </AttachedDevice>

        </StorageController>

      <SharedFolders>

        <SharedFolder name="vmshare2021" hostPath="D:\vm2021\vmshare2021" writable="true" autoMount="true"/>

      </SharedFolders>

3、更改虚拟机的UUID

1)新建一个虚拟机temp,获得其vbox文件中的Machine标签中的uuid

使用vbox新建一个虚拟电脑,名称任意,【类型】为Linux,【版本】为Ubuntu (64-bit),【虚拟硬盘】选不添加虚拟硬盘,创建即可。

然后打开其vbox文件,将其Machine标签中的uuid值拷贝出来用于更改拷贝虚拟机的vbox文件中Machine标签的uuid。

然后删除新建的虚拟电脑。

2)修改ub2004-svr01.vbox文件中Machine标签的uuid

<Machine uuid="{e728022c-c7e0-43f2-97e8-34cb70788087}" name="ub2004-svr01" OSType="Ubuntu_64" snapshotFolder="Snapshots" lastStateChange="2021-06-13T16:07:51Z">

注意:将【name】修改为ub2004-svr01

4、双击ub2004-svr01.vbox文件,即可在VirtualBox6中打开。

5、启动成功!

6、修改系统IP

$ sudo vim /etc/netplan/00-installer-config.yaml

network:

  ethernets:

    enp0s3:

      #dhcp4: true

      dhcp4: no

      dhcp6: no

      addresses: [192.168.1.201/24]

      gateway4: 192.168.1.1

  version: 2

$ sudo netplan apply

7、修改系统主机名

1)编辑/etc/cloud/cloud.cfg

$ sudo vim /etc/cloud/cloud.cfg

# This will cause the set+update hostname module to not operate (if true)

#preserve_hostname: false

preserve_hostname: true

2)编辑/etc/hosts

$ sudo vim /etc/hosts

127.0.1.1 svr01

3)设置主机名

$ sudo hostnamectl set-hostname svr01

4)重新虚拟电脑,使之生效

$ sudo reboot

四、复制虚拟电脑svr00为svr02

重复第三章中的步骤,复制出虚拟电脑ub2004-svr02,并将其IP设置为192.168.1.202,主机名设置为svr02.

五、复制虚拟电脑svr00为svr03

重复第三章中的步骤,复制出虚拟电脑ub2004-svr03,并将其IP设置为192.168.1.203,主机名设置为svr03.

六、总结

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图6-1 创建的虚拟电脑的文件目录

swarm集群实践(一):搭建环境一、准备所需软件二、新建虚拟机svr00三、复制虚拟电脑svr00为svr01四、复制虚拟电脑svr00为svr02五、复制虚拟电脑svr00为svr03六、总结

图6-2 创建的虚拟电脑在VirtualBox中的界面