由Google和Netflix Inc.共同開發的多雲持續交付平臺 Spinnaker釋出了1.10版本,新增了Kubernetes供應商(Kubernetes Provider),並且整合了Helm套件管理器,讓使用者以樣板產生Manifests,透過Istio支援對流量控制的支援,讓容器和Kubernetes的自動化部署更加容易。

Google提到,在Kubernetes環境中,持續交付工作仍然屬於早期階段,而企業中的發布工程團隊希望Spinnaker能以最佳實踐提供軟體交付框架,而對於剛開始使用Kubernetes的組織,也期望能取得所需要的資源,設計出適合的環境。

因此在Spinnaker 1.10中,Google與社群合作,重新設計了Kubernetes的支援,抽象化管理Kubernetes Manifests的複雜性,讓開發人員可以花更多心力在開發工作上。現在發布工程團隊可透過Manifests存取完整的Kubernetes資源,而且還會自動化處理管理Manifests的低階複雜性,像是正確處理標籤,或是為非專家提供量身定做的使用者體驗。

發布工程團隊可以為企業設計專屬的Kubernetes使用方法,並將工作管線打包成最常用路徑,發布給其他開發團隊,這將讓開發團隊不用接觸複雜的腳本以及低階Manifests操作,但同時也能繼續使用Kubernetes的所有功能。

一般來說,有兩種將應用程式自動化部署到Kubernetes的方法,其一是使用像是Jenkins這類通用調度程式(Orchestrator),編寫部署流程來控制應用程式部署,另外一種則是相對較新,以Kubernetes為主的持續整合和持續交付工具。Google指出,通用調度軟體編寫的腳本容易出錯,而這兩種方法都需要開發人員深入研究Kubernetes Manifests,但這將在進行大規模部署的時候產生瓶頸。

而Spinnaker 1.10新增的Kubernetes供應商,提供了多種特性來解決既存問題。Kubernetes供應商可以自動為要釋出的容器映像檔抓取正確的Manifests,並且支援GitOps型程序的儲存庫布局和控制流。而且還會為工作管線中的開發、QA以及產品階段產生多個Manifests,且支援Helm或是其他的樣版引擎。

Kubernetes供應商會自動再將被部署的Manifests中設定容器映像檔版本,在最佳實踐中,會使用摘要(Digests)而非標記(Tags),進而避免複雜的腳本操作。另外,也賦予了發布工程團隊限制開發人員存取Kubernetes命名空間、叢集和資源類型的能力。

Google提到,Spinnaker 1.10是持續交付和自動化軟體交付工作管線的重要里程碑,使用者現在可以在Codelab中取得Spinnaker對Kubernetes的新支援。


Advertisement

更多 iThome相關內容