docker 集群网络规划与 VM 网络配置
2016-12-21 16:08
330 查看
docker 集群网络规划与 VM 网络配置
【摘要】使用 K8s(Kubernetes)或 docker swarm 都需要 pc 或 vm 的集群,网络规划是开始工作的第一步。本文目标是在单机上使用 VirtualBox 创建 CentOS 7 服务器集群,特别是网络配置的基本知识,以及安装 CentOS 服务器。docker 集群网络规划与 VM 网络配置
1机器要求
2网络配置基础知识
1 虚拟机网络配置
2 VirtualBox 网络基本设置
3CentOS 虚拟机群网络设置
1 安装基础 CentOS 7 服务器
2 安装 manager 主机
3 安装 worker1worker2 主机
4网络配置结果与更复杂的场景
1 单物理机虚拟机通讯
2 虚拟机要在局域网内跨物理机通讯如何实现呢
5小结
1、机器要求
使用 K8s 或 Docker Swarm 做容器服务编排(Orchestration)12,至少需要三台以上服务器。如果你只有一台机器,那就只有用虚拟机了。你的机器应用满足:可以上网(有线、无线均可)
2 核(4 线程)CPU,最好 4 核(8 线程)
8G 内存,最好 16 G 或以上
可以安装运行 VirtualBox 等虚拟化软件
主机是 Linux ,自带 ssh 工具。主机是 Windows,则需要安装 ssh 工具,如:Git Bash 或 PuTTY。主机是 Windows 务必不要启动 CentOS 图形桌面,资源不足。
Git Bash 下载与安装:Git for windows
2、网络配置基础知识
通常,VirtualBox 虚拟化软件还是 Docker 引擎(engine)创建的虚拟机或容器,默认有一块虚拟网卡。虚拟机网卡默认网络配置是 NAT ,而 Docker 是 Bridge(网桥)。NAT 与 Bridge 有哪些区别呢?2.1 虚拟机网络配置
虚拟机网络设置常见有四种方式3:NAT 网络地址转换模式(NAT,Network Address Translation)
Bridged Adapter 桥接模式
Internal 内部网络模式
Host-only Adapter 主机模式
为了简单解释网络的作用,host 表示当前主机,vm 表示 host 中的虚拟机或容器,可以用下表表示通讯关系:
方式 | host->vm | vm->host | vm -> vm | vm -> 外网 |
---|---|---|---|---|
NAT | x? | OK | x | ? |
Bridged | x? | OK | OK | ? |
Internal | x | x | OK | x |
Host-only | ? | ? | ? | ? |
x表示绝望,不可能通讯
x?NAT 设置端口映射可以通过防火墙限定访问
OK同网段可以访问
?熟悉网段、网关、路由等,可自由配置
其中,Bridged 是网络二层(链路层)协议,vm 与 host 在局域网中是平等的
为了满足复杂的通讯需求,我们需要设置一块以上网卡,配置不同方式。
2.2 VirtualBox 网络基本设置
为了满足多个虚拟机之间通讯,所以 VirtualBox 必须添加一块虚拟网卡,例如:在
VirtualBox 菜单 -> 管理 -> 全局设定 -> 网络下添加网卡:
这样,设定了新的网卡,有了新网段
192.168.56.1/24,host 有了新网址
192.168.56.1。如果你希望虚拟机自动获取地址,就设置 DHCP 服务器。否则,虚拟机需要设置静态 IP 地址。
在 windows 系统中使用
ipconfig就看到这块网卡。
在这个网卡上设置网桥? 当然,我们并不希望用它访问外网。
3、CentOS 虚拟机群网络设置
假设要安装三台相互可通讯的虚拟机 manager1, worker1, worker2,要求是 :都能访问外网
manager1, worker1, worker2 与 host 可内部通讯。
显然,仅使用默认 NAT 是不可行的,必须使用刚才添加的虚拟网卡。这样每个虚拟机有两个网卡:
第一块配置 NAT 支持外网访问
第二块配置为内部网络(192.168.56.0), 支持内部通讯
注意:网卡顺序是重要的!!!
3.1 安装基础 CentOS 7 服务器
用 VirtualBox 创建centos-base虚拟机,设置需求:内存设 1G,硬盘 30G,第二块网卡 host-only
挂载
CentOS-7-x86_64-Minimal-????.iso光盘镜像
设置时区、国家、打开网络、设主机名(
centos-base)、root密码,静待安装完成。重启动!
升级内核
yum install wget获取 wget
【建议配置】配置 yum 阿里云源
yum update完成版本升级
以上步骤可参考:VirtualBox 安装 Centos 7 笔记
网络检查
使用
nmtui文本界面网络管理工具网卡,如果只有一个网卡
shutdown -h now关机
给虚拟机添加网卡(选虚拟机,如下图设置)
重启动虚拟
4000
机
登陆后, 输入
nmtui
Edit a connection
选不是 enp0s3 的网卡, Edit…
如图设置网卡 IP/Mask 例如:192.168.56.250/24,并选择autoConnection(不能设置网关等,否则…)
然后,activate a connection
Quit
检查 IP 地址
ip address
ping 主机的 IP,如 192.168.56.1,www.sysu.edu.cn
主机上也能 ping 通虚拟机,如 192.168.56.250
SSH 客户端登陆
这是最重要步骤,通过 ssh,主机可以与虚拟机相互拷贝文件,粘贴学习资料上的命令。
运行 Git bash,用 ssh 登陆
ssh root@192.168.56.250
3.2 安装 manager 主机
复制 base 虚拟机base 关机
使用 Vbox 复制虚拟机,VirtualBox 控制 -> 复制
务必初始化mac地址!!!
启动新虚拟机
使用
nmtui修改网络地址(192.168.58.110/24)与主机名称(manager)
deactive/active 该网卡,使新地址生效
使用
ip address检查 IP 地址
安装 docker 引擎
使用 ssh 连接该虚拟机:
参考:centos 7 安装 Docker
如果官方下载特别慢,建议使用 阿里云镜像安装
Docker Engine 镜像源站
3.3 安装 worker1,worker2 主机
如法复制虚拟机,同安装 manager4、网络配置结果与更复杂的场景
4.1 单物理机、虚拟机通讯
本文上述网络可以用一张图表示:显然,如果不希望 worker 访问外部,直接去掉 NAT 的网卡就搞定了。
4.2 虚拟机要在局域网内跨物理机通讯如何实现呢?
这需要根据通讯需求和安全需要设置,并没有统一而简单的方案,需要您有强大的网络、路由和防火墙方面的知识。如果是小规模集群,大致有两个方案。网桥方案
主机只用一块网卡,主机内虚拟机采用网桥,则主机与虚拟机的地址、网关可采用相同的方案。
NAT转发方案
Oracle 在 多个Virtualbox 虚拟机间 跨不同物理宿主机进行通信
5、小结
计算机网络、通讯与安全是一门大学科,这里介绍内容仅可满足一般集群部署需要,对于学习部署 docker 集群够用了。【完】
【参考】
Docker Clustering Tools Compared: Kubernetes vs Docker Swarm https://technologyconversations.com/2015/11/04/docker-clustering-tools-compared-kubernetes-vs-docker-swarm/ ↩
【翻译】Docker 集群工具比对:Kubernetes vs Docker Swarm http://chuansong.me/n/1947305 ↩
VirtualBox虚拟机网络设置(四种方式) https://www.douban.com/group/topic/15558388/ ↩
相关文章推荐
- docker深入2-使用自定义的网络来配置zookeeper集群
- 网络设备规划、配置与管理大全(Cisco版)
- vm linux 网络配置 vm 局域网的虚拟
- VirtualBox下计算集群的建立和网络配置
- Oracle VM VirtualBox manager安装linux,配置linux网络时找不到eth0的解决办法
- Windows集群网络配置最佳做法
- Docker Network Configuration 高级网络配置
- 网络设备规划、配置与管理读书笔记(7)- 交换机的端口与连接
- 网络设备规划、配置与管理读书笔记(6)- 交换机概述之交换机的主要参数
- 红帽GFS集群文件系统配置指南 linux搭建gfs系统--iscsi+GFS实现网络存储
- VM NAT方式配置网络
- SAN iSCSI网络存储配置+ iSCSI网络集群
- 网络IP规划、常见网络设备与核心配置
- RAC -- 规划配置网络环境
- vm linux 网络配置 vm 局域网的虚拟
- Linux高性能集群常用服务简介与配置(二)——NFS(网络文件系统)
- 在Centos6.3中桥接方式配置vm virtualbox中的系统网络
- 在VM上安装centOS后的网络配置
- 使Docker提供对外服务的网络配置(桥接与端口)