Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vagrant 如何隔离流浪群集上的节点?_Vagrant_Vagrantfile_Libvirt - Fatal编程技术网

Vagrant 如何隔离流浪群集上的节点?

Vagrant 如何隔离流浪群集上的节点?,vagrant,vagrantfile,libvirt,Vagrant,Vagrantfile,Libvirt,我从Vagrant开始,试图设计一个包含入口节点和其他两个节点的集群。它应该是这样的: -------- eth1 -------- eth0 | | 17.6.17.10 | | internet ------->| master |-------|------------| slave1 | |

我从Vagrant开始,试图设计一个包含入口节点和其他两个节点的集群。它应该是这样的:

                   --------      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示例,请参见下面我的答案!