文章目錄
- 建立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通了

##再次驗證
: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;