docker 集群网络规划与 VM 网络配置
来源:互联网 发布:企业网络搭建试题 编辑:程序博客网 时间:2024/05/20 10:52
docker 集群网络规划与 VM 网络配置
无论使用 K8s(Kubernetes)或 docker swarm 都需要 pc 或 vm 的集群,网络规划是开始工作的第一步。本文目标是在单机上使用 VirtualBox 创建 CentOS 7 服务器集群,包括网络配置的基本知识,单机需要的配置要求以及 CentOS 7 虚拟机网络配置等内容。
1、机器要求
使用 K8s 或 Docker Swarm 做容器服务编排(Orchestration)12,至少需要三台以上服务器。如果你只有一台机器,那就只有用虚拟机了。你的机器应用满足:
- 可以上网(有线、无线均可)
- 2 核(4 线程)CPU,最好 4 核(8 线程)
- 8G 内存,最好 16 G 或以上
- 可以安装运行 VirtualBox 等虚拟化软件
主机是Linux,基本配置足够。主机是 windows,基本配置,与虚拟机就必须使用 PuTTY。如果主机是windows 有四核16G,可以有一台安装图形界面 CentOS,便于开发、管理与调试。
2、网络配置基础知识
假设你的主机是 windows,除了安装 VirtualBox 外,还需要 PuTTY 这样的 ssh 客户端。
无论 VirtualBox 虚拟化软件还是 Docker 引擎(engine)都默认有一块虚拟网卡。VirtualBox 默认是 NAT ,而 Docker 是 Bridge(网桥)。NAT 与 Bridge 有哪些区别呢?
2.1 虚拟机网络配置
虚拟机网络设置常见有四种方式3:
- NAT 网络地址转换模式(NAT,Network Address Translation)
- Bridged Adapter 桥接模式
- Internal 内部网络模式
- Host-only Adapter 主机模式
为了简单解释网络的作用,host 表示当前主机,vm 表示 host 中的虚拟机或容器,可以用下表表示通讯关系:
其中:
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、虚拟机网络设置
假设要安装三台相互可通讯的虚拟机 manager1, worker1, worker2 , 其中 manager1 可访问外网,manager1, worker1, worker2 仅能与 host 通讯。显然,仅使用默认 NAT 是不可行的,必须使用刚才添加的虚拟网卡。而仅使用虚拟网卡又不能上网,worker 必要软件也都无法下载。因此,必须分二步完成安装,先使用默认 NAT 完成三台机器安装,然后再重新配置网络。
3.1 安装 CentOS 7
第一步,安装 worker1
- 用 VirtualBox 创建
centos7w1
虚拟机,内存设 1G,硬盘 20G - 挂载
CentOS-7-x86_64-Minimal-????.iso
光盘镜像 - 设置时区、国家、打开网络、设主机名(worker1)、root密码,静待安装完成。重启动!
- 登陆,升级内核
- yum update
以上步骤可参考:VirtualBox 安装 Centos 7 笔记
- 设置 ssh ? host 都无法访问,配也白搭。
shutdown -h now
关机- 给虚拟机添加网卡(选虚拟机,设置)
- 重启动
登陆后, 输入
nmtui
- Edit a connection
- 选不是 enp0s3 的网卡, Edit…
- 如图设置网卡 IP/Mask 地址/掩码(不能设置网关等,否则…)
- 然后,activate a connection
- Quit
检查 IP 地址
ip address
- ping 主机的 IP,如 192.168.56.1
- 主机上也能 ping 通虚拟机,如 192.168.56.101
- windows 安装 PuTTY, 下载
- 运行 putty ,搞定!(centos 7 默认启动 sshd 阿)
安装 docker 引擎
参考:centos 7 安装 Docker
由于使用 putty,命令可以粘贴了(鼠标右键)。由于是 root 帐号,不需要 sudo;由于是 worker ,也不需要下载加速。
第二步,安装 worker2
- worker1 关机
- 复制虚拟机,VirtualBox 控制 -> 复制
- 务必初始化mac地址
- 启动新虚拟机
- 修改网络地址(192.168.58.102/24)与主机名称(worker2)
- deactive active 该网卡
- 使用
ip address
检查 IP 地址
第三步,安装 manager1
同 worker2
如果机器资源足够,建议安装一台 CentOS 的图形界面机器,便于开发与管理。
4、网络配置结果与更复杂的场景
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 集群网络规划与 VM 网络配置
- vm-vm网络配置问题
- Docker集群网络部署
- VM 虚拟机网络配置
- VM Ubuntu网络配置
- docker【6】docker网络配置
- Docker 网络配置
- Docker 网络配置
- docker:网络基础配置
- docker 网络配置
- Docker-网络配置
- docker网络配置基础
- Docker 网络配置
- Docker网络配置
- docker高级网络配置
- Docker网络配置初探
- docker网络配置
- Docker网络配置
- java异常处理
- Java程序编译和运行的过程
- CS231n作业笔记1.6:神经网络的误差与梯度计算
- Ubuntu下shadowsocks无法修改配置文件,立即卡死[已解决]
- win64 IDEA meaven 配置安装Thrift自动生成代码到目录
- docker 集群网络规划与 VM 网络配置
- 动画黄金搭档:CADisplayLink & CAShapeLayer
- MYSQL运维与分析--使用帮助help
- 数字排列
- 从零开始做远控 第五篇 屏幕监控
- ora-12545:因目标主机或对象不存在
- myeclipse 自定义视图Customize Perspective 没有反应
- Activity的生命周期及异常情况分析
- 证书算法