Epinio:Kubernetes 的應用程序開發引擎

王海龍,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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章