王海龍,Rancher 中國(guó)社區(qū)技術(shù)經(jīng)理,Linux Foundation APAC Evangelist,負(fù)責(zé) Rancher 中國(guó)技術(shù)社區(qū)的維護(hù)和運(yùn)營(yíng)。擁有 9 年的云計(jì)算領(lǐng)域經(jīng)驗(yàn),經(jīng)歷了 OpenStack 到 Kubernetes 的技術(shù)變革,無(wú)論底層操作系統(tǒng) Linux,還是虛擬化 KVM 或是 Docker 容器技術(shù)都有豐富的運(yùn)維和實(shí)踐經(jīng)驗(yàn)。
Kubernetes 已成為容器編排的事實(shí)標(biāo)準(zhǔn),改變了我們的開(kāi)發(fā)流程。十年前,我們只需要將代碼打包成 war/jar 包,然后啟動(dòng)應(yīng)用即可。然而,現(xiàn)在面向 Kubernetes 的開(kāi)發(fā),交付的產(chǎn)物有可能是 Helm Chart、Workload Yaml、Dockerfile 或者容器鏡像,最后由運(yùn)維將這些交付物部署到 Kubernetes 集群中。
Kubernetes 的學(xué)習(xí)成本較高,它有一個(gè)陡峭的學(xué)習(xí)曲線(xiàn)。對(duì)于沒(méi)有 Kubernetes 經(jīng)驗(yàn)的開(kāi)發(fā)者,如何將應(yīng)用部署到 Kubernetes 集群上是一個(gè)大挑戰(zhàn)。這時(shí),一個(gè)能夠?qū)⒃创a自動(dòng)部署到 Kubernetes 集群中的工具就變得至關(guān)重要。
什么是 Epinio
Epinio 是一個(gè)由 Kubernetes 驅(qū)動(dòng)的應(yīng)用開(kāi)發(fā)引擎,由 SUSE 推出。只要將 Epinio 添加到你的集群中,就可以創(chuàng)建自己的平臺(tái)即服務(wù)(PaaS)解決方案,可以在其中部署應(yīng)用程序,而無(wú)需自己建立基礎(chǔ)設(shè)施。
Epinio 抽象出 Kubernetes 的復(fù)雜性,因此你可以只關(guān)注編寫(xiě)代碼本身。應(yīng)用程序通過(guò)將其源代碼直接推送到平臺(tái)來(lái)啟動(dòng),消除了復(fù)雜的 CD 管道和 Kubernetes YAML 文件。最后,你可以通過(guò)一個(gè)由 ingress controller 開(kāi)放的 URL 來(lái)訪(fǎng)問(wèn)你的應(yīng)用程序。
使用 Epinio 來(lái)運(yùn)行你的應(yīng)用程序,可以讓你專(zhuān)注于業(yè)務(wù)功能邏輯,而非繁瑣的配置容器和 Kubernetes 對(duì)象。Epinio 會(huì)自動(dòng)識(shí)別你使用的編程語(yǔ)言,使用 Paketo Buildpack 構(gòu)建一個(gè)合適的鏡像,并在 Kubernetes 集群中啟動(dòng)容器。如果你已經(jīng)有了一個(gè)可用的鏡像,也可以選擇使用自己的鏡像。
開(kāi)發(fā)人員體驗(yàn) (DX) 是一個(gè)熱門(mén)話(huà)題,好的工具可以減輕壓力、提高生產(chǎn)力并鼓勵(lì)工程師專(zhuān)注于自己的優(yōu)勢(shì)領(lǐng)域,而不會(huì)被低級(jí)組件分散注意力。更簡(jiǎn)單的應(yīng)用程序部署體驗(yàn)可以讓開(kāi)發(fā)人員騰出時(shí)間來(lái)做更有價(jià)值的工作。
總之,Epinio 可以讓開(kāi)發(fā)人員輕松迭代在 Kubernetes 中運(yùn)行的應(yīng)用程序:
- 無(wú)需 Kubernetes 經(jīng)驗(yàn)
- 沒(méi)有陡峭的學(xué)習(xí)曲線(xiàn)
- 本地設(shè)置快速簡(jiǎn)單,零配置
- 無(wú)需構(gòu)建復(fù)雜的 CD 管道或編寫(xiě) YAML
*關(guān)注應(yīng)用程序邏輯,而不是容器或 Kubernetes 細(xì)節(jié)
本文將展示如何安裝 Epinio 并部署一個(gè)簡(jiǎn)單的應(yīng)用程序。
先決條件
你需要有一個(gè) Kubernetes 集群才能使用 Epinio。你可以使用 K3s、minikube、Rancher Desktop 等工具或任何托管服務(wù)(例如 Azure Kubernetes Service 或 Google Kubernetes Engine)來(lái)啟動(dòng) Local 集群。
除了 Local 集群,還需要在你的環(huán)境中安裝 Kubectl 和 Helm,初始化 Epinio 時(shí)需要使用這些工具。
Epinio 如何運(yùn)行?
Epinio 將多個(gè) Kubernetes 組件包裝在更高級(jí)別的抽象中,允許你將代碼直接推送到平臺(tái)。Epinio 會(huì)檢查源代碼,選擇合適的 buildpack 并創(chuàng)建 Kubernetes 對(duì)象來(lái)部署你的應(yīng)用程序。
部署過(guò)程是完全自動(dòng)化的,全部由 Epinio 處理。你無(wú)需了解容器或 Kubernetes 即可啟動(dòng)你的應(yīng)用程序。推送新代碼會(huì)引發(fā)一系列操作,使你可以通過(guò)公共 URL 訪(fǎng)問(wèn)該項(xiàng)目。
Epinio 首先壓縮你的源代碼,并將存檔上傳到在你的集群中運(yùn)行的 MinIO 對(duì)象存儲(chǔ)服務(wù)器中。然后,它通過(guò)將其組件與 Paketo Buildpack 匹配來(lái)“stages”你的應(yīng)用程序。這個(gè)過(guò)程會(huì)產(chǎn)生一個(gè)可用于 Kubernetes 的容器鏡像。
在集群中安裝 Epinio 后,你可以使用 CLI 與其交互。Epinio 還帶有用于管理應(yīng)用程序的 Web UI。
Epinio 詳細(xì)推送流程,可參考:
Epinio 如何使用
Epinio 是專(zhuān)門(mén)為加強(qiáng)開(kāi)發(fā)工作流程而設(shè)計(jì)的,為開(kāi)發(fā)者處理部署。它設(shè)置迅速,使用簡(jiǎn)單,從開(kāi)發(fā)者的筆記本電腦到生產(chǎn)云的所有環(huán)境皆可適用??梢酝ㄟ^(guò)運(yùn)行單個(gè)命令來(lái)部署新應(yīng)用程序,避免了從頭開(kāi)始構(gòu)建容器鏡像和部署管道的工作。
即使 Epinio 提供了如此多的支持,但它在應(yīng)用程序的運(yùn)行方式上仍然很靈活。與其他 PaaS 解決方案不同,你不會(huì)被鎖定在某個(gè)平臺(tái)中。因?yàn)?Epinio 在你自己的 Kubernetes 集群內(nèi)運(yùn)行,操作者可以直接與 Kubernetes 交互,以監(jiān)控運(yùn)行中的應(yīng)用程序、優(yōu)化集群性能并解決問(wèn)題。Epinio 是一個(gè)面向開(kāi)發(fā)者的層,為 Kubernetes 注入了更多的易用性。
Epinio 安裝非常簡(jiǎn)單,使用簡(jiǎn)單的 Helm 命令即可完成安裝,可以說(shuō)是零配置的本地設(shè)置。而且也不需要了解 Kubernetes 的基礎(chǔ)即可使用 Epinio cli 來(lái)部署應(yīng)用程序。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-428701.html
了解 Epinio 的安裝、推送流程和 UI,請(qǐng)觀看 Demo 演示:https://www.bilibili.com/video/BV1TN411P7CY/?spm_id_from=333.999.0.0文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-428701.html
到了這里,關(guān)于Epinio:Kubernetes 的應(yīng)用程序開(kāi)發(fā)引擎的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!