Pivotal 開源K8s 原生容器構建服務 kpack

2019-09-06 03:14:38

作者 | Matthew McNew
譯者 | 核子可樂
過去幾年以來,容器技術的普及程度一直在不斷提高。然而,這種技術的具體效用在企業規模場景下卻往往難以量化。

近期 Pivotal 推出了一系列產品,希望幫助企業通過 Kubernetes 原生工具鏈獲得更多的回報,Pivotal Build Service 就是其中的一個代表性的工具。

Build Service 可幫助開發團隊持續構建、維護以及更新生產就緒型 OCI 映象,其包含了兩大核心元件:Cloud Native Buildpakcs 以及自主研發的 Kubernetes 資源控制器。

其中 Cloud Native Buildpacks 是由 Pivotal 與 Heroku 聯合研發,能夠以一致且可重現的方式構建模組與映象,生成的映象能夠實現隨處執行;第二大元件則是 kpack,屬於一組 Kubernetes 資源控制器,也正是我們今天文章的探討主體。

感興趣的朋友可以檢視 Kubernetes 資源說明文件:

https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/

kpack:一種 Kubernetes 原生型容器構建與更新方式  

我們希望在 Build Service 中將 Cloud Native Buildpacks 體驗與 Kubernetes 的宣告模式相結合,並以大家熟悉的方式擴充套件 Kubernetes 工作流程。立足這一目標,我們利用定製化資源定義對 Kubernetes API 進行了擴充套件。如此一來,我們就可以利用 Kubernetes 技術建立起一個可組合的宣告式架構,進而用於構建服務。定製化資源定義(CRD)由定製化控制器負責協調,用於實現容器映象的自動化構建,並可根據使用者提供的配置隨時對映象加以更新。

Pivotal kpack 商業實現方案由 Pivotal Build Service 提供,能夠在 Kubernetes 上提高開發人員的工作效率。Build Service 將 kpack 與 buildpacks 以及 Kubernetes 許可權模式等其它實用工具整合起來,使用者還可以使用 pb 可選專用 CLI 提升工程師工作效率,並配合 teams 降低多租戶環境管理。

為了提供 Kubernetes 原生體驗,Pivotal 在 kpack 專案之內對多個 Kubernetes 原生元件進行了開源。kpack 提供一個 CRD 作為其介面,使用者可以藉此與全部 Kubernetes API 工具進行互動,其中也包括 kubectl。

為什麼要開源 kpack?  

為什麼要開源 kpack 呢?主要原因有兩點:

  • 為了將 Build Service 的容器構建功能與宣告邏輯作為可消費的元件進行交付,以供社群內的其他卓越產品隨意使用。

  • 為了提供一套強大介面,以供希望實現細粒度控制的使用者們建立並修改映象資源。

下面,我們一同瞭解其中的基本原理。

   利用 kpack 構建卓越產品

kpack 的核心在於自動建立並更新能夠隨處執行的容器映象,這也是 Pivotal 客戶最重視的核心技術之一。但是 kpack 在社群的手中又將迸發出怎樣的能量?相信在眾多卓越社群成員的支援之下,kpack 將獲得現在還無法想象的妙用。

Pivotal 的目標是改變軟體構建的方式。因此,像 kpack 這樣的技術應該面向所有人開放!目前我們已經看到 kpack 在眾多用例中的價值潛力,例如 riff 將利用 kpack 構建函式以處理各類事件;Cloud Foundry 社群計劃在其 Cloud Foundry 應用程式執行時當中將 kpack 作為新的應用分段機制。

   利用 kpack 獲取更多控制選項

Kubernetes 是一種新的標準,並已經成為“雲原生基礎設施中的核心遷移選項”。不同企業正處於 Kubernetes 旅程中的不同階段,其中的各個小組也對 Kubernetes 互動以及使用 Kubernetes 工具有著不同的需求。因此,Pivotal Build Service 的目標就是滿足使用者的一切需求,提供一流的 Kubernetes 使用體驗,幫助使用者與 CRD 直接互動。

kpack 快速上手  

如何配合 kpack 使用 kubectl?首先,需要在叢集上安裝 kpack。您可以點選此處參考 kpack repo 中的說明文件。此外,如果您能夠訪問,也可以參考 Build Service 說明文件中的操作步驟。

kpack 能夠實現以下簡單工作流程:應用映象、自動構建、映象構建釋出

Git Push、kpack 變更檢測、BUildpack 重構

kpack 的最佳使用方法,是配合安裝有 Pivotal Build Service 的 Enterprise PKS 叢集。不過由於 kpack 具有 Kubernetes 原生性質,因此也完全能夠執行在任何受支援的 Kubernetes 叢集之上。

訪問 kpack repo (https://github.com/pivotal/kpack) 以獲取原始碼、說明文件以及更多細節資訊,填寫此表單(https://pivotal.io/contact) 訪問 Build Serivce 的 alpha 測試版本,一旦獲取訪問許可,即可檢視 PivNet 上釋出的原始碼。

原文連結:

https://content.pivotal.io/blog/introducing-kpack-a-kubernetes-native-container-build-service


活動推薦

微服務落地涉及到以運維為首,包含IT架構、應用架構、組織架構等多個方面,這是一個循序漸進的階段性過程,而在每一個階段都會遇到運維、部署、安全等問題,包括組織協作上的問題。運維團隊如何在微服務架構採取有效的實施過程,請【掃碼】或點選【閱讀原文】瞭解詳細資訊。ArchSummit全球架構師峰會,7折限時直降2640元!瞭解詳情請聯絡票務經理灰灰:15600537884 ,微信同號。

已同步到看一看



熱點新聞