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

news/2024/12/23 5:11:53/

王海龙,Rancher 中国社区技术经理,Linux Foundation APAC Evangelist,负责 Rancher 中国技术社区的维护和运营。拥有 9 年的云计算领域经验,经历了 OpenStack 到 Kubernetes 的技术变革,无论底层操作系统 Linux,还是虚拟化 KVM 或是 Docker 容器技术都有丰富的运维和实践经验。

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

Kubernetes 的学习成本较高,它有一个陡峭的学习曲线。对于没有 Kubernetes 经验的开发者,如何将应用部署到 Kubernetes 集群上是一个大挑战。这时,一个能够将源代码自动部署到 Kubernetes 集群中的工具就变得至关重要。

什么是 Epinio

Epinio 是一个由 Kubernetes 驱动的应用开发引擎,由 SUSE 推出。只要将 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 或 Google Kubernetes Engine)来启动 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 的安装、推送流程和 UI,请观看 Demo 演示:https://www.bilibili.com/video/BV1TN411P7CY/?spm_id_from=333.999.0.0


http://www.ppmy.cn/news/53599.html

相关文章

HTTP 知识点总结

GET 和 POST 的区别有哪些? 区别一:幂等性 由于 GET 是读,POST 是写,所以 GET 是幂等的,POST 不是幂等的 由于 GET 是读,POST 是写,所以用浏览器打开网页会发送 GET 请求,想要 POST…

vue2之echarts的封装 折线图,饼图,大图

目录 vue2之echarts的封装 折线图,饼图,大图折线图,饼图chartPan.vue使用 chartPan.vue 之饼图效果使用 chartPan.vue 之折线图效果展开大图大图组件 maxChart.vue大图效果 vue2之echarts的封装 折线图,饼图,大图 折线…

数据集合注入

集合注入 前面我们已经能完成引入数据类型和简单数据类型的注入,但是还有一种数据类型集合,集合中既可 以装简单数据类型也可以装引用数据类型,对于集合,在Spring中该如何注入呢? 先来回顾下,常见的集合类型有哪些…

JAVA接口的基本测试------JAVA入门基础教程

public class Interface {public static void main(String[] args){System.out.println(Flyable.max_speed);System.out.println(Flyable.min_speed);//类与接口是实现关系Bullet b new Bullet();b.attack();b.fly();Flyable f new Bullet();f.fly();} }interface Flyable {p…

数据包守恒 TCP 拥塞控制

数据包守恒是包括拥塞控制在内的合理利用带宽的方法之基石,它维持了有效网络传输的稳定,过去 40 年是,未来还是。数据包守恒可以描述为: 当带宽恰好满载时,receiver 收到 1 个数据包后 sender 才能发送 1 个数据包。当…

hbase 设置超时参数

一、为什么要设置超时参数 hbase设计的目标是成为一个高可用集群,能够在失败的时候快速响应,当出现网络抖动等偶发情况时,能快速重试,让用户可以快速拿到结果。而不是一直卡着,使得上层应用阻塞等待。 这个功能可以通…

python jpg转成多帧tif

python jpg转成多帧tif -- coding: UTF-8 -- import glob from PIL import Image for i in glob.glob(r’D:\2-python\9-清远\JPG-tif-pdf\60-2018-永久-G2-东城江埗JPG\60-2018-永久-G2-东城江埗-0101*.jpg’): im Image.open(i,“r”) print(i.split(“.”)[0]) im.s…

Makefile

目录 1、什么是Makefile2、Makefile文件命名和规则3、工作原理4、变量5 模式匹配6 函数 橙色 1、什么是Makefile 2、Makefile文件命名和规则 可以看到,lession07目录下有如下的几个文件,我在该目录下先创建Makefile目录,并在其中写入如下图的…