Vagrant 如何隔离流浪群集上的节点?
我从Vagrant开始,试图设计一个包含入口节点和其他两个节点的集群。它应该是这样的:Vagrant 如何隔离流浪群集上的节点?,vagrant,vagrantfile,libvirt,Vagrant,Vagrantfile,Libvirt,我从Vagrant开始,试图设计一个包含入口节点和其他两个节点的集群。它应该是这样的: -------- eth1 -------- eth0 | | 17.6.17.10 | | internet ------->| master |-------|------------| slave1 | |
-------- 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 |
| |
--------
我的档案是:
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
我的配置创建了三台具有共享网络的机器,所有这些机器都连接到internet。我想隔离slave1和slave2,并将master用作internet连接的网关。我该怎么做呢?我找到了答案
可能无法隔离,因为流浪汉需要该接口。我找到了一个响应
可能无法隔离,因为Vagrant需要该接口。您只需删除每个主机的默认网络路由,并添加与所需路由配置相对应的自己的路由,请参阅 例如,要隔离从属设备并通过主设备路由流量,您需要执行以下操作:
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
对于最终配置,您需要设置一个负载平衡器,并可能调整路由规则,在主机上添加一个额外的接口等,这完全取决于您想做什么,我猜。您只需要删除每个主机的默认网络路由,并添加与您想要的路由配置相对应的自己的路由,比照 例如,要隔离从属设备并通过主设备路由流量,您需要执行以下操作:
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
对于最终配置,您需要设置负载平衡器,并可能调整路由规则,在主机上添加额外的接口等,这完全取决于您想做什么,我猜。您可以更改路由规则以模拟真实的word示例,请参阅下面的答案!您可以更改路由规则以模拟真实的word示例,请参见下面我的答案!