作者简介
鞠宏超,SUSE SW Engineering, 6 年云计算领域经验,先后参与了 Longhorn 产品研发、Rancher2.x 产品研发,目前主要致力于 Rancher 企业版产品设计与研发工作,AutoK3s 的核心维护者。
AutoK3s 是一款 K3s 集群自动化部署工具,可以方便开发者自助管理多云环境中的 K3s 集群。之前的版本支持了 AWS/Aliyun/Tencent/Google 四个主流公有云,同时可以帮助开发者管理本地 K3d 集群。
最新的 v0.4.8 版本特性预览:
- 支持 Harvester Provider,用户可以在 Harvester 上快速创建虚拟机,并自动搭建 K3s 集群。
- 支持 Google Provider,用户可以在 GCE 上快速创建虚拟机,并自动搭建 K3s 集群,同时支持自动部署 Google K8s Cloud Provider(CCM)。
- 增强 Native Provider 特性,用户现在可以在 UI 上管理和维护 Native 模式创建的 K3s 集群。
本文将基于最新的 v0.4.8 版本,为大家介绍如何实现 AutoK3s 与 Harvester 的梦幻联动。
本文所使用的环境版本信息:
PS:如果您还未搭建过 Harvester 集群,可以查看 Harvester 的相关介绍或访问 Harvester 中文文档:http://docs.rancher.cn/harvester1.0/
一键启动
如果您是 Linux 或者 MacOS 用户,可以使用以下脚本安装 AutoK3s,并启动 UI Portal:
$ curl -sS http://rancher-mirror.cnrancher.com/autok3s/install.sh | INSTALL_AUTOK3S_MIRROR=cn sh
$ autok3s serve
或者使用 Docker 一键启动 UI Portal:
# 标准Linux环境,使用以下命令
$ docker run -itd --restart=unless-stopped --net=host -v /var/run/docker.sock:/var/run/docker.sock cnrancher/autok3s:v0.4.7
# MacOS环境,使用以下命令
$ docker run -itd --restart=unless-stopped -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock cnrancher/autok3s:v0.4.7
服务启动后,打开浏览器,输入地址(http://127.0.0.1:8080),访问 UI。
创建集群
在使用之前,我们需要提前搭建好一个 Harvester 集群,并且准备好可以访问这个集群的 Kubeconfig 文件(需要 cluster-admin 权限)。如果你有多套 Harvester 集群,AutoK3s 可以根据 Kubeconfig 配置切换在不同 Harvester 集群联动的效果。
以 Rancher v2.6.3 为例,使用管理员用户登录后,点击左上角菜单,选择全局应用 > 虚拟化管理,选择要操作的某个 Harvester 集群,点击右侧下拉按钮,获取 Kubeconfig:
接下来,我们将要在 UI 上使用 Harvester Provider,通过 Kubeconfig 配置指定我们要操作的 Harvester 集群,并在这个 Harvester 集群上创建两个虚拟机,并自动启动由 1 个 master 和 1 个 worker 节点组成的 K3s 集群。
集群配置信息如下:
- Instance Options 中,我们设置 2C/4G/40G 大小的虚拟机,Image Name 设置为 Ubuntu 20.04 镜像,Network Name 设置为我们创建好的 VLAN 网络,以便 AutoK3s 可以从外部 SSH 连接到虚拟机中;前面获取的 Kubeconfig 内容也一并填写到表单对应位置中:
- K3s Options 中,K3s Install Script 选择中国区 mirror 的下载链接,可以加速安装 K3s 集群:
配置信息完成以后,点击创建按钮,等待集群创建完成。
集群创建完成后,可以通过 SSH 功能连接到 Harvester 虚拟机中。在上面的例子中,我们配置了 cloud-init 模板,在启动虚拟机的时候,安装了 curl 及 jq 工具。这样,在连接虚拟机后就可以直接使用 jq 工具了。
集群创建完成后,您可以使用 Launch Kubectl 功能,直接操作 K3s 集群的资源;也可以开启 kube-explorer 功能,从精简的 explorer UI 来管理 K3s 集群的资源;这些使用体验与其他 provider 的都是一致的。
访问 Harvester 环境,我们可以在虚拟机列表页面中查看到通过 AutoK3s 创建出来的虚拟机信息。
在此场景下,您可以基于 Harvester 与 AutoK3s 构建自己的私有 K8s 云环境;您可以结合 cloud-init 模板,在虚拟机初始化时做更多的准备,例如提前写入代理配置文件、提前下载所需镜像等操作;更多有趣的使用场景等待您的发掘。
小贴士:
Q:如何获取 Harvester 中的资源信息,并填写到 AutoK3s 配置参数中,例如 Image Name?
A:您可以访问 Harvester Dashboard,找到您要使用的 Image 资源,点击右侧的下拉按钮,选择在 API 中查看 (View in API)
在新弹出的页面中获取 JSON 结构体的 id 属性值,即为您需要填写的参数内容。
集群管理
最近,我们总结了社区用户使用过程中较频繁遇到的 issue,v0.4.8 版本增强了 Native provider 特性,使用体验与其他 Provider 保持一致,用户可以在集群列表页面管理 Native Cluster 了。
在 Native 模式下,主机信息由用户自行维护,所以 Native 模式仅支持对 K3s 集群的搭建、卸载、SSH 连接到指定主机,不负责主机的生命周期管理。
后续规划
在下个版本中,AutoK3s 将集成 Kubeapp,增加对 Helm repo 的支持,用户可以一键部署 Helm Chart 到不同的集群中,例如通过 AutoK3s 一键搭建 K3s 集群并部署 Rancher。我们还会增加对 K3s 集群升级体验的支持,方便用户升级 K3s 集群版本。
AutoK3s 的未来目标是为开发者打造一款自服务的 K3s 管理工具,等同于更加轻量的Rancher。
想了解第一手功能规划,请点击:https://github.com/cnrancher/autok3s/milestones
一切开源
感兴趣的用户可以通过 Github 获取更多文档信息:
https://github.com/cnrancher/autok3s
https://docs.rancher.cn/docs/k3s/autok3s/_index/
AutoK3s 是纯粹面向开发者的一款小工具,并非企业级产品。如果您在使用过程中遇到问题,或者您有好的意见,欢迎提交 issue;如果您喜欢我们,请点亮 star。
关于 AutoK3s 更多特性,请查看:
AutoK3s 0.4.0 发布 多云 K3s 管理的极简体验
1款工具助力 Ranchere HA 快速部署,极速提升研发测试效率
AutoK3s+k3d,K3s 部署体验再升级
AutoK3s v0.4.4 发布,K3s 集群资源管理 so easy!