使用Vagrant搭建同一网段的三台centos机器集群

创建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]
      end
  end

end

备注

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通了

在这里插入图片描述

##再次验证


localhost: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

在这里插入图片描述
使得配置生效

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

通过工具(Xshell或者SecureCRT)进行登录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.账户名:root,密码:root  (密码就是上面我们进行自己设置的,为了方便记忆,我设置的root;

其他两个节点也是这样设置,这里忽略

发布了261 篇原创文章 · 获赞 37 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/u014636209/article/details/103752194