helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件
這篇文章介紹一下云原生應用在 Kubernetes 上安裝時,經常會用到的一個重要工具,Helm。
Helm 是 Kubernetes 的包管理軟件。提到包管理軟件,很多人都不陌生。Maven、Gradle、pip、RubyGems 和 npm 都是包管理軟件。
作為一個包管理軟件,核心是包和管理兩個部分。
Helm Chart
第一個部分的要點是 Helm 的包中都包含什么?
我們都知道,Kubernetes 采用的是聲明式的資源管理。以 YAML 文件的形式來聲明資源的期望狀態,而 Kubernetes 會確保資源的實際狀態,滿足聲明所描述的期望。
比如,一個 Deployment 只需要聲明 Pod 的數量即可,而不用去管運行時 Pod 可能會出現的由于 Pod 失敗導致的 Pod 被重新創建等細節。
在部署一個應用到 Kubernetes 時,可能會需要聲明多種不同的資源。比如,在安裝 Postgres 時,我們可能會需要如下資源:
實際運行 Postgres 的 Deployment 或 StatefulSet。
允許其他應用訪問的 Service。
數據存儲需要的 PersistenceVolumeClaim 或 PersitenceVolume。
保存數據庫配置的 ConfigMap。
保存數據庫密碼的 Secret。
所有這些資源聲明組成了應用的安裝包,Helm 稱之為 Chart。
使用軟件包的一個重要目的是為了共享。Helm Chart 中的資源定義是通過模板生成的,包含了很多可以在安裝時進行配置的選項。以Postgres來說,你可能會需要配置數據庫的訪問密碼、存儲空間的大小和數據庫的初始化腳本等。
把Helm Chart與安裝時的配置項結合起來,就得到了一個特定的release。
以Postgres Chart為例,我們可以創建對應于開發、測試和生產環境的3個不同的release。每個release基于同樣的Chart,但是配置不同。配置項通常以YAML文件的形式來保存,也可以在命令行傳遞。
下面給出了的配置文件,對應于 Postgres 在開發環境上的release。
postgresqlUsername: devpostgresqlPassword: password
persistence:
enabled: false
通過?helm install?命令可以安裝Chart。在安裝時需要指定Chart的名稱、release的名稱和配置文件。配置文件使用?-f?參數來傳遞,也可以使用?--set?來設置單個配置項的值。
下面的代碼使用默認的配置來安裝 Nginx。
helm install nginx bitnami/nginxRelease管理
之前說的是包的部分,下面介紹 Helm 對包的管理。每個 Helm Chart 有兩個版本號,一個是所安裝的應用的版本號,比如 Postgres 的版本號;另外一個是 Chart 自身的版本。使用語義化的版本號,可以保證應用的有序升級。
當創建了release之后,Helm可以對release進行管理,包括升級、回退和刪除。對release的更新會產生不同的版本。比如,在首次安裝了Nginx之后,release的版本為?1。可以通過?helm list?命令來查看。
之后我們接到一個需求,要求啟用Nginx與Prometheus的集成功能。只需要使用?helm upgrade?命令更新當前的release,傳遞一個新的配置項?metrics.enable=true?即可。當更新完成之后,release的版本為?2。
helm upgrade --set metrics.enable=true nginx bitnami/nginx如果發現之前的更新產生了問題,可以通過?helm rollback?命令,回退到版本?1。需要注意的是,在執行?helm rollback?命令之后,release的版本號實際上變成了?3。可以使用?helm history?命令來查看release的全部版本歷史記錄。
在每次更新之前,還可以通過?helm diff?來查看新改動與當前release版本的差異。
helm diff upgrade --set metrics.enabled=true nginx bitnami/nginx下面給出了?helm diff?命令的輸出結果的示例。
當需要在Kubernetes上安裝軟件時,第一個選項是從 ArtifactHub 上查找,看是否已經有別人貢獻的Chart。這樣可以極大的降低開發的成本。比如,我之前安裝 Postgres 和Nginx使用的都是 Bitnami 維護的Chart。
對于內部項目的應用,只能自己開發 Chart。我將在下一篇文章中介紹 Helm Chart 的開發。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: m2 culture(culture读音
- 下一篇: 傲慢与偏见迪丽热巴合集(傲慢与偏见迪丽热