日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件

發(fā)布時間:2025/3/8 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這篇文章介紹一下云原生應(yīng)用在 Kubernetes 上安裝時,經(jīng)常會用到的一個重要工具,Helm。

Helm 是 Kubernetes 的包管理軟件。提到包管理軟件,很多人都不陌生。Maven、Gradle、pip、RubyGems 和 npm 都是包管理軟件。

作為一個包管理軟件,核心是包和管理兩個部分。


Helm Chart

第一個部分的要點(diǎn)是 Helm 的包中都包含什么?

我們都知道,Kubernetes 采用的是聲明式的資源管理。以 YAML 文件的形式來聲明資源的期望狀態(tài),而 Kubernetes 會確保資源的實(shí)際狀態(tài),滿足聲明所描述的期望。

比如,一個 Deployment 只需要聲明 Pod 的數(shù)量即可,而不用去管運(yùn)行時 Pod 可能會出現(xiàn)的由于 Pod 失敗導(dǎo)致的 Pod 被重新創(chuàng)建等細(xì)節(jié)。

在部署一個應(yīng)用到 Kubernetes 時,可能會需要聲明多種不同的資源。比如,在安裝 Postgres 時,我們可能會需要如下資源:

  • 實(shí)際運(yùn)行 Postgres 的 Deployment 或 StatefulSet。

  • 允許其他應(yīng)用訪問的 Service。

  • 數(shù)據(jù)存儲需要的 PersistenceVolumeClaim 或 PersitenceVolume。

  • 保存數(shù)據(jù)庫配置的 ConfigMap。

  • 保存數(shù)據(jù)庫密碼的 Secret。

所有這些資源聲明組成了應(yīng)用的安裝包,Helm 稱之為 Chart。

使用軟件包的一個重要目的是為了共享。Helm Chart 中的資源定義是通過模板生成的,包含了很多可以在安裝時進(jìn)行配置的選項(xiàng)。以Postgres來說,你可能會需要配置數(shù)據(jù)庫的訪問密碼、存儲空間的大小和數(shù)據(jù)庫的初始化腳本等。

把Helm Chart與安裝時的配置項(xiàng)結(jié)合起來,就得到了一個特定的release。

以Postgres Chart為例,我們可以創(chuàng)建對應(yīng)于開發(fā)、測試和生產(chǎn)環(huán)境的3個不同的release。每個release基于同樣的Chart,但是配置不同。配置項(xiàng)通常以YAML文件的形式來保存,也可以在命令行傳遞。

下面給出了的配置文件,對應(yīng)于 Postgres 在開發(fā)環(huán)境上的release。

postgresqlUsername: dev
postgresqlPassword: password
persistence:
enabled: false

通過?helm install?命令可以安裝Chart。在安裝時需要指定Chart的名稱、release的名稱和配置文件。配置文件使用?-f?參數(shù)來傳遞,也可以使用?--set?來設(shè)置單個配置項(xiàng)的值。

下面的代碼使用默認(rèn)的配置來安裝 Nginx。

helm install nginx bitnami/nginx

Release管理

之前說的是包的部分,下面介紹 Helm 對包的管理。每個 Helm Chart 有兩個版本號,一個是所安裝的應(yīng)用的版本號,比如 Postgres 的版本號;另外一個是 Chart 自身的版本。使用語義化的版本號,可以保證應(yīng)用的有序升級。

當(dāng)創(chuàng)建了release之后,Helm可以對release進(jìn)行管理,包括升級、回退和刪除。對release的更新會產(chǎn)生不同的版本。比如,在首次安裝了Nginx之后,release的版本為?1。可以通過?helm list?命令來查看。

之后我們接到一個需求,要求啟用Nginx與Prometheus的集成功能。只需要使用?helm upgrade?命令更新當(dāng)前的release,傳遞一個新的配置項(xiàng)?metrics.enable=true?即可。當(dāng)更新完成之后,release的版本為?2。

helm upgrade --set metrics.enable=true nginx bitnami/nginx

如果發(fā)現(xiàn)之前的更新產(chǎn)生了問題,可以通過?helm rollback?命令,回退到版本?1。需要注意的是,在執(zhí)行?helm rollback?命令之后,release的版本號實(shí)際上變成了?3。可以使用?helm history?命令來查看release的全部版本歷史記錄。

在每次更新之前,還可以通過?helm diff?來查看新改動與當(dāng)前release版本的差異。

helm diff upgrade --set metrics.enabled=true nginx bitnami/nginx

下面給出了?helm diff?命令的輸出結(jié)果的示例。

當(dāng)需要在Kubernetes上安裝軟件時,第一個選項(xiàng)是從 ArtifactHub 上查找,看是否已經(jīng)有別人貢獻(xiàn)的Chart。這樣可以極大的降低開發(fā)的成本。比如,我之前安裝 Postgres 和Nginx使用的都是 Bitnami 維護(hù)的Chart。

對于內(nèi)部項(xiàng)目的應(yīng)用,只能自己開發(fā) Chart。我將在下一篇文章中介紹 Helm Chart 的開發(fā)。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。