k3s学习笔记(四)
(更新:这篇文章介绍的build过程用来编译k3s提供的box,实际上只需要最后的k3s package,在干净的alpine linux里面安装package即可)。
这篇里介绍通过vagrant在虚拟机里面安装k3s。
k3s提供了自己的vagrant box,但是它没有在vagrant cloud上面维护,而是维护了一个自己的Vagrant文件,可以从这里得到:
使用方法就是下载后使用vagrant
命令创建box并启动。
但是这个Vagrantfile
脚本依赖它自己的代码仓库里的其它的一些脚本,所以要是想正常build box,需要把它的代码仓库整个clone下来:
$ git clone https://github.com/rancher/k3s.git
clone好项目以后,进到项目目录里,看一下Vagrantfile
的位置:
可以具体看一下这个文件里的内容:
可以看到它默认使用的linux发行版本是alpine310
。它这个box用到了它自己维护的一个provision脚本:
可以看到,这个脚本也在它自己的源码仓库里。此外这个脚本还用到了其它一些脚本,都在代码目录里了。
在创建box之前,我们需要把创建脚本里面的alpine下载源替换成镜像,这里是具体的修改部分:
可以直接使用github提供的这个自动生成的patch:
打好patch以后,执行vagrant
的up
命令:
$ vagrant up
执行上面的命令会需要一些时间下载虚拟机,耐心等待。下载完成后,会执行provision脚本,然后设置好虚拟机box并启动。整个安装过程比较漫长,中间还需要输入管理员密码设置host文件夹共享。最后完成box创建并运行:
此时我们使用vagrant
命令登录虚拟机:
$ vagrant up
可以看到此时登录了虚拟机:
如上所示,我们登进了虚拟机,此时这个虚拟机里还没有k3s
的包,我们可以安装alpine提供的k3s安装包:
在我写这篇文章的时候,这个package还在edge/testing
仓库里,也就是还处在实验阶段。我们可以使用下面的命令直接安装:
$ apk add k3s --repository=http://mirrors.ustc.edu.cn/alpine/edge/testing
安装过程如下所示:
安装完成后,我们可以使用命令来启动k3s服务。从上面的截图我们可以看到安装了k3s-openrc
的这个package。alpine默认是使用openrc来管理服务的。关于openrc可以参考这篇文档:
从文档里我们可以看到openrc
的使用方法:
学习好openrc的命令以后,启动k3s服务:
$ /etc/init.d/k3s start
服务启动过程如下:
启动完成后,可以使用kubectl
命令查询k3s服务了:
$ kubectl get svc -n kube-system
查询结果如下:
可以看到此时这个虚拟机的k3s服务已经工作了。
此时打开virtualbox也可以看到创建出来的虚拟机:
可以看到通过vagrant在虚拟机里面创建k3s服务也比较简单,就是要注意安装过程中的网络环境问题。
以上就是本文内容。