swarm集群实践(一):搭建环境

一、准备所需软件

操作系统: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,点击【创建】,即可完成虚拟电脑的创建。

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

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

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

2 配置虚拟电脑

1)设置CPU数量

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

图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】

图2.2.2-1 存储设置界面

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

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

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

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

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

3)设置桥接网络

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

点击【OK】

图2.2.3-1 网络设置界面

4)设置共享文件夹

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

点击【OK】

 

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

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

3 安装操作系统

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

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

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

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

图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】

图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所示:

图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/
hexx@svr00:/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.

六、总结

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值