天天看點

使用Vagrant搭建同一網段的三台centos機器叢集

文章目錄

  • ​​建立Vagrantfile檔案​​
  • ​​根據配置啟動建立三台機器​​
  • ​​驗證三台機器是否啟動成功​​
  • ​​登入節點 manager-node并驗證是否能夠ping通另外兩台機器​​
  • ​​驗證實體機是否能夠ping通三台虛拟機​​
  • ​​不能ping通情況[Request timeout for icmp_seq 0]​​
  • ​​解決方案​​
  • ​​修改root使用者,使得能夠在實體機上通過工具(Xshell或者SecureCRT)登入​​
  • ​​登入虛拟機修改root密碼​​
  • ​​允許通過工具(Xshell或者SecureCRT)通路​​
  • ​​通過工具(Xshell或者SecureCRT)進行登入​​
  • ​​其他兩個節點也是這樣設定,這裡忽略​​

建立Vagrantfile檔案

boxes = [
    {
        :name => "manager-node",
        :eth1 => "192.168.1.111",
        :mem => "1024",
        :cpu => "1"
    },
    {
        :name => "worker01-node",
        :eth1 => "192.168.1.122",
        :mem => "1024",
        :cpu => "1"
    },
    {
        :name => "worker02-node",
        :eth1 => "192.168.1.133",
        :mem => "1024",
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|

  config.vm.box = "centos/7"

   boxes.each do |opts|
      config.vm.define opts[:name] do |config|
        config.vm.hostname = opts[:name]
        config.vm.provider "vmware_fusion" do |v|
          v.vmx["memsize"] = opts[:mem]
          v.vmx["numvcpus"] = opts[:cpu]
        end

        config.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--memory", opts[:mem]]
                  v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
                  v.customize ["modifyvm", :id, "--name", opts[:name]]
        end

        config.vm.network :public_network, ip: opts[:eth1]      

備注

1.三台機器的ip分别是:
    192.168.1.111
    192.168.1.122
    192.168.1.133
2.每台機器的記憶體 1G,然後CPU 1核
    :mem => "1024",
    :cpu => "1"      

根據配置啟動建立三台機器

localhost:kubeadm-centos gaoxinfu$ pwd
/Users/gaoxinfu/docker/kubeadm-centos
localhost:kubeadm-centos gaoxinfu$ ls -la
total 8
drwxr-xr-x  4 gaoxinfu  staff   128 12 29 11:51 .
drwxr-xr-x  9 gaoxinfu  staff   288 12 29 11:34 ..
drwxr-xr-x  4 gaoxinfu  staff   128 12 29 11:36 .vagrant
-rw-r--r--@ 1 gaoxinfu  staff  1069 12 29 11:36 Vagrantfile
localhost:kubeadm-centos gaoxinfu$ 
localhost:kubeadm-centos gaoxinfu$ vagrant up
Bringing machine 'manager-node' up with 'virtualbox' provider...
Bringing machine 'worker01-node' up with 'virtualbox' provider...
Bringing machine 'worker02-node' up with 'virtualbox' provider...
==> manager-node: Clearing any previously set forwarded ports...
==> manager-node: Clearing any previously set network interfaces...
==> manager-node: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) en1: 雷靂1
3) en2: 雷靂2
4) bridge0
5) p2p0
6) awdl0
7) llw0
==> manager-node: When choosing an interface, it is usually the one that is
==> manager-node: being used to connect to the internet.
    manager-node: Which interface should the network bridge to? 1
==> manager-node: Preparing network interfaces based on configuration...
    manager-node: Adapter 1: nat
    manager-node: Adapter 2: bridged
==> manager-node: Forwarding ports...
    manager-node: 22 (guest) => 2222 (host) (adapter 1)
==> manager-node: Running 'pre-boot' VM customizations...
==> manager-node: Booting VM...
==> manager-node: Waiting for machine to boot. This may take a few minutes...
    manager-node: SSH address: 127.0.0.1:2222
    manager-node: SSH username: vagrant
    manager-node: SSH auth method: private key
    ==> manager-node: Machine booted and ready!
==> manager-node: Checking for guest additions in VM...
    manager-node: No guest additions were detected on the base box for this VM! Guest
    manager-node: additions are required for forwarded ports, shared folders, host only
    manager-node: networking, and more. If SSH fails on this machine, please install
    manager-node: the guest additions and repackage the box to continue.
    manager-node: 
    manager-node: This is not an error message; everything may continue to work properly,
    manager-node: in which case you may ignore this message.
==> manager-node: Setting hostname...
==> manager-node: Configuring and enabling network interfaces...
==> manager-node: Rsyncing folder: /Users/gaoxinfu/docker/kubeadm-centos/ => /vagrant
==> manager-node: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> manager-node: flag to force provisioning. Provisioners marked to run always will still run.
==> worker01-node: Clearing any previously set forwarded ports...
==> worker01-node: Fixed port collision for 22 => 2222. Now on port 2200.
==> worker01-node: Clearing any previously set network interfaces...
==> worker01-node: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) en1: 雷靂1
3) en2: 雷靂2
4) bridge0
5) p2p0
6) awdl0
7) llw0
==> worker01-node: When choosing an interface, it is usually the one that is
==> worker01-node: being used to connect to the internet.
    worker01-node: Which interface should the network bridge to? 1
==> worker01-node: Preparing network interfaces based on configuration...
    worker01-node: Adapter 1: nat
    worker01-node: Adapter 2: bridged
==> worker01-node: Forwarding ports...
    worker01-node: 22 (guest) => 2200 (host) (adapter 1)
==> worker01-node: Running 'pre-boot' VM customizations...
==> worker01-node: Booting VM...
==> worker01-node: Waiting for machine to boot. This may take a few minutes...
    worker01-node: SSH address: 127.0.0.1:2200
    worker01-node: SSH username: vagrant
    worker01-node: SSH auth method: private key
==> worker01-node: Machine booted and ready!
==> worker01-node: Checking for guest additions in VM...
    worker01-node: No guest additions were detected on the base box for this VM! Guest
    worker01-node: additions are required for forwarded ports, shared folders, host only
    worker01-node: networking, and more. If SSH fails on this machine, please install
    worker01-node: the guest additions and repackage the box to continue.
    worker01-node: 
    worker01-node: This is not an error message; everything may continue to work properly,
    worker01-node: in which case you may ignore this message.
==> worker01-node: Setting hostname...
==> worker01-node: Configuring and enabling network interfaces...
==> worker01-node: Rsyncing folder: /Users/gaoxinfu/docker/kubeadm-centos/ => /vagrant
==> worker01-node: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> worker01-node: flag to force provisioning. Provisioners marked to run always will still run.
==> worker02-node: Clearing any previously set forwarded ports...
==> worker02-node: Fixed port collision for 22 => 2222. Now on port 2201.
==> worker02-node: Clearing any previously set network interfaces...
==> worker02-node: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) en1: 雷靂1
3) en2: 雷靂2
4) bridge0
5) p2p0
6) awdl0
7) llw0
==> worker02-node: When choosing an interface, it is usually the one that is
==> worker02-node: being used to connect to the internet.
    worker02-node: Which interface should the network bridge to? 1
==> worker02-node: Preparing network interfaces based on configuration...
    worker02-node: Adapter 1: nat
    worker02-node: Adapter 2: bridged
==> worker02-node: Forwarding ports...
    worker02-node: 22 (guest) => 2201 (host) (adapter 1)
==> worker02-node: Running 'pre-boot' VM customizations...
==> worker02-node: Booting VM...
==> worker02-node: Waiting for machine to boot. This may take a few minutes...
    worker02-node: SSH address: 127.0.0.1:2201
    worker02-node: SSH username: vagrant
    worker02-node: SSH auth method: private key
==> worker02-node: Machine booted and ready!
==> worker02-node: Checking for guest additions in VM...
    worker02-node: No guest additions were detected on the base box for this VM! Guest
    worker02-node: additions are required for forwarded ports, shared folders, host only
    worker02-node: networking, and more. If SSH fails on this machine, please install
    worker02-node: the guest additions and repackage the box to continue.
    worker02-node: 
    worker02-node: This is not an error message; everything may continue to work properly,
    worker02-node: in which case you may ignore this message.
==> worker02-node: Setting hostname...
==> worker02-node: Configuring and enabling network interfaces...
==> worker02-node: Rsyncing folder: /Users/gaoxinfu/docker/kubeadm-centos/ => /vagrant
==> worker02-node: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> worker02-node: flag to force provisioning. Provisioners marked to run always will still run.
localhost:kubeadm-centos gaoxinfu$      

備注

1.使用vagrant相關指令(比如啟動 vagrant up)必須在Vagrantfile檔案所在目錄下執行;      

驗證三台機器是否啟動成功

至此我們的三台機器都已經啟動成功了      

登入節點 manager-node并驗證是否能夠ping通另外兩台機器

登入

localhost:kubeadm-centos gaoxinfu$ vagrant ssh manager-node
Last login: Sun Dec 29 03:43:59 2019 from 10.0.2.2
[vagrant@manager-node ~]$      

驗證是否能夠ping通另外兩台機器

[vagrant@manager-node ~]$ ping 192.168.122
PING 192.168.122 (192.168.0.122) 56(84) bytes of data.
From 10.56.191.1 icmp_seq=1 Time to live exceeded
From 10.56.191.1 icmp_seq=2 Time to live exceeded
From 10.56.191.1 icmp_seq=3 Time to live exceeded
From 10.56.191.1 icmp_seq=4 Time to live exceeded
From 10.56.191.1 icmp_seq=5 Time to live exceeded
From 10.56.191.1 icmp_seq=6 Time to live exceeded
^Z
[1]+  Stopped                 ping 192.168.122
[vagrant@manager-node ~]$ ping 192.168.1.133
PING 192.168.1.133 (192.168.1.133) 56(84) bytes of data.
64 bytes from 192.168.1.133: icmp_seq=1 ttl=64 time=1.45 ms
64 bytes from 192.168.1.133: icmp_seq=2 ttl=64 time=0.448 ms
64 bytes from 192.168.1.133: icmp_seq=3 ttl=64 time=0.444 ms
^Z
[2]+  Stopped                 ping 192.168.1.133
[vagrant@manager-node ~]$      

顯然都能夠登入并且ping通,其他兩個節點的登入和驗證 我們不再贅述

驗證實體機是否能夠ping通三台虛拟機

不能ping通情況[Request timeout for icmp_seq 0]

localhost:kubeadm-centos gaoxinfu$ ping 192.168.1.111
PING 192.168.1.111 (192.168.1.111): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
Request timeout for icmp_seq 7
Request timeout for icmp_seq 8
Request timeout for icmp_seq 9
Request timeout for icmp_seq 10
Request timeout for icmp_seq 11
Request timeout for icmp_seq 12
Request timeout for icmp_seq 13
Request timeout for icmp_seq 14
Request timeout for icmp_seq 15
Request timeout for icmp_seq 16
Request timeout for icmp_seq 17      

解決方案

1.打開你的Virtualbox對應的虛拟機器
  将對應的網卡連接配接方式,都改為橋接模式,然後再試試看,就可以ping通了      
使用Vagrant搭建同一網段的三台centos機器叢集

##再次驗證

:kubeadm-centos gaoxinfu$ ping 192.168.1.111
PING 192.168.1.111 (192.168.1.111): 56 data bytes
64 bytes from 192.168.1.111: icmp_seq=0 ttl=64 time=1.392 ms
64 bytes from 192.168.1.111: icmp_seq=1 ttl=64 time=0.410 ms
64 bytes from 192.168.1.111: icmp_seq=2 ttl=64 time=0.593 ms
^Z
[12]+  Stopped                 ping 192.168.1.111
localhost:kubeadm-centos gaoxinfu$ ping 192.168.1.122
PING 192.168.1.122 (192.168.1.122): 56 data bytes
64 bytes from 192.168.1.122: icmp_seq=0 ttl=64 time=0.548 ms
64 bytes from 192.168.1.122: icmp_seq=1 ttl=64 time=0.317 ms
64 bytes from 192.168.1.122: icmp_seq=2 ttl=64 time=0.459 ms
^Z
[13]+  Stopped                 ping 192.168.1.122
localhost:kubeadm-centos gaoxinfu$ ping 192.168.1.133
PING 192.168.1.133 (192.168.1.133): 56 data bytes
64 bytes from 192.168.1.133: icmp_seq=0 ttl=64 time=0.470 ms
64 bytes from 192.168.1.133: icmp_seq=1 ttl=64 time=0.363 ms
64 bytes from 192.168.1.133: icmp_seq=2 ttl=64 time=0.282 ms
64 bytes from 192.168.1.133: icmp_seq=3 ttl=64 time=0.441 ms
64 bytes from 192.168.1.133: icmp_seq=4 ttl=64 time=0.394 ms
64 bytes from 192.168.1.133: icmp_seq=5 ttl=64 time=0.656 ms
^Z
[15]+  Stopped                 ping 192.168.1.133
localhost:kubeadm-centos gaoxinfu$      
使得PasswordAuthentication yes 配置生效
将PasswordAuthentication no注釋掉      

修改root使用者,使得能夠在實體機上通過工具(Xshell或者SecureCRT)登入

登入虛拟機修改root密碼

localhost:kubeadm-centos gaoxinfu$ pwd
/Users/gaoxinfu/docker/kubeadm-centos
localhost:kubeadm-centos gaoxinfu$ vagrant ssh manager-node
Last login: Sun Dec 29 04:31:48 2019 from 10.0.2.2
[vagrant@manager-node ~]$ sudo -i
[root@manager-node ~]# passwd
Changing password for user root.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.      

允許通過工具(Xshell或者SecureCRT)通路

[root@manager-node ~]# vi /etc/ssh/sshd_config      
使用Vagrant搭建同一網段的三台centos機器叢集

使得配置生效

[root@manager-node ~]# systemctl restart sshd
[root@manager-node ~]#      

通過工具(Xshell或者SecureCRT)進行登入

使用Vagrant搭建同一網段的三台centos機器叢集
使用Vagrant搭建同一網段的三台centos機器叢集
使用Vagrant搭建同一網段的三台centos機器叢集
1.賬戶名:root,密碼:root  (密碼就是上面我們進行自己設定的,為了友善記憶,我設定的root;      

其他兩個節點也是這樣設定,這裡忽略

繼續閱讀