使用 Virtualbox 安裝部署 Kubernetes 集群(一)
Kubernetes 集群的部署是我們學習 Kubernetes的最大阻礙,本節(jié)將從 Virtualbox 安裝 CentOS8 開始,一步步搭建一套包含單臺 Master 節(jié)點和三臺 Worker 節(jié)點的完整的 Kubernetes 集群。
Tips: Kubernetes集群的搭建需要宿主機有 8G 及以上內存和 50G 以上的磁盤空間。
1. 下載/更新虛擬機 Virtualbox
如果之前的讀者沒有使用虛擬機,這里請先打開下載頁,下載符合自己系統(tǒng)的虛擬機工具。
已安裝的用戶,也請盡量升級自己的虛擬機版本,尤其對于Windows10的系統(tǒng),最好將虛擬機升級到比較新的6.1版本,可以避免很多bug。
3. 下載CentOS8 鏡像
我們使用阿里云的開源鏡像站獲取最新的 CentOS8 鏡像,注意選擇以x86_64-boot.iso
結尾的鏡像。
2. 虛擬機安裝前設定
CentOS8 虛擬機需要:
- 2GB 內存;
- 2核心 CPU;
- 20GB 硬盤;
- 使用CentOS8安裝鏡像;
- 橋接網(wǎng)絡。
詳細步驟
打開 Virutalbox,新建虛擬機:
進入專家模式
這里將虛擬機名稱設為 master-1 以便標記區(qū)分,將內存設為 2048M:
點擊創(chuàng)建,將硬盤文件大小改為 20GB,設定動態(tài)分配,然后點擊創(chuàng)建完成初步設定。
在新建好的虛擬機 master-1 上右鍵設置:
在設置頁的系統(tǒng)設定中,配置處理器數(shù)量為2:
設定以下載好的 CentOS8 鏡像啟動虛擬機:
配置網(wǎng)絡連接方式為橋接網(wǎng)卡,下面的網(wǎng)卡選擇當前操作系統(tǒng)網(wǎng)絡連接正在使用的、可以連接外網(wǎng)的網(wǎng)卡。
設定結束后,點擊OK。
4. 安裝 CentOS8
在安裝過程中,我們需要設定:
- 英文環(huán)境;
- 聯(lián)通網(wǎng)絡;
- 軟件源;
- 自定義分區(qū)策略,只保留一個分區(qū)
/
,設定為ext4
文件系統(tǒng)(注意一定不要swap交換分區(qū),否則需要在系統(tǒng)中手動關閉); - minimal 最小化安裝;
- 關閉 Kdump;
- 東八區(qū)(上海時區(qū));
- root 賬戶密碼;
- 安裝完成后移除光驅。
詳細步驟:
這里以 Windows 下的 Virutalbox 為例,Linux、macOS 的下的操作與它幾乎一致。
在master-1上右鍵,選擇正常啟動。
使用光標選擇 Install CentOS Linux 8
,回車確認
引導加載過后,出現(xiàn)安裝界面,這里我們使用默認的英文環(huán)境,不要更改,直接點擊Continue
。
配置網(wǎng)絡,選擇Network & Host Name
將網(wǎng)卡連接的 off
變更為on
,然后點擊左上角的Done
配置安裝源,選擇 Installation Source
選擇https://
,在地址欄中填入mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
。URL type 選擇 repository URL
,然后點擊左上角的 Done
完成設定。
設定安裝硬盤與分區(qū),點擊 Installation Dest
:
點擊要安裝 CentOS8 的硬盤,注意有個小對號才表示選中安裝到此硬盤。
點擊下方的 Custom,我們將自定義分區(qū),然后點擊左上角的Done
。
分區(qū)方案選擇Standard Partition
,然后點擊加號:
掛載點 Mount Point 選擇 /
, 大小設定為20 GB
, 然后點擊 Add mount point
:
將這個分區(qū)的文件系統(tǒng)設定為ext4
,然后點擊左上角的Done
完成設定。
第一次點擊Done
會出現(xiàn)警告,不要理會,再點一次Done
:
展示磁盤分區(qū)變更,點擊 Accept Changes
保存我們自定義的分區(qū)操作。
選擇Software Selection
:
選擇Minimal
最小化安裝。
點擊KDUMP
:
取消 Enable Kdump
前的勾選,然后點擊左上角Done
:
點擊Time & Date
設定時區(qū):
點擊地圖上長三角的位置,或者手動選擇 Region:Asia
, City:Shanghai
,然后點擊左上角的Done
:
點擊 Begin Installation
開始安裝:
在安裝界面中點擊Root Password
,設定 Root 賬戶密碼:
如果密碼太弱,安裝程序會進行提示,需要再點擊一次 Done 確認使用弱密碼。
我們不準備使用 root 以外的賬戶,等待幾分鐘完成安裝,提示可以重啟。這里不要點擊 reboot
,鼠標脫離虛擬機(Windows下默認按 右Ctrl 鍵),直接關閉master-1虛擬機。
回到 virtualbox 管理控制臺,將 master-1 的光驅直接移除。然后點擊ok。
再次正常啟動 master-1 虛擬機,稍等片刻,進入登錄終端,使用root賬號和之前設定的密碼完成登錄。
輸入 ip a
命令查看虛擬機的分配到的IP地址。這里拿到的IP為192.168.1.12
。
5. 安裝 Docker 和 Kubernetes 相關工具
接下來我們將在這臺 master-1 虛擬機中,安裝 docker、kubeadm、kubelete、kubectl 等工具。我們將在宿主機側,用終端工具 ssh 進入虛擬機操作。
5.1 啟動終端
windows環(huán)境
對于 Windows 用戶,建議先安裝 cmder 終端命令行工具。
打開下載頁面下載壓縮包,放到合適的地方解壓。
進入解壓后的目錄,雙擊 Cmder.exe 啟動終端。
*nix 環(huán)境
對于 Linux 和 macOS 用戶,請打開自己慣用的終端工具。
5.2 安裝Docker 與 K8s
使用 ssh 命令登錄 master-1 虛擬機終端。
ssh root@192.168.1.12
輸入密碼后登錄:
接下來我們來安裝 Docker 、Kubernetes 運行環(huán)境。
Tips:可以將這些命令保存到
install.sh
中,然后執(zhí)行sh ./install.sh
安裝。
操作步驟如下
# 將CentOS8 的軟件源更換成國內的阿里源
rm -fr /etc/yum.repos.d/*
dnf config-manager --add-repo https://mirrors.aliyun.com/repo/Centos-8.repo
# 添加 docker軟件源
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 添加 Kubernetes 軟件源
cat <<EOF > /etc/yum.repos.d/Kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 更新軟件
dnf update
# 安裝Docker相關依賴
dnf install -y https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.2.el7.x86_64.rpm
# 獲取阿里云k8s鏡像源對應的版本
version=`curl -s https://github.com/AliyunContainerService/k8s-for-docker-desktop/blob/master/images.properties|grep kube-apiserver:v|awk -F kube-apiserver:v '{print $2}'|awk -F '<' '{print $1}'`
echo $version > .k8s.version
# 安裝 Docker 和 k8s 工具
dnf install -y docker-ce kubeadm-$version kubectl-$version kubelet-$version tc
# 關閉 Selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 關閉并禁用firewalld
systemctl stop firewalld
systemctl disable firewalld
# 設定iptables規(guī)則
iptables -P INPUT ACCEPT
iptables -F
# 設定允許ipv4路由轉發(fā)
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sysctl -p
# 設定 Docker cgroup 驅動模式為 systemd
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# 設定docker kubelet開機自啟
systemctl enable docker
systemctl enable kubelet
執(zhí)行docker --version
與kubeadm version
確認安裝完成。
6. 小結
至此,第一部分操作結束,master-1 虛擬機上已經(jīng)安裝好必要的工具,下一節(jié)我們開始部署 Kubernetes集群。