如果Kubernetes是你的家,那麼Helm就是你的宜家
Kubernetes為你所有的容器應用提供了一個家。但是,你如何用資料庫和網路應用等來佈置這個家?這就要介紹下Helm了,如果Kubernetes是你的家,Helm就是你獲取傢俱的地方。
Kubernetes是你應用的家
Kubernetes需要一組伺服器(裸機或虛擬機器),還需要一個複雜的容器管理系統。遵循宣告式基礎架構的原則,Kubernetes提供了從簡單容器執行環境(Pods)到入口點、服務抽象和持久儲存卷等數十種資源定義。這些使Kubernetes成為執行容器化應用靈活而強大的家。
但是,將新應用部署到新家中會帶來陡峭的學習曲線,以及Adam Reese所說的Kubernetes開發週期——複製YAML、貼上YAML、固定縮排、重複。
Helm讓你跳過這一切。
Helm是你的宜家
多少人家裡有傢俱?答案是幾乎所有人。
但是有多少人在家裡製作傢俱?這樣的人少得多。
只有那些擁有高度的技術知識,熟練掌握眾多工具的人會這麼做。他們熱衷於製作傢俱的每一個細節。
許多人選擇讓工匠為我們製作傢俱,而後選擇我們想要的,並處理一些小的細節,以適應個人口味。這就是為什麼像宜家這樣的傢俱製造商取得了成功。他們通過一些簡單的工具簡化了拿到傢俱的步驟。
Kubernetes提供所有的原材料來製作你的叢集傢俱—— Pods、DaemonSets、ServiceAccounts、PersistentVolumeClaims、ConfigMaps、Services等。那些願意自己琢磨的人可以仔細地模擬他們選擇部署的每個應用的細節。
但正如許多人更喜歡宜家而不是木工車間一樣,大多數人寧願依靠現有的、熟練組裝好的Kubernetes應用。
Helm解決方案
例如,我可以建立自己的MySQL容器映象,然後完成為Kubernetes部署組裝正確的引數組合的過程。這可能需要至少設定一個Service、Deployment、ConfigMap和一個PersistenVolume / PersistentVolumeClaim對。
不過,更好的方式是,獲取一個由專家制作的、並可以根據自己需要進行調整的已有配置。
這就是Helm所解決的問題。
Helm Chart是專業製作的Kubernetes資源的預打包配置。那些更喜歡簡單地從現有MySQL配置開始的人可以安裝Helm圖表:
$ helm install stable / mysql
或者可以從圖表開始,自定義引數:
$ helm install stable / mysql -f myconfig.yaml
或者可以拿來圖表並深入其機制,進行深度修改:
$ helm fetch stable / mysql
$ cd mysql
$#隨意編輯
$ helm install .
那些Kubernetes工匠可以建立自己的Helm圖表,然後分享出來。
$ helm create customMySQL
$#編輯模板和配置來建立圖表
$ helm package customMySQL
一旦圖表打包,它就可以分發給其他Helm使用者。
通常,當我們談論Helm時,我們會把它作為Kubernetes的包管理器。但是從更廣義的角度來看,我們可以將其視為共享Kubernetes知識的工具,以共同提高雲原生應用的質量。
Helm旨在降低Kubernetes新手的學習曲線。它旨在使應用重用變得簡單,目的是鼓勵Kubernetes最佳實踐的發展和分享。
Kubernetes是一個華麗的家,正在重新定義我們執行應用的方式,而Helm是為這個家提供高品質應用的方式。
本文轉移K8S技術社群- ofollow,noindex">如果Kubernetes是你的家,那麼Helm就是你的宜家