安装VMware

以前Vmware和使用Hyper-V开启的WSL2有冲突,现在最新版本修复了这个bug,因此建议使用最新版(15.5.6以上),VMware下载官网

安装Ubuntu Server

安装虚拟机系统

Ubuntu Desktop版过于浪费空间,Server版只有命令行,占用硬盘和内存都比较少,Ubuntu Server下载官网
VMware创建虚拟机时,选择典型安装即可,注意CPU至少分配两个核心,内存至少2G,这是运行Kubernetes的基本要求。安装完系统基本就占了4G多,所以建议硬盘最好给10G以上。
典型安装
设置完成后,最低配置基本就是我这样,点击完成,进入安装界面。
点击完成
然后进入系统的安装界面,一般直接一直回车,点击Done即可。
安装界面
注意安装时打开SSH选项,因为虚拟机中的终端很难用,一般使用远程连接,复制粘贴也更方便。
打开SSH
注意在安装过程中下面这一页不要选择任何组件,比如Docker和etcd,虽然后面会用到,但是这里安装的跟后面用到的不一样,而且卸载不掉,所以一定不要在刚开始安装。
不要选择任何组件
到了这个页面,等一会儿就安装完成了(安装内核比较慢,我这里用了至少半个小时,安装的时候不要着急),安装完以后输入你设置的用户名和密码,即可登录。
正在安装

配置阿里云镜像

首先使用以下命令配置root用户的密码,方便使用su。

sudo passwd root

由于国内网络原因,可能Ubuntu自带的软件源下载很慢,所以最好把软件源换成阿里的。
首先输入su获取root权限。
先把原来的软件源备份一下

cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后输入以下命令配置清华源镜像(适用于20.04版本的Ubuntu,其它版本可以去清华源镜像官网查看)

echo "# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse" > /etc/apt/sources.list

然后执行更新

apt update

至此,Ubuntu配置完毕。

安装Xshell或FinalShell

配置Ubuntu的SSH服务

上面也说了,因为虚拟机中的终端太难用,我们使用好用的终端远程连接。前提是虚拟机已经安装好了ssh,如果上面忘记安装ssh,可以使用下面的命令安装:

sudo apt-get  install openssh-server

然后查看这个虚拟机的IP地址,使用ifconfig命令,如果说找不到命令,根据提示命令sudo apt install net-tools安装net-tools。
查看IP地址
可以看到我的ens33网卡的IP地址是192.168.224.128。记住这个IP地址,就可以根据IP地址远程登陆。

安装FinalShell

FinalShell官网安装。
点击左上角的文件夹标志新建连接
新建连接
然后点击左上角的小框框新建SSH连接,输入刚刚看到的IP地址,和设置好的用户名密码,即可连接
连接SSH
连接成功界面如下,可以看到有CPU、内存、硬盘使用情况,还有输入终端,文件夹列表,很方便。
连接成功
这时就可以关掉VMware,在后台运行,后面的操作都在FinalShell中完成。

安装docker

这一步很简单,只要输入docker,就会提示安装docker的命令。
使用

sudo apt install docker.io

等待安装完毕,使用docker version命令验证是否安装成功。
docker版本

安装Kubernetes

可以看Kubectl官方文档,官方文档中给出的安装命令如下:

#请不要使用这段代码!
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

但是官方文档在国内网络环境下并不适用,请使用以下代码:

第一步是安装https

sudo apt-get update && sudo apt-get install -y apt-transport-https

但是,由于国内网络原因,无法连接Google,很可能第二步会卡死。

这里可以使用阿里云的镜像,把第二步的命令改为:

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

然后运行:

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

修改完这个list文件后,更新一下apt-get的配置

apt-get update

下面这句就是安装kubelet,kubeadm,kubectl三个k8s的核心组件

# 如果需要指定版本,使用下一段的命令,此命令是默认安装最新版
apt-get install kubelet kubeadm kubectl

如果需要指定老版本,可以通过=<版本号>来指定版本,如下:

# 需要指定版本才使用下面的命令
apt install kubelet=1.22.15-00 kubectl=1.22.15-00 kubeadm=1.22.15-00

至此,kubelet,kubeadm和kubectl就安装成功了。

可以使用kubectl versionkubelet --versionkubeadm version验证是否安装成功
查看版本
至此,Master节点准备工作全部完成。

安装Master节点

警告和错误解决

如果运行下面的命令(先不要运行,这里是为了演示会出现的错误)

#先不要运行 kubeadm init

然后发现结果如下
结果
可以发现有两个WARNING和一个ERROR,都需要解决。
第一个警告已经给出解决办法,就是把docker注册为系统服务,运行下面的命令即可。

systemctl enable docker.service

第二个警告意思是检测到“cgroupfs”作为Docker cgroup驱动程序。 推荐的驱动程序是“systemd”。
解决方法:
进入/etc/docker目录,创建docker的配置文件daemon.json

cd /etc/docker
vim daemon.json

按i进入insert模式,输入:

{
 "exec-opts":["native.cgroupdriver=systemd"]
}

然后按Esc退出编辑模式,输入:wq保存并退出。
daemon.json
然后重启docker

systemctl restart docker

第二个警告就解决了。

ERROR是说不支持swap,所以需要关闭swap,使用如下命令:

swapoff -a

即可关闭swap。

这里完成后先不要使用kubeadm init命令,因为这是初始化Master节点的命令,我们下面还要再创建一个Node节点的虚拟机,所以先克隆一份,然后两个虚拟机再分别执行初始化Master和初始化Node的命令。

克隆一份虚拟机留作Worker节点备用

这时所有准备工作都已经完成了,在VMware中关机,然后点击菜单栏虚拟机->管理->克隆,点击下一步,选择创建完整克隆,然后很快就克隆完毕了。克隆完后要做两件重要的事:

  1. 在关机状态下,改变虚拟机的Mac地址,如果不改mac地址,两个虚拟机的mac地址相同,联网时会出现问题。
    首先进入虚拟机设置页面,点击网络适配器,然后点击右下角的“高级”。
    配置网络适配器
    然后在下方重新生成一个mac地址
    生成mac地址
  2. 开机尝试FinalShell能否连接,先用ifconfig查看自己的IP地址,然后像刚开始一样的步骤用FinalShell连接,按理说应该能连接成功。如果不成功的话,可以用ifconfig命令手动给ens33网卡修改一个IP地址,再尝试连接。
    在这里插入图片描述
    至此,两个节点的所有准备工作就完成了。
    由于字数过多,分成两篇博客,接下来请看下一篇博客使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(2)节点部署
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐