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以后,执行vagrantup命令:

$ 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服务也比较简单,就是要注意安装过程中的网络环境问题。

以上就是本文内容。

Powered by Jekyll and Theme by solid