AutoK3s v0.5.0 发布 延续简约和友好

作者简介
鞠宏超,SUSE SW Engineering,6 年云计算领域经验,先后参与了 Longhorn 产品研发、Rancher2.x 产品研发,目前主要致力于 Rancher 企业版产品设计与研发工作,AutoK3s 的核心维护者。
AutoK3s 是一款 K3s 集群自动化部署工具,可以方便开发者自助管理多云环境中的 K3s 集群,目前版本支持了 AWS/Alibaba/Tencent/Google 四个主流公有云,以及私有云 Harvester 集群,同时可以帮助开发者管理本地 K3d 集群。
v0.5.0 特性概览:
优化创建集群时 UI 的交互体验(AWS/Harvester)。
除 K3d provider 外,支持一键升级 K3s 集群版本。
支持下载指定 K3s 集群的 Kubeconfig 文件功能。
UI 交互体验优化一览
最新版 UI 集成了 AWS/Harvester SDK,在创建集群时可以与 AWS/Harvester 交互联动,用户可以根据各配置项直接选择实例信息,不再需要手动获取实例配置后,再填写配置项内容。
例如我们已经部署好了一个 Harvester 集群,并且准备好可以访问这个 Harvester 集群的 Kubeconfig 文件(需要 cluster-admin 权限),如果你有多套 Harvester 集群,AutoK3s 可以根据 Kubeconfig 配置切换在不同 Harvester 集群联动的效果。以 Rancher v2.6.3 为例,使用管理员用户登录后,点击左上角菜单,选择全局应用 > 虚拟化管理,选择要操作的某个 Harvester 集群,点击右侧下拉按钮,获取 Kubeconfig:

在 AutoK3s UI 上使用 Harvester Provider,通过 Kubeconfig 配置指定我们要操作的 Harvester 集群,将 Kubeconfig 配置填写到表单对应位置后,UI 会对输入的 Kubeconfig 配置进行校验,校验通过后便可以在 UI 上加载出当前集群的实例参数,例如可以在 Image Name 选项输入框中直接选择想要使用的 Image 名称,UI 会自动将其 ID 填充到配置项中,不再需要用户手动切换到 Harvester Dashboard 去获取 Image ID 的信息。

如果用户配置了 AWS 的 Credential 信息,同样可以在 UI 上与 AWS 进行联动,例如过滤实例类型,搜索选择实例使用的 Image 等。

此次版本中,除 google 外,其他公有云 provider 都支持了设置实例的 user-data,更加方便用户个性化实例配置,例如下图的示例中,我们可以在 AWS EC2 实例运行后自动安装 helm。

最佳实践
Rancher 在快速启动的官方文档中已经弱化了使用 docker run 启动单节点 Rancher 服务的模式,推荐使用 Helm 在 K3s 上启动一个单副本的 Rancher 服务,详情可参考:https://rancher.com/docs/rancher/v2.6/en/quick-start-guide/deployment/quickstart-manual-setup/
虽然 single docker 方式启动的 Rancher 服务依然可用,但是不方便我们开发测试时快速验证一些功能,因为 docker run 方式启动的 Rancher 服务,local K3s 集群是运行在容器中的,会导致 Rancher 一些功能无法正常使用,也不方便在 local 集群验证部署工作负载、暴露外部服务等场景。
安装 K3s 集群的步骤已经非常简便,如果批量申请公有云资源,再逐个手动配置部署 K3s 集群,那工作量也是不少的;尤其是需要部署多套环境时,手动部署的工作量很多。接下来我会为大家介绍一下我在开发过程中使用 AutoK3s 最常用的实践场景——基于 AutoK3s 快速搭建单节点 Rancher 服务。本文所使用的环境版本信息:

一键启动
如果您是 Linux 或者 MacOS 用户,可以使用以下脚本安装 AutoK3s 并启动 UI Portal:
或者使用 Docker 一键启动 UI Portal:
服务启动后,打开浏览器,输入地址http://127.0.0.1:8080 访问 UI。
创建集群
在启动 Rancher 前,我们需要先准备一个单节点的 K3s 集群,在本示例中,我们在 UI 上使用 AWS Provider,创建包含一个 Master 节点,版本为 v1.21.12+k3s1 的 K3s 集群。
集群配置信息如下:1.Instance Options 中使用实例类型搜索功能,设置 2C/4G 的 t3a 类型,选择 SUSE Linux 的 AMI,使用默认网络以及测试用的安全组。

在最新版 UI 中,我们可以很方便地选择实例配置。如下图所示,我们可以通过 image 搜索的功能快速获取 AMI 信息。在本示例中,我们使用 SUSE Linux 的 AMI 来创建 EC2 实例。

2.K3s Options 中,我们设置集群版本为 v1.21.12+k3s1,并且禁用 traefik 服务。

配置信息完成后,点击创建按钮,等待集群创建完成。
小贴士:由于我在开发过程中经常要部署不同版本的 K3s 集群,或初始化不同配置的实例,所以我会将常用的集群配置信息保存到 AutoK3s 模板中,直接使用指定的模板就可以快速创建集群了。
安装 Rancher
集群创建完成后,我们可以使用 Execute Shell 功能,进入虚拟机,执行以下脚本,来启动单节点 Rancher。
接下来等待 rancher 部署成功,这里的脚本我们使用的是 4 层 LB 方式部署 Rancher 服务,借助了 K3s 的 Service LB 功能,这里我们可以直接使用实例的 public IP 来访问 Rancher 服务,接下来我们可以在 local 集群中部署一些应用来验证功能了。

升级 local 集群
如果我们想要验证升级 local 集群的场景,可以在 AutoK3s 中使用集群升级功能,例如我们将上面示例中的 K3s 集群升级到 v1.22.9+k3s1 版本。

点击 Upgrade 按钮,等待集群升级完成,刷新 Rancher 页面,可以看到 local 集群版本已经升级为 v1.22.9+k3s1 版本。

以上就是我们最佳实践的全部内容了,您可以根据自己的使用场景去发掘更多更有趣的用法,欢迎在社区中与我们交流沟通。
后续规划
在下个版本中,AutoK3s UI 会继续增加对其他公有云的支持,也会继续完善产品中的问题。如果您有好的建议,可以在 github 或社区中反馈给我们。
AutoK3s 的未来目标是给开发者打造一款自服务的 K3s 管理工具,等同于更加轻量的 Rancher。
您也可以通过 https://github.com/cnrancher/autok3s/milestones 来了解第一手功能规划。
一切开源
感兴趣的用户可以在 Github 上的开源地址获取更多文档信息:https://github.com/cnrancher/autok3shttps://docs.rancher.cn/docs/k3s/autok3s/_index/
AutoK3s 是纯粹面向开发者的一款小工具,并非企业级产品。如果您在使用过程中遇到什么问题,或者您有什么好的意见,欢迎提交 issue;如果您喜欢我们,请点亮 star。
关于 AutoK3s 更多特性,可查看之前的介绍:
版权声明: 本文为 InfoQ 作者【Rancher】的原创文章。
原文链接:【http://xie.infoq.cn/article/e60fe91ffe64b221d75d5f971】。文章转载请联系作者。
评论