虚拟机安装Kubernetes集群一

使用 Virtualbox 安装部署 Kubernetes 集群(一)

Kubernetes 集群的部署是我们学习 Kubernetes的最大阻碍,本节将从 Virtualbox 安装 CentOS8 开始,一步步搭建一套包含单台 Master 节点和三台 Worker 节点的完整的 Kubernetes 集群。

Tips: Kubernetes集群的搭建需要宿主机有 8G 及以上内存和 50G 以上的磁盘空间。

1. 下载/更新虚拟机 Virtualbox

如果之前的读者没有使用虚拟机,这里请先打开下载页,下载符合自己系统的虚拟机工具。

image-20200710190232876

已安装的用户,也请尽量升级自己的虚拟机版本,尤其对于Windows10的系统,最好将虚拟机升级到比较新的6.1版本,可以避免很多bug。

3. 下载CentOS8 镜像

我们使用阿里云的开源镜像站获取最新的 CentOS8 镜像,注意选择以x86_64-boot.iso结尾的镜像。

image-20200710191306004

2. 虚拟机安装前设定

CentOS8 虚拟机需要:

  • 2GB 内存;

  • 2核心 CPU;

  • 20GB 硬盘;

  • 使用CentOS8安装镜像;

  • 桥接网络。

详细步骤

打开 Virutalbox,新建虚拟机:

编程之家

进入专家模式

编程之家

这里将虚拟机名称设为 master-1 以便标记区分,将内存设为 2048M:

编程之家

点击创建,将硬盘文件大小改为 20GB,设定动态分配,然后点击创建完成初步设定。

编程之家

在新建好的虚拟机 master-1 上右键设置:

编程之家

在设置页的系统设定中,配置处理器数量为2:

编程之家

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

编程之家

编程之家

配置网络连接方式为桥接网卡,下面的网卡选择当前操作系统网络连接正在使用的、可以连接外网的网卡。

编程之家

设定结束后,点击OK。

4. 安装 CentOS8

在安装过程中,我们需要设定:

  1. 英文环境;

  2. 联通网络;

  3. 软件源;

  4. 自定义分区策略,只保留一个分区/,设定为ext4文件系统(注意一定不要swap交换分区,否则需要在系统中手动关闭);

  5. minimal 最小化安装;

  6. 关闭 Kdump;

  7. 东八区(上海时区);

  8. root 账户密码;

  9. 安装完成后移除光驱。

详细步骤:

这里以 Windows 下的 Virutalbox 为例,Linux、macOS 的下的操作与它几乎一致。

在master-1上右键,选择正常启动。

编程之家

使用光标选择 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 保存我们自定义的分区操作。

编程之家

选择Software Selection

编程之家

选择Minimal最小化安装。

编程之家

点击KDUMP

编程之家

取消 Enable Kdump前的勾选,然后点击左上角Done

编程之家

点击Time & Date设定时区:

编程之家

点击地图上长三角的位置,或者手动选择 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安装。

操作步骤如下

# 将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# 关闭 Selinuxsetenforce 0sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 关闭并禁用firewalldsystemctl stop firewalld
systemctl disable firewalld# 设定iptables规则iptables -P INPUT ACCEPT
iptables -F# 设定允许ipv4路由转发echo net.ipv4.ip_forward = 1 | sudo tee -a /etc/sysctl.conf
sysctl -p# 设定 Docker cgroup 驱动模式为 systemdmkdir /etc/dockercat <<EOF > /etc/docker/daemon.json{exec-opts: [native.cgroupdriver=systemd]}EOF# 设定docker kubelet开机自启systemctl enable docker
systemctl enable kubelet

执行docker --versionkubeadm version确认安装完成。

编程之家

6. 小结

至此,第一部分操作结束,master-1 虚拟机上已经安装好必要的工具,下一节我们开始部署 Kubernetes集群。