【问题标题】:How to isolate a node on a Vagrant cluster?如何隔离 Vagrant 集群上的节点?
【发布时间】:2019-10-02 04:52:25
【问题描述】:

我从 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 作为互联网连接的网关。我该怎么做?

【问题讨论】:

    标签: vagrant vagrantfile libvirt


    【解决方案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 
    
    

    对于最终配置,您需要设置负载均衡器并可能调整路由规则,在主服务器上添加额外的接口等,这完全取决于您想要做什么,我猜。

    【讨论】:

      【解决方案2】:

      我找到了回复here

      很可能无法隔离,因为 Vagrant 需要那个接口。

      【讨论】:

      • 您可以更改路由规则来模拟您的真实单词示例,请看下面我的回答!
      猜你喜欢
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 2020-09-13
      • 2020-12-25
      • 2015-01-18
      • 1970-01-01
      相关资源
      最近更新 更多