使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(1)准备工作
安装VMware以前Vmware和使用Hyper-V开启的WSL2有冲突,现在最新版本修复了这个bug,因此建议使用最新版(15.5.6以上),VMware下载官网。安装Ubuntu ServerUbuntu Desktop版过于浪费空间,Server版只有命令行,占用硬盘和内存都比较少,Ubuntu Server下载官网。VMware创建虚拟机时,选择典型安装即可,注意CPU至少分配两个核心,内
使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程
安装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选项,因为虚拟机中的终端很难用,一般使用远程连接,复制粘贴也更方便。
注意在安装过程中下面这一页不要选择任何组件,比如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。
可以看到我的ens33网卡的IP地址是192.168.224.128。记住这个IP地址,就可以根据IP地址远程登陆。
安装FinalShell
FinalShell官网安装。
点击左上角的文件夹标志新建连接
然后点击左上角的小框框新建SSH连接,输入刚刚看到的IP地址,和设置好的用户名密码,即可连接
连接成功界面如下,可以看到有CPU、内存、硬盘使用情况,还有输入终端,文件夹列表,很方便。
这时就可以关掉VMware,在后台运行,后面的操作都在FinalShell中完成。
安装docker
这一步很简单,只要输入docker,就会提示安装docker的命令。
使用
sudo apt install docker.io
等待安装完毕,使用docker version
命令验证是否安装成功。
安装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 version
、 kubelet --version
、 kubeadm 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
保存并退出。
然后重启docker
systemctl restart docker
第二个警告就解决了。
ERROR是说不支持swap,所以需要关闭swap,使用如下命令:
swapoff -a
即可关闭swap。
这里完成后先不要使用kubeadm init
命令,因为这是初始化Master节点的命令,我们下面还要再创建一个Node节点的虚拟机,所以先克隆一份,然后两个虚拟机再分别执行初始化Master和初始化Node的命令。
克隆一份虚拟机留作Worker节点备用
这时所有准备工作都已经完成了,在VMware中关机,然后点击菜单栏虚拟机->管理->克隆
,点击下一步,选择创建完整克隆,然后很快就克隆完毕了。克隆完后要做两件重要的事:
- 在关机状态下,改变虚拟机的Mac地址,如果不改mac地址,两个虚拟机的mac地址相同,联网时会出现问题。
首先进入虚拟机设置页面,点击网络适配器,然后点击右下角的“高级”。
然后在下方重新生成一个mac地址
- 开机尝试FinalShell能否连接,先用ifconfig查看自己的IP地址,然后像刚开始一样的步骤用FinalShell连接,按理说应该能连接成功。如果不成功的话,可以用ifconfig命令手动给ens33网卡修改一个IP地址,再尝试连接。
至此,两个节点的所有准备工作就完成了。
由于字数过多,分成两篇博客,接下来请看下一篇博客使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(2)节点部署。
更多推荐
所有评论(0)