1款工具助力Rancher HA快速部署,极速提升研发测试效率

边缘计算k3s社区

共 7479字,需浏览 15分钟

 · 2021-04-14

活动预告

本周五下午2:30—3:00K3s快闪直播第二期准时开播!SUSE社区技术经理与你相约直播间,带你从K3s架构入门,了解K3s的底层原理。


扫描下方二维码即可免费报名咯


AutoK3s是一款K3s集群自动化部署工具,可以方便开发者自助管理云环境中的K3s集群,可支持AWS/Aliyun/TencentCloud等主流公有云,随用随部署,用完即释放,对于在平时工作过程中需要各种K8s环境的开发测试人员,可以从很大程度上节省重复部署环境的时间,提升工作效率。


新发布的 v0.4.1 版本增强了本地 UI 的用户体验,优化了K3s常用参数的配置,使得 K3s 参数配置变得简单起来,例如一键禁用组件、配置runtime、设置网络组件等,对于新手与K8s深度用户都有很好的兼容性。


本文将介绍如何基于 v0.4.1 版本的 AutoK3s 使用 AWS provider 快速部署 Rancher HA 环境,并创建 K3s 集群导入 Rancher 进行统一管理。


本文依赖的相关软件版本:


一键启动


如果您是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:


$ docker run -itd --restart=unless-stopped -p 8080:8080 cnrancher/autok3s:v0.4.1


打开浏览器,输入地址http://127.0.0.1:8080 访问UI。


创建 Local 集群


我们准备创建1 master和2 worker的K3s集群,集群配置信息如下:


  1. Instance Options 中的 instance-type 为 t2.medium

  2. Instance Options 中的 SSH Public与SSH Private

  3. Instance Options 中的 security-group,由于是快速构建临时环境,建议使用allow all规则

  4. K3s Options 中的 k3s-version 使用v1.18.8+k3s1

  5. K3s Options 中的 master-extra-args,建议禁用traefik,在下拉菜单中勾选disabled traefik,移动到右侧即可实现一键禁用组件。


修改完配置以后,点击创建按钮,等待集群创建完成。



小提示:在这里我们可以将集群信息保存为模板,方便后续简化重复配置的工作。


部署Rancher


由于Rancher HA需要配置访问证书,本文使用最简化的 Rancher Generated Certificates(https://rancher.com/docs/rancher/v2.x/en/installation/resources/advanced/helm2/helm-rancher/#rancher-generated-certificates) 形式,首先我们部署cert-manager应用。


点击集群名称进入集群详情页面,使用 Excute Shell 功能连接到master节点主机。在/var/lib/rancher/k3s/server/manifests 目录中,增加cert-manager.yaml:


apiVersion:   v1kind:   Namespacemetadata:  name: cert-manager---apiVersion:   helm.cattle.io/v1kind:   HelmChartmetadata:  name: cert-manager  namespace: cert-managerspec:  chart:   https://charts.jetstack.io/charts/cert-manager-v1.2.0.tgz  targetNamespace: cert-manager  set:    installCRDs: "true"


# 您可以使用以下命令验证安装结果$ kubectl -n cert-manager get pods


在/var/lib/rancher/k3s/server/manifests 目录中,增加rancher.yaml:


apiVersion: v1kind: Namespacemetadata:  name: cattle-system---apiVersion: helm.cattle.io/v1kind: HelmChartmetadata:  name: rancher  namespace: kube-systemspec:  chart: https://releases.rancher.com/server-charts/stable/rancher-2.5.7.tgz  targetNamespace: cattle-system  set:    hostname: "rancher-test.jacie.work" # 域名可修改---apiVersion: v1kind: Servicemetadata:  labels:    app: rancher  name: rancher-lb-svcnamespace: cattle-systemspec:  ports:  - name: http    port: 80    protocol: TCP    targetPort: 80  - name: https    port: 443    protocol: TCP    targetPort: 443  selector:    app: rancher  sessionAffinity: None  type: LoadBalancer


使用K3s的servicelb来做负载均衡入口,这样最轻量化的实现L4 Rancher HA部署模式:


# external-ip就是访问入口$ kubectl get svc rancher-lb-svc -n cattle-system


在域名服务商的控制台中,配置域名(rancher-test.jacie.work)与 rancher-lb-svc的external-ips的映射关系,直接使用域名即可访问Rancher HA环境。由于Autok3s在部署K3s时,自动帮我们设置了Node的External IP,这样servicelb可以很自然的使用这个External IP作为访问入口。


注意:公有云场景请注意关机后实例IP变化的问题,以上描述针对的是随用随销毁的验证场景。


创建集群并导入Rancher管理


接下来我们可以通过AutoK3s再创建一个使用docker runtime的1 master 1 worker的K3s集群,并将其导入Rancher进行管理。


集群配置信息如下:


  1. Instance Options 中的 instance-type 为 t2.medium

  2. Instance Options 中的 SSH Public与SSH Private

  3. Instance Options 中的 security-group,由于是快速构建临时环境,建议使用allow all规则

  4. K3s Options 中设置K3s版本为v1.19.7+k3s1

  5. K3s Options 中的 master-extra-args参数,在下拉菜单中选择docker runtime并移动到右侧,AutoK3s会自动为您在主机上安装docker,并使用docker作为K3s的容器运行时。


修改完配置以后,点击创建按钮,等待集群创建完成。



集群创建完成以后,使用 Launch Kubectl 功能,将该集群导入到Rancher进行管理即可。


总结


使用AutoK3s可以很方便的部署不同版本的K3s集群,并且UI上提供了一些常用参数配置,方便用户个性化配置K3s集群参数,对于新手与K8s深度用户都有很好的兼容性。


AutoK3s面向本土环境做了一些优化,K3s 安装脚本默认指向本土安装源,减少重复部署工作和部署失败几率,极大程度上提升了研发跟测试的效率。


AutoK3s 后续版本会支持自动部署mainfests特性,您可以通过指定manifests文件即可完成一键部署K3s 集群并自动安装应用的过程。


此外,还会提供APP Market Place特性,您可以通过增加自己的helm repo,自动向不同的K3s集群发布应用,简化应用安装部署的过程。


AutoK3s一切开源,欢迎试用,感兴趣的用户可以在Github上的开源地址获取更多文档信息:

  • https://github.com/cnrancher/autok3s

  • https://docs.rancher.cn/docs/k3s/autok3s/_index/


作者简介


鞠宏超,SUSE研发工程师。4年云计算领域经验。先后参与了Longhorn产品研发,Rancher2.x产品研发,目前主要致力于Rancher企业版产品的设计与研发工作。



推荐阅读


配置高可用K3s集群完全攻略

K3s高可用部署实践及其原理

从架构到部署,全面了解K3s




About k3s


k3s 是首个进入 CNCF 沙箱项目的 K8S 发行版,同时也是当前全球用户量最大的 CNCF 认证轻量级 K8S 发行版。自2019年3月发布以来,备受全球开发者们关注,至今GitHub Star数已超过 16,000,成为了开源社区最受欢迎的边缘计算 K8S 解决方案。截至目前,K3s全球下载量超过100万次,每周平均被安装超过2万次,其中30%的下载量来自中国。


k3s 专为在资源有限的环境中运行 Kubernetes 的研发和运维人员设计,将满足日益增长的在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群需求。k3s 的发布,为开发者们提供了以“Rancher 2.X + k3s”为核心的从数据中心到云到边到端的 K8S 即服务(Kubernetes-as-a-Service),推动 Kubernetes Everywhere。

扫码添加k3s中文社区助手

加入官方中文技术社区

官网:https://k3s.io


浏览 9
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报