2019 年 5 月 21 日,业界领先的容器管理软件提供商 Rancher Labs(以下简称 Rancher)发布了2019年重磅新品Rio,Rio 是一个可以在任何符合标准的 Kubernetes 集群上使用的 MicroPaaS 平台,由部分 Kubernetes 自定义资源和一个可选的 CLI 构成,用户可以轻松地将服务部署到 Kubernetes,自动获得持续交付、DNS、HTTPS、路由、监控、自动扩缩容、金丝雀部署、git 触发构建等功能。
“Rio 所倡导的 MicroPaaS 理念是超前的,或许在当下它并不容易被大家所认知和理解。但正如一年前我们发布多 k8s 集群管理功能一样,Rio 的极简主义将会把你带进 cattle 时代的美妙体验。”Rancher 大中华区总经理秦小康分享道:“除此之外,Rio 可以运行在已有的任何 k8s 提供的 pod 或者命名空间上,它构建了完全不依赖底层平台的全新架构,是一款具备划时代意义的产品。”
那么,Rio 是一款怎么样的产品,它又有怎样的魅力呢?在本文中,我们将跟随 Rancher 首席架构师及联合创始人 Darren Shepherd 的步伐,看如何通过一个现有的 Kubernetes 集群和 Rio CLI,构建专属于 Rio 的极简世界。
下载 CLI
CLI 可用于 macOS、Windows 和 Linux,若要在本地系统上安装,请运行以下命令:
如果您不想通过 curl 安装,也可以从 Github 手动安装 Rio:
https://github.com/rancher/rio/releases
为 Rio 设置集群
Rio 使用活跃的 Kubernetes 集群,因此设置 KUBECONFIG 来指向要安装 Rio 的集群,并确保选择了正确的命名空间。
(一个小提醒——你也可以通过 kubectl --context xxx 切换到合适集群进行操作。)
当您准备好后,运行 rio isntall,将 Rio 安装到活跃集群/命名空间当中。
运行示例服务
检查运行状态
什么是 MicroPaaS?
传统的 PaaS 平台,向用户“承诺”了一系列理想的功能,但从以往表现上看,PaaS 平台一直难以为用户提供真正优质的使用体验。PaaS 平台通常是重量级并难以运行的,在企业中需要有大型专用项目来部署它们,还需有专门的团队对其进行管理。PaaS 用户经常发现平台有太多的规范和限制,它们可能适用于特定的工作流程,但这未必是开发人员所熟悉的工作流程。
Rio 来自 Rancher 的一系列项目(k3s、k3OS),这些项目均专注于轻量级、简单且灵活的基于 Kubernetes 的项目。Rio 的所有功能都经过专门设计,用户可以直接使用默认设置来快速运行和使用 Rio,当然也可以根据实际需要来进行灵活的配置、替换或禁用。如果您只想使用 Rio 当中的一个功能,您可以只使用这一功能并忽略其余功能。这一切都是允许发生的,Rio 是一个和 Kubernetes 生态系统紧密结合、并从中汲取了大量资源的平台。
Rio 由一些 Kubernetes 自定义资源、一个可选的 CLI 和一个集群中运行的控制器组成,在集群中运行 Rio,与在集群中运行其他应用的方法及体验并没有什么不同。
Rio Run
仅需单个命令,您就可以运行一个生产级的服务:
首先,您的服务将自动获得有效的 DNS 名称。即使您是在笔记本电脑上运作 Kubernetes,这个功能也一样可以工作。有了 DNS 名称之后,Rio 也会请求并为您的服务分配生产 Let’s Encrypt 证书。所有服务默认以 HTTPS 方式进行。
Rio 包含一个集成的服务网格,因此所有 Rio 的服务中包含 Prometheus 和 Grafana,默认情况下会收集 HTTP 级别的指标。
通过收集 HTTP 级指标,Rio 可以使用基于并发的扩展来自动调整您的服务。默认情况下,并发数设置为 10,因此,如果 Rio 中有 30 个并发请求,则会将您的服务自动调整为 3。Rio 甚至可以将您的服务规模设置为 0。这意味着在第一个请求进入之前,不会运行任何 pod。
如果您让 Rio 运行一个 git 位置,它会在 git 中监控和部署变更。人们仍然可以提供直接运行的 Docker 镜像,但是 git 提供了一个简单的连续部署流程。Git 位置必须从源代码构建一个 Docker 镜像。默认情况下,我们运行基于 Dockerfile 的构建。使用多阶段 Dockerfile 构建的方法十分灵活。其他模板可用于构建,以启用诸如 buildpacks 或 OpenFaaS 模板等功能。
Rio 由服务网格提供支持,可以轻松地进行金丝雀部署,当推送新的 git 提交时,将自动构建新的服务修订版并部署新的修订版,一旦修订准备就绪,我们就可以通过将权重从预设修订版转移到新修订版,自动为新服务提供流量。
所有这些功能以及更多功能,都可以从一个简单的 rio run 命令中获得。
一切开源,欢迎使用
Rio 官网主页现已上线,您可以访问官网主页了解 Rio 的更多信息:https://rio.io/
同时,欢迎通过 GitHub 下载 Rio 并使用安装:
https://github.com/rancher/rio/releases
需要协助部署和管理 Rio 的企业,请邮件联系:
info@rancher.com
评论