【云原生】Epinio--Kubernetes 的应用程序开发引擎

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

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

一、什么是 Epinio

官网:https://epinio.io/

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 来部署应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/16151.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Postman测试实践笔记

Postman测试实践 文章目录 Postman测试实践一、Postman安装与使用1.1 Postman下载及安装1.1.2 Postman Mac版 1.2 Postman 更新1.2.1 mac 版更新 1.3 Postman 其他问题 二、网络相关知识2.1 接口2.1.1 软件为什么需要接口 2.2 接口测试2.2.1 什么是接口测试:2.2.2 为…

经典回归算法

回归的概念 回归方程: 写成矩阵: 核心问题,构建预测函数z来映射特征矩阵x和标签y的线性关系 预测的目标值,有连续值也有离散值 连续值,就直接预测输出就行离散值,需要在输出端加一个变换函数例如。Si…

C#,生信软件实践(02)——欧洲分子生物学实验室(EMBL格式文件)转为核酸序列或多肽序列(FASTA格式文件)的源代码

>生信老白写的基础代码.fasta MAYBENOANYUSAGE 1 EMBL 1.1 EMBL组织 欧洲分子生物学实验室EMBL(European Molecular Biology Laboratory)1974年由欧洲14个国家加上亚洲的以色列共同发起建立,现在由欧洲30个成员国政府支持组成&#xf…

Android 项目必备(四十五)-->2023 年如何构建 Android 应用程序

Android 是什么 Android 是一种基于 Linux 内核并由 Google 开发的开源操作系统。它用于各种设备包括智能手机、平板电脑、电视和智能手表。 目前,Android 是世界上移动设备使用最多的操作系统; 根据 statcounter 的一份最近 12 个月的样本报告;Android 的市场份额…

三、SpringMVC

三、SpringMVC 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体…

ApachePOI操作Excel快速入门使用

简介 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目,主要任务是创建和维护Java API,以基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式&#xff0…

【KVM虚拟化】· 命令行KVM安装linux

目录 🍁基础本环境配置 🍁添加lvm卷 🍁qemu-img创建磁盘文件 🍂创建raw格式 🍂创建虚拟机 🍂转换格式为qcow2 🍁virt-install命令参数 🍁案例操作 🦐博客主页&#xff1a…

论文笔记:Model-Contrastive Federated Learning

0 简介 论文:Model-Contrastive Federated Learning 代码:https://github.com/QinbinLi/MOON 相关链接:本文主要是将SimCLR对比学习的思想迁移到联邦学习中,关于SimCLR的介绍见https://blog.csdn.net/search_129_hr/article/deta…

Mysql 管理

目录 0 课程视频 1 系统数据库 -> 安装完mysql ->自带四个数据库 2 常用工具 -> 写脚本用 2.1 mysql 客户端工具 2.2 mysqladmin 2.3 mysqlbinlog -> 二进制日志 -> 运维讲解 2.4 mysqlshow 2.5 mysqldump 备份用 ->导出 2.6 mysqlimport/source -…

工控老司机告诉你热电偶和RTD的区别

热电偶和热电阻都是温度传感器,但它们的原理、功能特性和应用场景有所不同。 一、原理区别 首先,热电偶是利用两种不同金属之间的热电效应来测量温度的。其原理是利用温度差引起的金属之间的热电势差进行测量。两种金属之间存在一种热电势(…

LWIP协议与TCP/IP

1. 学习一个东西,先了解这个东西是干什么用的,哪些场景会用到它,与自己已经掌握的其他知识的联系 a. 例如:LWIP这个东西是干什么用的:他就是一个裁剪后保持大部分TCP/IP功能的协议。用少量的资源消耗实现一个较为完整的…

JavaWeb05(删除增加修改功能实现连接数据库)

目录 一.实现删除功能 1.1 url如何传参? xx.do?参数参数值&参数名参数值 1.2 servlet如何拿对应值? //根据参数名拿到对应的参数值 String str req.getParameter("参数名") 1.3 如何询问? οnclick"return con…

Python实现图像的手绘效果

用Python实现手绘图像的效果 1.图像的RGB色彩模式 图像一般使用RGB色彩模式,即每个像素点的颜色由红、绿(G)、蓝(B)组成。RGB三个颜色通道的变化和叠加得到各种颜色,其中: R红色,取值范围,0-255G绿色,取值…

【Java笔试强训 8】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥两种排…

什么是JVM?

目录 1、JVM的学习内容 2、JVM概述 3、字节码 4、虚拟机 5、HotSpot VM 6、Java代码的执行流程 1、JVM的学习内容 JVM大概分为三部分: 内存与垃圾回收字节码与类的加载性能监控与调优 2、JVM概述 JVM是运行在不同操作系统上的,和硬件没有直接交…

荔枝派Zero(全志V3S)基于QT实现在LCD显示图片

文章目录 前言一、配置 buildroot 及编译二、写 QT 代码三、编译可执行文件四、拷贝到 SD 卡五、上板子测试六、资源自取 前言 有这样一个需求,通过配置 QT,在 linux 下实现显示我所想要显示的图片,实现的方式是我可以在命令行将图片的路径作…

数据库单实例升级

一、单实例环境,全时长二个半钟多。详细图文说明到这下载 1、停止所有oracle相关进程。 Emctlstop dbconsole Isqlplusctl stop Lsnrctl stop sqlplus /nolog sql>conn /as sysdba Connectedtoanidleinstance. sql>shutdown 然后,冷备份下数据库cp…

第十二章 Transform组件(下)

上一章节中我们介绍了Transform组件的属性和方法。我们发现 Transform 中有right,up和forward,而 Vector3 类中也有right,up和forward,他们是一回事嘛?我们使用Forward来说明两者之间的区别。我们知道,改变…

nodejs+vue+elementui学生毕业生离校系统

学生毕业离校系统的开发过程中。该学生毕业离校系统包括管理员、学生和教师。其主要功能包括管理员:首页、个人中心、学生管理、教师管理、离校信息管理、费用结算管理、论文审核管理、管理员管理、留言板管理、系统管理等,前台首页;首页、离…

软件测试的测试用例

1.白盒和黑盒测试: 黑盒测试:把代码看成一个黑盒子,只关心输入和输出结果之间的关系 产品功能是否符合要求; 白盒测试:能够看到代码本身,针对代码本身进行测试,测试代码本身的逻辑是否符合规范。 2.测试用…