11月19日,业界应用最为广泛的Kubernetes管理平台创建者Rancher Labs(以下简称Rancher)宣布Rio发布了beta版本,这是基于Kubernetes的应用程序部署引擎。它于今年5月份推出,现在最新的版本是v0.6.0。Rio结合了多种云原生技术,从而简化了将代码从测试环境发布到生产环境的流程,同时保证了强大而安全的代码体验。
什么是Rio?
下图是Rio的架构:
Rio采用了诸如Kubernetes、knative、linkerd、cert-manager、buildkit以及gloo等技术,并将它们结合起来为用户提供一个完整的应用程序部署环境。
Rio具有以下功能:
-
从源代码构建代码,并将其部署到Kubernetes集群
-
自动为应用程序创建DNS记录,并使用Let’s Encrypt的TLS证书保护这些端点
-
基于QPS以及工作负载的指标自动扩缩容
-
支持金丝雀发布、蓝绿发布以及A/B部署
-
支持通过服务网格路由流量
-
支持缩容至零的serverless工作负载
-
Git触发的部署
Rancher的产品生态
Rio属于Rancher整套产品生态的一部分,这些产品支持从操作系统到应用程序的应用程序部署和容器运维。当Rio和诸如Rancher 2.3、k3s和RKE等产品结合使用时,企业可以获得完整的部署和管理应用程序及容器的体验。
深入了解Rio
要了解Rio如何实现上述功能,我们来深入了解一些概念以及工作原理。
安装Rio
前期准备
-
Kubernetes版本在1.15以上的Kubernetes集群
-
为集群配置的kubeconfig(即上下文是你希望将Rio安装到的集群)
-
在$PATH中安装的Rio CLI工具,可参阅以下链接,了解如何安装CLI:
https://github.com/rancher/rio/blob/master/README.md
安装
使用安装好的Rio CLI工具,调用rio install
。你可能需要考虑以下情况:
ip-address:节点的IP地址的逗号分隔列表。你可以在以下情况使用:
-
你不使用(或不能使用)layer-4的负载均衡器
-
你的节点IP不是你希望流量到达的IP地址(例如,你使用有公共IP的EC2实例)
服 务
在Rio中,service是一个基本的执行单位。从Git仓库或容器镜像实例化之后,一个service由单个容器以及服务网格的关联sidecar组成(默认启用)。例如,运行使用Golang构建的一个简单的“hello world”应用程序。
rio run https://github.com/ebauman/rio-demo
或者运行容器镜像版本:
rio run ebauman/demo-rio:v1