Vagrant を使用して 4 つの CentOS VM のクラスターを作成したいと考えています。Windows マシンに Vagrant と VirtualBox をインストールし、CentOS 64 ボックスをダウンロードしてクラスターを作成しました。手順:
- 「vagrant box add --name centos65-base」を実行します。
- 「vagrant init centos65-base」を実行します。
VagrantFile を次のように編集します。
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.define :node1 do |node1_config| node1_config.vm.box = "centos65_base" node1_config.vm.network "private_network", ip: "10.0.2.5" end config.vm.define :node2 do |node2_config| node2_config.vm.box = "centos65_base" node2_config.vm.network "private_network", ip: "10.0.2.6" end config.vm.define :node3 do |node3_config| node3_config.vm.box = "centos65_base" node3_config.vm.network "private_network", ip: "10.0.2.7" end config.vm.define :node4 do |node4_config| node4_config.vm.box = "centos65_base" node4_config.vm.network "private_network", ip: "10.0.2.8" end end
「vagrant up」を実行する
4番目のステップの最後に、クラスタの4つのノードが構成され、起動しました。これは素晴らしいことです。私はそれらにsshしました。VMからwww.google.comとホストマシンにpingを正常に実行できました。ただし、クラスタ内の1つのノードから別のノードにpingを実行すると、「宛先ホストに到達できません」エラー。使用中のネットワーク アダプタを確認するために、「ifconfig」を実行しました。eth0 は DHCP に使用されており、eth1 は静的 IP に使用されています。
[root@vagrant-centos65 vagrant]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:4F:B8:06
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe4f:b806/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1142 errors:0 dropped:0 overruns:0 frame:0
TX packets:672 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:106471 (103.9 KiB) TX bytes:84099 (82.1 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:EC:A0:37
inet addr:10.0.2.5 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feec:a037/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:268 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:27329 (26.6 KiB) TX bytes:482 (482.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:784 (784.0 b) TX bytes:784 (784.0 b)
これを修正する方法をご存知ですか? クラスター内の VM が相互に通信できるようにする必要があります。
答え1
私は、静的 IP 構成に 10.0.2.5 - 10.0.2.8 ではなく 192.168.33.10 - 192.168.33.13 の IP アドレス範囲を使用することでこの問題を解決しました。
DHCP もデフォルトで Vagrant で同じ範囲を使用するため、10.0.2.x の範囲を使用すると競合が発生すると思われます。