Epinio:Kubernetes 的应用程序开发引擎

介绍 Epinio 的基本使用

Posted by Ksd on March 27, 2023

Kubernetes正在成为容器编排事实上的标准,现代开发流程也很难离开 Kubernetes,Kubernetes 出现之后也基本改变了我们的开发流程。十年前,我们只需要将代码打包成 war/jar 包,然后启动应用即可。但现在面相 Kubernetes 的开发,交付的产物有可能是 Helm Chart、Workload Yaml、Dockerfile 或者容器镜像,最后由运维将这样交付的产物部署到 Kubernetes 集群中。

但是,Kubernetes 的学习成本并不低,它有一个陡峭的学习曲线。那么,如何让没有 Kubernetes 经验的开发者来将应用部署到 Kubernetes 集群上是我们需要解决的问题。实际上对于一个开发者来说,你可能只需要一个工具,一个非常简单易用的工具,可以让你将源代码自动部署的 Kubernetes 集群中。

什么是 Epinio

Epinio (https://epinio.io/) 是由 Rancher 开源的一个产品,是一个由 Kubernetes 驱动的应用开发引擎。只要将 Epinio 添加到你的集群中,就可以创建你自己的平台即服务(PaaS)解决方案,你可以在其中部署应用程序,而无需自己建立基础设施。

Epinio 抽象出 Kubernetes 的复杂性,因此你可以只关注编写代码本身。应用程序通过将其源代码直接推送到平台来启动,消除了复杂的 CD 管道和 Kubernetes YAML 文件。最后,你可以通过一个由 ingress controller 开放的 URL 来访问你的应用程序。

使用 Epinio 来运行你的应用程序,可以让你专注于业务功能的逻辑,而不是繁琐的配置容器和 Kubernetes 对象。Epinio 会自动识别你使用的编程语言,使用 Paketo Buildpack 构建一个合适的镜像,并在 Kubernetes 集群中启动你的容器。如果你已经有了一个可用的镜像,你也可以选择使用你自己的镜像。

开发人员体验 (DX) 是一个热门话题,因为好的工具可以减轻压力、提高生产力并鼓励工程师专注于自己的优势,而不会被低级组件分散注意力。更简单的应用程序部署体验可以让开发人员腾出时间来做更具核心价值的工作。

Epinio 可以让开发人员可以轻松的迭代在 Kubernetes 中运行的应用程序:

  • 无需 Kubernetes 经验
  • 没有陡峭的学习曲线
  • 本地设置快速简单,零配置
  • 无需构建复杂的 CD 管道或编写 YAML
  • 关注应用程序逻辑,而不是容器或 Kubernetes 细节

本教程将向你展示如何安装 Epinio 并部署一个简单的应用程序。

先决条件

你需要有一个 Kubernetes 集群才能使用 Epinio。你可以使用 K3s、minikube、Rancher Desktop 等工具或任何托管服务(例如 Azure Kubernetes Service (AKS) 或 Google Kubernetes Engine (GKE))启动 Local 集群。

除了 Local 集群,还需要在你的环境中安装 Kubectl 和 Helm,因为初始化 Epinio 时需要使用这些工具。

Epinio 如何运行?

Epinio 将多个 Kubernetes 组件包装在更高级别的抽象中,允许你将代码直接推送到平台。Epinio 会检查你的源代码,选择合适的 buildpack 并创建 Kubernetes 对象来部署你的应用程序。

部署过程是完全自动化的,完全由 Epinio 处理。你无需了解容器或 Kubernetes 即可启动你的应用程序。推送新代码会引发一系列操作,使你可以通过公共 URL 访问该项目。

Epinio 首先压缩你的源代码,并将存档上传到在你的集群中运行的 MinIO 对象存储服务器中。然后,它通过将其组件与 Paketo Buildpack 匹配来“stages”你的应用程序。这个过程会产生一个可用于 Kubernetes 的容器镜像。

在集群中安装 Epinio 后,你可以使用 CLI 与其交互。 Epinio 还带有用于管理应用程序的 Web UI。

Epinio 详细推送流程,可参考:

Epinio 如何使用

Epinio 是专门为加强开发工作流程而设计的,为你处理部署。它设置迅速,使用简单,适用于从自己的笔记本电脑到生产云的所有环境。可以通过运行单个命令来部署新应用程序,节省了你要从头开始构建容器镜像和部署管道的工作。

虽然 Epinio 为你做了很多工作,但它在应用程序的运行方式上也很灵活。与其他 PaaS 解决方案不同,你不会被锁定在某个平台中。因为 Epinio 在你自己的 Kubernetes 集群内运行,操作者可以直接与 Kubernetes 交互,以监控运行中的应用程序、优化集群性能并解决问题。Epinio 是一个面向开发者的层,为 Kubernetes 注入了更多的易用性。

Epinio 安装非常简单,可使用简单的 Helm 命令即可完成安装,可以说是零配置的本地设置。而且也不需要你了解 Kubernetes 的基础即可使用 Epinio cli 来部署你的应用程序。

欲了解 Epinio 的安装、推送流程和 Epinio 的 UI 介绍,可观看如下 Epinio Demo:

https://www.bilibili.com/video/BV1TN411P7CY/?vd_source=54ad2539a55cf75ef651d64c91c39b18