我从Vagrant开始,我正在尝试设计一个带有入口节点和其他2个节点的集群。它应该看起来像:
-------- eth1 --------
eth0 | | 17.6.17.10 | |
internet ------->| master |-------|------------| slave1 |
| | | 17.6.17.2 | |
-------- | eth0 --------
|
17.6.17.0/24 | eth0 --------
| 17.6.17.3 | |
|------------| slave2 |
| |
--------
我的Vagrantfile是:
Vagrant.configure("2") do |config|
config.vm.box = "generic/ubuntu1604"
config.vm.define "master", primary: true do |master|
master.vm.network "private_network", ip: "17.6.17.10"
master.vm.hostname = "master"
end
config.vm.define "slave1" do |slave1|
slave1.vm.network "private_network", ip: "17.6.17.2"
slave1.vm.hostname = "slave1"
end
config.vm.define "slave2" do |slave2|
slave2.vm.network "private_network", ip: "17.6.17.3"
slave2.vm.hostname = "slave2"
end
end
我的配置创建了三台带有共享网络的计算机,所有这些计算机都连接到了互联网。我想隔离slave1和slave2并使用master作为Internet连接的网关。我该怎么办?
答案 0 :(得分:1)
您只需要删除每个主机的默认网络路由,并添加与您想要的路由配置相对应的自己的网络,请参见。 examples in this writeup。
例如,要隔离从站并通过主站路由流量,您需要执行以下操作:
config.vm.define "slave1" do |slave1|
slave1.vm.network "private_network", ip: "17.6.17.2"
slave1.vm.hostname = "slave1"
slave1.vm.provision "shell", run: "always", inline: "route del default"
slave1.vm.provision "shell", run: "always", inline: "route add default gw 17.6.17.10"
end
对于最终配置,您需要设置负载均衡器并可能调整路由规则,在主服务器上添加其他接口,这完全取决于您要执行的操作。
答案 1 :(得分:0)
我找到了回复here。
很可能无法隔离,因为Vagrant需要该接口。