在一臺物理機上創建3個虛擬機搭建k8s集羣(一)

2019年10月7日,參考鏈接:

https://blog.csdn.net/qq_38252499/article/details/99214276

https://blog.csdn.net/cndmss/article/details/80149952

https://blog.csdn.net/C4Jem/article/details/90060012

https://blog.csdn.net/qq_27639619/article/details/88645818

注意:(後來由於NAT模式,開了端口也不能ping同,選擇橋接模式的話,每次更換網絡宿主機IP地址都會變,因此,選擇了在一臺物理機上搭建)

一:基礎環境配置

(1)兩臺物理機配置(全新):

CPU:i7-7700 3.6GHZ

內存:8G

硬盤:1T

操作系統:win7 64位

(2)每臺物理機上創建兩個虛擬機:

CPU:1

內存:1G

硬盤:20G

網絡配置:NAT

操作系統:CentOS7.7

二:搭建虛擬機

(1)軟件準備:

下載vmware workstation 14、CentOS-7-x86_64-DVD-1908(阿里雲下載https://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/)、jdk-8u221-linux-x64.tar.gz(官網下載,需註冊https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(2)vmware workstation 14安裝與配置

第一步:新建虛擬機

第二步:選擇典型安裝

第三步:選擇稍後安裝操作系統

第四步:選擇linux CentOS7 64位

第五步:爲虛擬機起名字,並保存虛擬機到某一個地址

第六步:選擇磁盤大小(實驗20G足夠了,其他默認)

第七步:查看信息,點擊完成,創建虛擬機

第八步:可以看到新建的虛擬機,下圖中包含了兩個我自己創建的,網絡適配器選擇NAT模式,之後點擊編輯虛擬機設置,開始安裝操作系統步驟

第九步:在使用ISO映像文件中選擇下載好的CentOS-7-x86_64-DVD-1908

第十步:點擊開啓此虛擬機,進入系統安裝界面

第十一步:常規安裝方法不再詳細描述,可選擇最小安裝。安裝期間可以設置root用戶的密碼。參考https://blog.csdn.net/cndmss/article/details/80149952

三:虛擬機配置

1. 安裝JDK(java以備後續集羣所需)

(1)在根目錄下輸入

mkdir -p software

創建了一個文件夾,用於存放之前下載的jdk-8u221-linux-x64.tar.gz;-p是爲了保證文件夾能夠創建成功;

(2)在win7主機上下載並安裝xshell,利用xshell將jdk-8u221-linux-x64.tar.gz文件,上傳到虛擬機的software文件夾下;

(3)在software目錄下,輸入命令

mkdir -p /usr/lib/jvm
tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/lib/jvm

(4)用vi命令打開profile設置環境變量,輸入

vi /etc/profile

在文件前面添加以下代碼

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

注意,jdk1.8.0_221是對應剛纔下載的版本,隨着官網的更新,該版本會變化,查看版本,可進入/usr/lib/jvm/目錄下查看。

(5)執行profile文件,輸入

source /etc/profile

2. 配置網絡

(1)系統安裝後,此時如果主機是通過路由器自動獲取IP地址上網的,那麼虛擬機由於選擇了NAT模式,應該也是可以聯外網的。但是,由於沒有將虛擬機的網卡激活,此時可能無法聯網。因此需要先編輯ifcfg-ens33文件(名稱可能根據不同的機器會有變化)激活網卡:

cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33

將ONBOOT=no 改爲 yes,然後執行命令 service network restart重啓網絡服務。

(2)查看網絡IP地址

此時想查看網絡狀態是無法用ifconfig命令的,因爲用了最小安裝。ip addr命令可以用。但是習慣了ifconfig命令,所以還是要安裝ifconfig命令。linux 系統下的 ifconfig 命令找不到,需要安裝 net-tools,經過以上網絡配置後,虛擬機是可以連接互聯網的,此時輸入

yum install net-tools

即可使用ifconfig查看網絡配置。

(3)配置靜態IP  參考 https://blog.csdn.net/cndmss/article/details/80149952

以上我們已經動態獲取了虛擬機的IP,但動態IP可能會隨着虛擬機的重啓而發生變化,特別是存在多臺虛擬機都動態獲取IP時,不太利於我們的開發和測試,因此,統一配置靜態IP是有必要的。
第一步:設置VMware虛擬機的網關。



設置完成後,依次點擊“確定”保存。值得注意的是,端口轉發部分,我添加了兩個主機端口,其目的是爲了讓另外一臺主機和其虛擬機能夠通過端口轉發的模式訪問到本主機上的兩個虛擬機。訪問方法:在另外一臺主機上利用ssh [email protected] 6000 即可訪問到192.168.5.101這臺虛擬機。其中192.168.43.100爲主機的地址。此處原理課參考NAT模式下虛擬機之間互聯互通。注意,兩臺win7主機的防火牆要關閉。
第二步:配置虛擬機網卡文件ifcfg-ens33。

如圖所示,將BOOTPROTO=dhcp修改爲BOOTPROTO=static,然後再添加指定的靜態IP、網關等配置,修改後的整體配置如上圖所示。

需要注意的是,如果此處不添加DNS,可能會出現無法ping通外網的情況,ping www.baidu.com 報name or service not known錯誤,因此,我的操作是編輯DNS文件,將DNS添加進去,輸入命令

vi /etc/resolv.conf

修改文件爲

修改完成保存,然後執行命令 service network restart重啓網絡服務。

3. 配置yum源,參考 https://blog.csdn.net/qq_27639619/article/details/88645818

在配置yum源之前,我們需要做一些簡單的工作,首先是安裝一些工具,如vim  wget等。由於之前已經爲網絡掃清了障礙,因此只需要yum install vim,yum install wget等就可以迅速安裝好這些工具了。

安裝工具後,還需關閉系統的可視化模式:CentOS 7 安裝好後,登錄時默認啓用了很佔資源的圖形界面,若啓動多個虛擬機更會卡的飛起。因此,我們可以通過如下命令切換默認的登錄方式:

命令模式

systemctl set-default multi-user.target

圖形模式

systemctl set-default graphical.target

在此運行命令模式即可,注意,上面的命令執行後重啓生效。

接下來,就可以正式配置yum源了。不建議使用CentOS 7 自帶的yum源,因爲安裝軟件和依賴時會非常慢甚至超時失敗。這裏,我們使用阿里雲的源予以替換,執行如下命令,替換文件/etc/yum.repos.d/CentOS-Base.repo:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
yum makecache

4. 關閉防火牆

防火牆一定要提前關閉,否則在後續安裝K8S集羣的時候是個trouble maker。執行下面語句關閉,並禁用開機啓動:

systemctl stop firewalld & systemctl disable firewalld

5. 關閉Swap
類似ElasticSearch集羣,在安裝K8S集羣時,Linux的Swap內存交換機制是一定要關閉的,否則會因爲內存交換而影響性能以及穩定性。這裏,我們可以提前進行設置:執行 swapoff -a可臨時關閉,但系統重啓後恢復。用vim編輯/etc/fstab,即:

vim /etc/fstab

註釋掉包含swap的那一行即可,重啓後可永久關閉,如下所示:

以上,基本完成了虛擬機的配置。

四:克隆虛擬機

參考 https://blog.csdn.net/cndmss/article/details/80149952

經過以上步驟,我們已經創建了一臺虛擬機,並且配置好了靜態IP、JDK、yum源、防火牆等基礎環境,這個過程是複雜的,如果我們想新建一個虛擬機,重新進行此過程將會是一個非常痛苦的事情。幸好,我們可以通過VMware的克隆功能進行快速的擴充新的虛擬機。

第一步:先將虛擬機電源關閉

第二步:在我的計算機下,右鍵我們創建的虛擬機,選擇管理->克隆

第三步:點擊下一步進入下圖界面,選擇“虛擬機中的當前狀態”,下一步

選擇完整克隆

爲克隆後的虛擬機起名,並保存在相應位置

經過以上步驟後,完成了虛擬機的克隆。下圖中,master爲創建的虛擬機,node1爲克隆的虛擬機。

第四步,在另外一臺主機上安裝vmware,並將創建的虛擬機master和克隆的虛擬機node1複製過去,在VMware中打開後,改名爲node2 和node3。

第五步,修改IP,從master到node3,IP地址爲192.168.5.101、192.168.5.102、192.168.5.103、192.168.5.104,同時,按照之氣的網關設置操作,設置其網關和轉發端口。

第六步,修改hostname,目前由於克隆,所有虛機的hostname 都爲localhost,利用vi /etc/hostname命令,依次修改爲s1 s2 s3 s4。

至此,完成了4臺虛機的構建。

五:爲每臺虛機安裝docker

安裝K8S必須要先安裝Docker。這裏,我們使用yum方式安裝Docker社區最新版,但是由於牆的原因,使用yum安裝經常會超時失敗。我們使用添加阿里雲的Docker倉庫方式解決:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

執行此命令會出現 yum-config-manager: command not found錯誤,這個是因爲系統默認沒有安裝這個命令,這個命令在yum-utils 包裏,可以通過命令yum -y install yum-utils 安裝就可以了。之後再運行上述命令,就可將阿里雲Docker倉庫添加入yum源中。

執行以下命令,安裝最新版Docker:

yum install docker-ce -y

安裝完成後,運行docker --version可以查看是否安裝成功,出現以下界面表示安裝成功。

啓動Docker服務並激活開機啓動:

systemctl start docker & systemctl enable docker

驗證一下,是否成功,輸入:

docker run hello-world

出現以上界面表示安裝成功。

所有虛機執行完以上操作後,完成docker的安裝。接下來,就可以開展K8S的安裝部署了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章