<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 VirtualBox + Vagrant + Centos 搭建虛擬機(jī)集群

          共 7235字,需瀏覽 15分鐘

           ·

          2021-11-14 10:08

          最近學(xué)習(xí) ElasticSearch、k8s 這些技術(shù)的時(shí)候,發(fā)現(xiàn)都要用到集群環(huán)境,所以這兩天利用空閑時(shí)間,使用 VirtualBox + Vagrant + Centos 在自己的電腦上搭建了一個(gè)虛擬機(jī)集群。今天把搭建步驟整理一下,寫了這篇文章,搭建過(guò)程踩過(guò)的坑已經(jīng)用紅色進(jìn)行標(biāo)注,大家按需采用。

          一、使用 VirtualBox + Vagrant + Centos 快速創(chuàng)建一個(gè) linux 虛擬機(jī)

          VirtualBox:類似 VMware,是一個(gè)虛擬機(jī),平常大家用 VMware 比較多,我們這里使用 VirtualBox,這樣我們就可以使用 Vagrant 快速地幫我們搭建一個(gè)虛擬機(jī)了。

          Centos:類似 ubantu,是一個(gè) linux 操作系統(tǒng)。

          Vagrant:Vagrant 是一個(gè)操作 VirtualBox 虛擬機(jī)的工具。它有一個(gè)倉(cāng)庫(kù),里面有 centos 或者 ubuntu 等 Linux 操作系統(tǒng)鏡像,使用 Vagrant 可以拉取這些操作系統(tǒng)鏡像,然后將其安裝到 VirtualBox 虛擬機(jī)中,從而實(shí)現(xiàn)在虛擬機(jī)中快速安裝 Linux 操作系統(tǒng)。

          踩坑:在安裝 Vagrant 的時(shí)候,需要注意一點(diǎn),Vagrant 依賴 VirtualBox,我們需要在安裝 Vagrant 之前先安裝 VirtualBox,否則 Vagrant 安裝成功了也啟動(dòng)不起來(lái)。

          1、下載并安裝 VirtualBox (Windows 6.0.12 版本)

          下載 VirtualBox,官網(wǎng)地址:https://www.virtualbox.org/wiki/Download_Old_Builds_6_0

          VirtualBox 安裝之前,電腦需要開(kāi)啟 CPU 虛擬化,虛擬化步驟見(jiàn)圖1、2,虛擬化之后,重啟電腦。

          圖1
          圖2

          然后安裝 VirtualBox,雙擊 VirtualBox 安裝包,選擇 VirtualBox 的安裝地址,然后一路“下一步”即可完成安裝。

          圖3
          圖4

          2、在 VirtualBox 中安裝虛擬的 Linux 系統(tǒng)

          (1)原始安裝方式(太麻煩,不推薦)

          VirtualBox 安裝完成,此時(shí)桌面上會(huì)有一個(gè) VirtualBox 圖標(biāo),見(jiàn)圖5,雙擊鼠標(biāo)打開(kāi)它,進(jìn)入 VirtualBox 主界面,見(jiàn)圖6。

          圖5
          圖6

          如果我們想在 VirtualBox 里面新建一個(gè) Linux 虛擬機(jī),我們需要先在網(wǎng)上下載 Linux 相關(guān)鏡像(centos 鏡像或者 ubuntu 鏡像,.iso 文件)。

          然后在 VirtualBox 界面,點(diǎn)擊“新建”按鈕,按照步驟將剛才下載的 Linux 鏡像安裝進(jìn)來(lái),見(jiàn)圖6、圖7。

          圖7
          (2)使用 Vagrant 快速地在 VirtualBox 虛擬機(jī)里面安裝一個(gè) centos 操作系統(tǒng)

          使用原始方式在虛擬機(jī)中安裝 Linux 虛擬機(jī)太麻煩了,并不推薦,我們可以使用 Vagrant 快速地安裝一個(gè) Linux 操作系統(tǒng)(使用 Vagrant 的前提是已經(jīng)安裝了 VirtualBox,如果你使用 VMware 虛擬機(jī),就不能使用 Vagrant 了)。

          第一步:下載并安裝 Vagrant

          Vagrant 官方鏡像倉(cāng)庫(kù)地址:https://app.vagrantup.com/boxes/search,在這里面可以看到 ubuntu 和 centos 鏡像,見(jiàn)圖8。

          圖8

          Vagrant 官網(wǎng)下載地址:https://www.vagrantup.com/downloads,下載 Windows 64 位版本,見(jiàn)圖9。

          圖9

          然后安裝 Vagrant,雙擊 Vagrant 安裝包,見(jiàn)圖10,選擇 Vagrant 的安裝地址,然后一路“next”即可完成安裝。

          圖10
          圖11

          安裝完 Vagrant,需要重啟電腦,然后我們來(lái)驗(yàn)證一下 Vagrant 是否安裝成功。打開(kāi) ?windows cmd 窗口,執(zhí)行 vagrant 命令,如果有輸出 vagrant 的命令提示,說(shuō)明 Vagrant 安裝成功,見(jiàn)圖12。

          圖12
          第二步:打開(kāi) windows cmd 窗口,運(yùn)行 vagrant init centos/7 命令,初始化一個(gè) centos 操作系統(tǒng)
          圖13

          執(zhí)行完 vagrant init centos/7 這條命令,在 C:\Users\zxj 文件夾下會(huì)自動(dòng)生成一個(gè) Vagrantfile文件,見(jiàn)圖14。

          圖14
          第三步:打開(kāi) windows cmd 窗口,運(yùn)行 ?vagrant up 命令,啟動(dòng) VirtualBox 虛擬機(jī),系統(tǒng)用戶 root 的用戶密碼是 vagrant

          第一次執(zhí)行 vagrant up 命令,會(huì)從 Vagrant 倉(cāng)庫(kù)下載 Centos 鏡像,并初始化為 Centos 操作系統(tǒng)到虛擬機(jī)中,所以第一次啟動(dòng)會(huì)比較慢。

          圖15

          此時(shí)進(jìn)入 VirtualBox 主界面,發(fā)現(xiàn)已經(jīng)有一個(gè)正在運(yùn)行的虛擬機(jī),這個(gè)就是剛剛安裝了 centos 操作系統(tǒng)的虛擬機(jī)。

          圖16
          第四步:打開(kāi) windows cmd 窗口,運(yùn)行 vagrant ssh 命令,自動(dòng)使用 vagrant 用戶連接虛擬機(jī)。之后我們就可以在 cmd 中敲 linux 命令操作虛擬機(jī),不需要安裝虛擬機(jī)的客戶端啦
          圖17
          圖18
          第五步:運(yùn)行 exit 命令,斷開(kāi)與虛擬機(jī)的連接
          圖19

          之后,我們想要使用虛擬機(jī),就打開(kāi) windows cmd 窗口,執(zhí)行 vagrant up 連接虛擬機(jī),敲 linux 命令,執(zhí)行 exit 命令斷開(kāi)與虛擬機(jī)的連接,回到 cmd。

          3、虛擬機(jī)網(wǎng)絡(luò)設(shè)置

          (1)修改 Vagrantfile 文件

          虛擬機(jī)默認(rèn)的 ip 不是固定的,對(duì)于日常開(kāi)發(fā)很不方便,我們這里把虛擬機(jī) ip 配置成固定的。

          根據(jù) Vagrantfile 文件創(chuàng)建虛擬機(jī),這個(gè)文件中存儲(chǔ)著虛擬機(jī)的配置信息,我們修改 Vagrantfile 文件中的網(wǎng)絡(luò)配置,將虛擬機(jī)ip設(shè)置成是固定的。

          在 Vagrantfile 文件中增加一句:config.vm.network "private_network", ip: "192.168.56.10",見(jiàn)圖20,注意這個(gè)固定 ip 不是隨便配置的,需要和 VirtualBox 的虛擬網(wǎng)卡在一個(gè)網(wǎng)段。

          圖20

          怎么查看 VirtualBox 所在網(wǎng)段是多少呢?打開(kāi) windows cmd 窗口,運(yùn)行 ipconfig 命令,即可得到 VirtualBox 所在網(wǎng)段,見(jiàn)圖21,VirtualBox 所在網(wǎng)段為 192.168.52.xxx。

          圖21
          (2)打開(kāi) windows cmd 窗口,運(yùn)行 vagrant reload 命令,重啟 vagrant
          圖22
          (3)運(yùn)行 vagrant ssh 命令,連接上虛擬機(jī),執(zhí)行 ip addr,發(fā)現(xiàn)虛擬機(jī)的IP地址已經(jīng)改成192.168.56.10
          圖23
          (4)檢測(cè)windows和虛擬機(jī)能否ping通

          windows 機(jī)器 IP 地址為 192.168.137.85,虛擬機(jī) IP 地址為 192.168.56.10。

          在 windows 中 ping 虛擬機(jī),可以 ping 通,見(jiàn)圖24,在虛擬機(jī)中 ping windows,可以 ping 通,見(jiàn)圖25。

          圖24
          圖25

          二、搭建虛擬機(jī)集群

          首先我們需要寫一個(gè) Vagrantfile 文件,在里面指定要?jiǎng)?chuàng)建的三臺(tái)虛擬機(jī)的信息,然后使用這個(gè)文件來(lái)創(chuàng)建三臺(tái)虛擬機(jī)。

          1、編寫創(chuàng)建三個(gè)虛擬機(jī)的 Vagrantfile 文件,文件內(nèi)容如下所示,將該文件放在 D:\vagrant 這個(gè)目錄下。

          踩坑:我們創(chuàng)建三個(gè)虛擬機(jī),每個(gè)虛擬機(jī)內(nèi)存設(shè)置的是4G,三個(gè)虛擬機(jī)一共占有的內(nèi)存還是蠻大的,所以我們最好把它們安裝到一個(gè)內(nèi)部剩余比較大的盤,如果盤內(nèi)存不夠,虛擬機(jī)就會(huì)安裝失敗。

          踩坑:Vagrantfile 文件不能放在 D 盤根目錄下,如果放到 D 盤或者 C 盤根目錄下,只能創(chuàng)建第一個(gè) node,后面的 node 都不能創(chuàng)建,日志會(huì)被卡住。

          Vagrant.configure("2")?do?|config|
          ?(1..3).each?do?|i|
          ??config.vm.define?"node#{i}"?do?|node|
          ???#?設(shè)置虛擬機(jī)的Box
          ???node.vm.box?=?"centos/7"
          ???
          ???#?設(shè)置虛擬機(jī)的主機(jī)名
          ???node.vm.hostname?=?"node#{i}"
          ???
          ???#?設(shè)置虛擬機(jī)的IP
          ???node.vm.network?"private_network",?ip:?"192.168.56.#{99+i}",?network:?"255.255.255.0"
          ???
          ???#?VirtualBox?相關(guān)配置
          ???node.vm.provider?"virtualbox"?do?|v|
          ????#?設(shè)置虛擬機(jī)的名稱
          ????v.name?=?"node#{i}"
          ????#?設(shè)置虛擬機(jī)的內(nèi)存大?。?G)
          ????v.memory?=?4096
          ????#?設(shè)置虛擬機(jī)的CPU個(gè)數(shù)
          ????v.cpus?=?4
          ???end
          ??end
          ?end
          end

          2、打開(kāi) windows cmd 窗口,進(jìn)入 Vagrantfile 所在目錄,執(zhí)行 vagrant up,此時(shí) Vagrant 就會(huì)幫我們創(chuàng)建三個(gè)虛擬機(jī)。

          執(zhí)行 vagrant up ,此時(shí)在 Vagrantfile 的同級(jí)目錄下,自動(dòng)生成一個(gè) .vagrant 文件夾,見(jiàn)圖26。同時(shí)在 D:\vagrant 的同級(jí)目錄中,自動(dòng)生成一個(gè) VirtualBox 文件夾,里面是創(chuàng)建的三個(gè)虛擬機(jī),見(jiàn)圖27、28。

          圖26
          圖27
          圖28

          vagrant up 命令的執(zhí)行日志見(jiàn)圖29、30、31,此時(shí)三個(gè)虛擬機(jī)創(chuàng)建成功。

          圖29
          圖30
          圖31

          此時(shí)打開(kāi) VirtualBox 主界面,可以看到這三個(gè)虛擬機(jī),分別是 node1、node2、node3,見(jiàn)圖32。

          圖32

          3、進(jìn)入三臺(tái)虛擬機(jī),開(kāi)啟 root 的密碼訪問(wèn)權(quán)限,這樣我們就可以通過(guò) Xshell 等工具來(lái)連接虛擬機(jī)了(cmd 沒(méi)有高亮顯示,用起來(lái)不是很方便)。

          vagrant?ssh?node1?//?連接?node1?這臺(tái)虛擬機(jī)
          su?root?//?切換到?root?用戶,root?用戶密碼為?vagrant
          vi?/etc/ssh/sshd_config
          修改?sshd_config?文件,PasswordAuthentication?no?修改成?PasswordAuthentication?yes
          service?sshd?restart?//?重啟虛擬機(jī)?
          exit?//?退出?root?用戶
          exit?//?退出?node1?這個(gè)虛擬機(jī)

          接下來(lái),以同樣的方式操作剩下的兩臺(tái)虛擬機(jī)
          圖33
          圖34
          圖35
          圖36

          4、使用 Xshell 連接虛擬機(jī)

          使用 Xshell 創(chuàng)建 node1 的會(huì)話,見(jiàn)圖37、38,使用同樣的方式創(chuàng)建 node2、node3 的會(huì)話,最后三個(gè)會(huì)話創(chuàng)建成功,見(jiàn)圖39。

          圖37
          圖38
          圖39

          連接 node1,選中左側(cè)欄中 node1 會(huì)話,鼠標(biāo)左鍵雙擊,此時(shí)彈出窗口,輸入用戶名和密碼,即可連接上該虛擬機(jī),見(jiàn)圖40、41、42,使用同樣的方式連接上 node2、node3。

          圖40
          圖41
          圖42

          5、設(shè)置虛擬機(jī)的 NAT 網(wǎng)絡(luò)

          運(yùn)行 ip route show 命令,查看 node1 的網(wǎng)卡,得到結(jié)果,node1 使用的是 eth0 這個(gè)網(wǎng)卡,見(jiàn)圖43。

          圖43

          運(yùn)行 ip addr 命令,查看 eth0 的地址,得到結(jié)果,eth0 地址是 10.0.2.15,見(jiàn)圖44。

          圖44

          以同樣方式查看 node2 和 node3 的網(wǎng)卡,網(wǎng)卡 ip 都是 10.0.2.15,見(jiàn)圖45、46。

          圖45
          圖46

          現(xiàn)在我們要讓這三個(gè)虛擬機(jī)的網(wǎng)卡 ip 是唯一的,即這三個(gè)虛擬機(jī)的網(wǎng)卡 ip 不相同,配置步驟如下所示。

          (1)依次關(guān)閉三個(gè)虛擬機(jī),進(jìn)入 VirtualBox 主界面,選擇"管理" -> "全局設(shè)定" -> "網(wǎng)絡(luò)" -> "添加新NAT網(wǎng)絡(luò)" -> "OK",見(jiàn)圖47、48、49。
          圖47
          圖48
          圖49
          (2)給 node1 設(shè)置網(wǎng)絡(luò),選中 node1 -> "設(shè)置" -> "網(wǎng)絡(luò)" -> 更改連接方式,由"網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)"更改為"NAT 網(wǎng)絡(luò)" -> "高級(jí)" -> "重新生成一個(gè) MAC 地址" -> "OK",見(jiàn)圖50、51、52。
          圖50
          圖51
          圖52
          (3)按照第二步的方式,給 node2 和 node3 設(shè)置網(wǎng)絡(luò)。
          (4)node1、node2、node3 的網(wǎng)絡(luò)都設(shè)置完了,重啟虛擬機(jī),此時(shí)查看這三個(gè)虛擬機(jī)的網(wǎng)卡,發(fā)現(xiàn) node1 的網(wǎng)卡 ip 是 10.0.2.15,node2 的網(wǎng)卡 ip 是 10.0.2.4,node3 的網(wǎng)卡 ip 是 10.0.2.5,見(jiàn)圖53、54、55,此時(shí)三臺(tái)虛擬機(jī)的網(wǎng)關(guān) ip 已經(jīng)是不同的了。
          圖53
          圖54
          圖55
          (5)驗(yàn)證每個(gè)虛擬機(jī)到自己的網(wǎng)關(guān)ip是否可以ping通,已經(jīng)每個(gè)虛擬機(jī)到外網(wǎng)(baidu.com)是否可以ping通。

          node1 到其網(wǎng)關(guān) 10.0.2.15 可以 ping 通,見(jiàn)圖56,node1 到 baidu.com 可以 ping 通,見(jiàn)圖57。

          圖56
          圖57

          node2 到其網(wǎng)關(guān) 10.0.2.4 可以 ping 通,見(jiàn)圖58,node2 到 baidu.com 可以 ping 通,見(jiàn)圖59。

          圖58
          圖59

          node3 到其網(wǎng)關(guān) 10.0.2.5 可以 ping 通,見(jiàn)圖60,node3 到 baidu.com 可以 ping 通,見(jiàn)圖61。

          圖60
          圖61
          (6)設(shè)置 Linux 環(huán)境(三個(gè)虛擬機(jī)都執(zhí)行)
          //?關(guān)閉防火墻,在開(kāi)發(fā)模式下,關(guān)閉防火墻,這樣我們就不用配置各種防火墻的進(jìn)出規(guī)則了
          systemctl?stop?firewalld
          systemctl?disable?firewalld
          圖62,關(guān)閉防火墻
          //?關(guān)閉 selinux,selinux 是 linux 的安全策略。
          //?使用下面這兩條指令都可以關(guān)閉 setlinux,不同的是,第一條是永久關(guān)閉,第二條是臨時(shí)關(guān)閉,下一次重啟就失效了。
          // setlinux 關(guān)閉之前,/etc/selinux/config 文件中 SELINUX 取值為 enforcing,setlinux 關(guān)閉之后,SELINUX 取值為 disabled,見(jiàn)圖63、圖64。
          sed?-i?'s/enforcing/disabled/'?/etc/selinux/config?
          setenforce?0?
          圖63,關(guān)閉 selinux 之前
          圖64,關(guān)閉 setlinux 之后
          //?關(guān)閉 swap(內(nèi)存交換),swap 會(huì)影響程序性能,所以一般把它關(guān)閉掉。
          //?使用下面這兩條指令都可以關(guān)閉 swap,不同的是,第一條是臨時(shí)關(guān)閉,第二條是永久關(guān)閉。
          // swap 關(guān)閉之前,/etc/fstab 文件中有這樣一句話,/swapfile none swap defaults 0?0,swap 關(guān)閉之后,這句話就被注釋掉了,見(jiàn)圖65、圖66。
          swapoff?-a?
          sed?-ri?'s/.*swap.*/#&/'?/etc/fstab?

          //?驗(yàn)證 swap 關(guān)閉是否成功,執(zhí)行完 free -g 這條指令,Swap 的 total、used、free 都為0,說(shuō)明 swap 關(guān)閉成功,見(jiàn)圖67。
          free?-g?
          圖65,關(guān)閉 swap 之前
          圖66,關(guān)閉 swap 之后
          圖67,驗(yàn)證 swap 關(guān)閉是否成功
          //?使用 hostname 命令,查看當(dāng)前虛擬機(jī)的主機(jī)名,發(fā)現(xiàn)三臺(tái)虛擬機(jī)的主機(jī)名和我們?cè)?vagrant 文件中定義的一樣,分別是 node1、node2、node3,見(jiàn)圖68。
          hostname?
          //?如果主機(jī)名不是我們?cè)?vagrant 里面指定的,我們可以使用下面這條指令添加主機(jī)名。
          hostnamectl?set-hostname?<newhostname>?

          //?添加主機(jī)名和?ip?的對(duì)應(yīng)關(guān)系
          //?這里需要注意,每臺(tái)虛擬機(jī)不僅僅要配置自己的主機(jī)名和 ip 的對(duì)應(yīng)關(guān)系,還要配置其他虛擬機(jī)的主機(jī)名和 ip 的對(duì)應(yīng)關(guān)系,這樣它們之間才能通過(guò)主機(jī)名互相 ping 通,圖69、70是node2做的配置,node1和node3需要做同樣的配置。
          vi?/etc/hosts
          10.0.2.15?node1?//?10.0.2.15?是?node1?的網(wǎng)卡?ip
          10.0.2.4?node2
          10.0.2.5?node3
          ??
          //?上述操作添加完,我們?cè)?node1 中執(zhí)行 ping node3 命令,發(fā)現(xiàn)可以 ping 通,見(jiàn)圖71,同理,這三個(gè)虛擬機(jī)任何兩個(gè)之間去 ping,都能 ping 通,說(shuō)明配置沒(méi)有問(wèn)題了。
          [root@node2?~]#?ping?node3
          圖68,執(zhí)行 hostname 命令,查看主機(jī)名
          圖69
          圖70
          圖71

          6、關(guān)閉集群,在 VirtualBox 主界面,右鍵虛擬機(jī)->退出->正常關(guān)機(jī),依次關(guān)閉著三個(gè)虛擬機(jī),此時(shí)集群就關(guān)閉了。

          圖72

          7、開(kāi)啟集群,執(zhí)行第二步,使用 vagrant up 一下子啟動(dòng)三個(gè)虛擬機(jī),也可以在 VirtualBox 主界面,右鍵虛擬機(jī)->啟動(dòng)->正常啟動(dòng),依次啟動(dòng)這三個(gè)虛擬機(jī),此時(shí)集群就開(kāi)啟了。

          圖73

          到這里,我們就已經(jīng)搭建好一個(gè)屬于自己的集群啦,happy ending


          瀏覽 75
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色五月综合激情 | 欧美日韩黄色大片 | 一区二区三区网 | 免费成人黄色电影视频 | 翔田千里无码破解HD |