我们准备做一个 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:
|
|
|
|
重启虚拟机配置生效
然后再重启网卡(重启会失败,但却能连接外网,暂未找到原因)
查看虚拟机网卡 ifconfig
其中 enp0s3 为第一张网卡,enp0s8 为第二张网卡
检查网络是否配置成功
1、检查虚拟机是否可以连接外网
2、检查主机是否也能 ping 通虚拟机,能否通过 SSH 客户端登录(在当前主机输入)
|
|
安装 docker
请移步到上一批文章《Docker 简单介绍和安装》
安装 manager、worker1、worker2 主机
关闭 base 虚拟机,使用 VirtualBox 复制虚拟机
步骤: 选中 base 虚拟机 -> 控制 -> 复制
必须勾选重新初始化有所网卡的 MAC 地址
启动 manager 虚拟机,并修改网络地址
重启网卡,并查看 IP 地址
|
|
worker1、worker2 虚拟机如同以上操作!
Docker 集群网络通讯图
如果不希望 worker 访问外部,直接去掉 NAT 的网卡就可以了
完!