使用 Virtualbox 安装部署 Kubernetes 集群(一)
Kubernetes 集群的部署是我们学习 Kubernetes的最大阻碍,本节将从 Virtualbox 安装 CentOS8 开始,一步步搭建一套包含单台 Master 节点和三台 Worker 节点的完整的 Kubernetes 集群。
Tips: Kubernetes集群的搭建需要宿主机有 8G 及以上内存和 50G 以上的磁盘空间。
1. 下载/更新虚拟机 Virtualbox
如果之前的读者没有使用虚拟机,这里请先打开下载页,下载符合自己系统的虚拟机工具。
已安装的用户,也请尽量升级自己的虚拟机版本,尤其对于Windows10的系统,最好将虚拟机升级到比较新的6.1版本,可以避免很多bug。
3. 下载CentOS8 镜像
我们使用阿里云的开源镜像站获取最新的 CentOS8 镜像,注意选择以x86_64-boot.iso
结尾的镜像。
2. 虚拟机安装前设定
- 2GB 内存;
- 2核心 CPU;
- 20GB 硬盘;
- 使用CentOS8安装镜像;
- 桥接网络。
详细步骤
这里将虚拟机名称设为 master-1 以便标记区分,将内存设为 2048M:
点击创建,将硬盘文件大小改为 20GB,设定动态分配,然后点击创建完成初步设定。

设定以下载好的 CentOS8 镜像启动虚拟机:

配置网络连接方式为桥接网卡,下面的网卡选择当前操作系统网络连接正在使用的、可以连接外网的网卡。
4. 安装 CentOS8
- 英文环境;
- 联通网络;
- 软件源;
- 自定义分区策略,只保留一个分区
/
,设定为ext4
文件系统(注意一定不要swap交换分区,否则需要在系统中手动关闭);
- minimal 最小化安装;
- 关闭 Kdump;
- 东八区(上海时区);
- root 账户密码;
- 安装完成后移除光驱。
详细步骤:
这里以 Windows 下的 Virutalbox 为例,Linux、macOS 的下的操作与它几乎一致。
使用光标选择 Install CentOS Linux 8
,回车确认
引导加载过后,出现安装界面,这里我们使用默认的英文环境,不要更改,直接点击Continue
。

配置网络,选择Network & Host Name
将网卡连接的 off
变更为on
,然后点击左上角的Done

配置安装源,选择 Installation Source
选择https://
,在地址栏中填入mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
。URL type 选择 repository URL
,然后点击左上角的 Done
完成设定。
设定安装硬盘与分区,点击 Installation Dest
:
点击要安装 CentOS8 的硬盘,注意有个小对号才表示选中安装到此硬盘。
点击下方的 Custom,我们将自定义分区,然后点击左上角的Done
。
分区方案选择Standard Partition
,然后点击加号:
挂载点 Mount Point 选择 /
, 大小设定为20 GB
, 然后点击 Add mount point
:
将这个分区的文件系统设定为ext4
,然后点击左上角的Done
完成设定。

第一次点击Done
会出现警告,不要理会,再点一次Done
:
展示磁盘分区变更,点击 Accept Changes
保存我们自定义的分区操作。
取消 Enable Kdump
前的勾选,然后点击左上角Done
:
点击地图上长三角的位置,或者手动选择 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环境
对于 Windows 用户,建议先安装 cmder 终端命令行工具。
打开下载页面下载压缩包,放到合适的地方解压。

进入解压后的目录,双击 Cmder.exe 启动终端。
*nix 环境
对于 Linux 和 macOS 用户,请打开自己惯用的终端工具。
5.2 安装Docker 与 K8s
使用 ssh 命令登录 master-1 虚拟机终端。
ssh root@192.168.1.12
输入密码后登录:
接下来我们来安装 Docker 、Kubernetes 运行环境。
Tips:可以将这些命令保存到install.sh
中,然后执行 sh ./install.sh
安装。
rm -fr /etc/yum.repos.d/*
dnf config-manager --add-repo https://mirrors.aliyun.com/repo/Centos-8.repo
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
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
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
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
dnf install -y docker-ce kubeadm-$version kubectl-$version kubelet-$version tc
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
iptables -P INPUT ACCEPT
iptables -F
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sysctl -p
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl enable docker
systemctl enable kubelet
执行docker --version
与kubeadm version
确认安装完成。
6. 小结
至此,第一部分操作结束,master-1 虚拟机上已经安装好必要的工具,下一节我们开始部署 Kubernetes集群。