如何隔离 Vagrant 集群上的节点?
How to isolate a node on a Vagrant cluster?
我从 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 作为互联网连接的网关。我该怎么做?
我找到了回复 here。
可能无法隔离,因为 Vagrant 需要那个接口。
你只需要删除每台主机的默认网络路由,并添加你自己的与你想要的路由配置相对应的路由,cf。 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
对于最终配置,您需要设置一个负载平衡器并可能调整路由规则,在主服务器上添加一个额外的接口等,我猜完全取决于您想要做什么。
我从 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 作为互联网连接的网关。我该怎么做?
我找到了回复 here。
可能无法隔离,因为 Vagrant 需要那个接口。
你只需要删除每台主机的默认网络路由,并添加你自己的与你想要的路由配置相对应的路由,cf。 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
对于最终配置,您需要设置一个负载平衡器并可能调整路由规则,在主服务器上添加一个额外的接口等,我猜完全取决于您想要做什么。