Я начинаю с 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 |
| |
--------
Мой 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 в качестве шлюза для интернет-соединений. Как мне это сделать?
2 ответа
Вам просто нужно удалить сетевые маршруты по умолчанию для каждого хоста и добавить свои собственные, которые соответствуют желаемой конфигурации маршрутизации, см. примеры в этой статье.
Например, чтобы изолировать ведомое устройство и направить трафик через ведущее устройство, вам необходимо сделать что-то вроде следующего:
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 нуждается в этом интерфейсе.
Похожие вопросы
Новые вопросы
vagrant
ОБЩАЯ ПОДДЕРЖКА ВАГРАНТА ОФФТИНА. Вопросы поддержки можно задать на https://superuser.com. Vagrant - это инструмент командной строки для предоставления виртуализированных сред на базе различных поставщиков, включая VirtualBox, VMware и AWS.