Docker 集群网络规划与 VM 网络配置

我们准备做一个 Docker Swarms 的集群方案,需要 PC 或者 VM 来进行部署。老师说:网络规划是工作开始的第一步。我采用 VM 进行集群部署,所以本文主要介绍 VM 网络配置。如果你电脑多并采用 PC 进行集群部署,可以忽略本文直接看下一篇。

安装 VitualBox

官方下载地址: https://www.virtualbox.org/ 不同系统下载不同的版本哦!
检查电脑 CPU 虚拟化是否有开启,没有开启的话虚拟机只能装32位系统,那就不方便后续操作了。

下载并安装 Ubuntu service 16.04

官方下载地址: https://www.ubuntu.com/download/server 下载64位的版本

关于虚拟机网络设置

装好虚拟机软件和 ubuntu 系统后我们接下来就要配置网络,配置网络前先来了解一下虚拟机网络设置的一些知识:通常,虚拟化软件创建的虚拟机或有容器默认有一块虚拟网卡,虚拟机网卡默认网络配置是 NAT ,而虚拟机网络通常有四种设置方式:

NAT 网络地址转换模式(NAT,Network Address Translation)
Bridged Adapter 桥接模式
Internal 内部网络模式
Host-only Adapter 主机模式

当前主机与虚拟机的通讯关系如下图:

方式: host->vm vm->host vm -> vm vm -> 外网
NAT x? x ?
Bridged x? ?
Internal x x x
Host-only ? ? ? ?

其中:
host 表示当前主机,vm 表示 host 中的虚拟机或容器
x 表示绝望,不可能通讯
x? NAT 设置端口映射可以通过防火墙限定访问
√ 同网段可以访问
? 熟悉网段、网关、路由等,可自由配置

VirtualBox 网络基本设置

为了满足多个虚拟机之间通讯,需要在 VirtualBox 添加虚拟网卡,要求虚拟机都能访问外部网络,虚拟机之间可以内部通讯。每个虚拟机有两个网卡:
第一块配置 NAT 支持外网访问
第二块配置为内部网络(192.168.56.1), 支持内部通讯
注意:网卡顺序是重要的!!!

VirtualBox 全局设置

步骤: VirtualBox 菜单 -> 管理 -> 全局设定 -> 网络

添加NAT网络,添加host-only网络

步骤:选中已经安装好的虚拟机 -> 虚拟机为关机状态 -> 设置 -> 网络


高级设置使用默认设置就可以了

ubuntu虚拟机中设置Host-only静态IP:

1
sudo vim /etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface(NAT)
auto enp0s3
iface enp0s3 inet dhcp
# 增加的Host-only静态IP设置 (enp0s8 是根据拓扑关系映射的网卡名称(旧规则是eth0,eth1))
# 可以通过 ```ls /sys/class/net```查看,是否为enp0s8
auto enp0s8
iface enp0s8 inet static
address 192.168.56.100
netmask 255.255.255.0
gateway 192.168.56.1

重启虚拟机配置生效
然后再重启网卡(重启会失败,但却能连接外网,暂未找到原因)

1
sudo /etc/init.d/networking restart

查看虚拟机网卡 ifconfig

其中 enp0s3 为第一张网卡,enp0s8 为第二张网卡

检查网络是否配置成功

1、检查虚拟机是否可以连接外网

1
ping www.baidu.com

2、检查主机是否也能 ping 通虚拟机,能否通过 SSH 客户端登录(在当前主机输入)

1
ping 192.168.56.100

1
ssh aidan@192.168.56.100

安装 docker

请移步到上一批文章《Docker 简单介绍和安装》

安装 manager、worker1、worker2 主机

关闭 base 虚拟机,使用 VirtualBox 复制虚拟机
步骤: 选中 base 虚拟机 -> 控制 -> 复制

必须勾选重新初始化有所网卡的 MAC 地址
启动 manager 虚拟机,并修改网络地址

1
sudo vim /etc/network/interfaces

重启网卡,并查看 IP 地址

1
sudo /etc/init.d/networking restart

1
ifconfig

worker1、worker2 虚拟机如同以上操作!

Docker 集群网络通讯图


如果不希望 worker 访问外部,直接去掉 NAT 的网卡就可以了

完!

坚持原创技术分享,您的支持将鼓励我继续创作!