helm常用命令

lldhsds發表於2024-07-02

helm常用命令

針對Kubernetes的Helm包管理器。

官方文件:https://helm.sh/zh/docs/helm/helm/

簡介

Kubernetes包管理器,Helm的一般操作:

  • helm search:搜尋chart
  • helm pull:下載chart到本地目錄檢視
  • helm install:上傳chart到Kubernetes
  • helm list:列出已釋出的chart

環境變數:

名稱 描述
$HELM_CACHE_HOME 設定一個儲存快取檔案的可選位置
$HELM_CONFIG_HOME 設定一個儲存Helm配置的可選位置
$HELM_DATA_HOME 設定一個儲存Helm資料的可選位置
$HELM_DEBUG 表示Helm是否在Debug模式執行
$HELM_DRIVER 設定後臺儲存驅動,可選值包括:configmap, secret, memory, sql
$HELM_DRIVER_SQL_CONNECTION_STRING 設定SQL儲存驅動使用連線字串
$HELM_MAX_HISTORY 設定釋出歷史記錄的最大值
$HELM_NAMESPACE 設定用於helm操作的名稱空間
$HELM_NO_PLUGINS 禁用外掛,HELM_NO_PLUGINS=1表示禁用外掛
$HELM_PLUGINS 設定外掛目錄路徑
$HELM_REGISTRY_CONFIG 設定註冊配置檔案的路徑
$HELM_REPOSITORY_CACHE 設定倉庫快取目錄路徑
$HELM_REPOSITORY_CONFIG 設定倉庫檔案的路徑
$KUBECONFIG 設定Kubernetes的可選配置檔案(預設是"~/.kube/config")
$HELM_KUBEAPISERVER 設定用於身份認證的Kubernetes API服務端
$HELM_KUBECAFILE 設定Kubernetes證書機構檔案
$HELM_KUBEASGROUPS 使用逗號分隔的列表設定用於模擬的組
$HELM_KUBEASUSER 為操作設定要模擬的使用者名稱
$HELM_KUBECONTEXT 設定kubeconfig上下文的名稱
$HELM_KUBETOKEN 設定用於身份驗證的不記名KubeToken
$HELM_KUBEINSECURE_SKIP_TLS_VERIFY 設定 Kubernetes API 服務的證書驗證是否跳過(不安全)
$HELM_KUBETLS_SERVER_NAME 設定用於驗證 Kubernetes API 伺服器證書的伺服器名稱
$HELM_BURST_LIMIT 設定當 Kubernetes 服務包含很大量CRD時的預設上限值(預設100, -1是不可用)

Helm 基於以下配置順序儲存快取,配置和新增資料:

  • 如果設定了 $HELM_*_HOME 環境變數,則使用該變數
  • 否則,在支援XDG基本目錄規範的系統上,會使用XDG變數
  • 當沒有設定其他位置時,將根據作業系統使用預設位置

預設情況下,預設目錄取決於作業系統,預設值如下:

作業系統 快取路徑 配置路徑 資料路徑
Linux $HOME/.cache/helm $HOME/.config/helm $HOME/.local/share/helm
macOS $HOME/Library/Caches/helm $HOME/Library/Preferences/helm $HOME/Library/helm
Windows %TEMP%\helm %APPDATA%\helm %APPDATA%\helm

可選項

- `--burst-limit int`:客戶端預設限制值(預設100)
- `--debug`:啟用詳細輸出
- `-h, --help`:顯示幫助資訊
- `--kube-apiserver string`:Kubernetes API伺服器的地址和埠
- `--kube-as-group stringArray`:用於操作的組,可以多次指定
- `--kube-as-user string`:用於操作的使用者名稱
- `--kube-ca-file string`:Kubernetes API伺服器連線的證書機構檔案
- `--kube-context string`:kubeconfig上下文的名稱
- `--kube-insecure-skip-tls-verify`:如果為true,將不檢查Kubernetes API伺服器的證書有效性。這將使HTTPS連線不安全
- `--kube-tls-server-name string`:用於Kubernetes API伺服器證書驗證的伺服器名稱。如果未提供,將使用聯絡伺服器時的主機名
- `--kube-token string`:用於身份驗證的不記名token
- `--kubeconfig string`:kubeconfig檔案的路徑
- `-n, --namespace string`:請求的名稱空間範圍
- `--registry-config string`:註冊配置檔案的路徑(預設"~/.config/helm/registry/config.json")
- `--repository-cache string`:包含快取倉庫索引的檔案路徑(預設"~/.cache/helm/repository")
- `--repository-config string`:包含倉庫名稱和URL的檔案路徑(預設"~/.config/helm/repositories.yaml")

另請參閱

  • helm completion:為指定的shell生成自動補全指令碼
  • helm create:使用給定的名稱建立chart
  • helm dependency:管理chart依賴
  • helm env:helm客戶端環境資訊
  • helm get:下載命名版本的擴充套件資訊
  • helm history:檢索釋出歷史
  • helm install:安裝chart
  • helm lint:驗證chart是否存在問題
  • helm list:列舉發布版本
  • helm package:將chart目錄打包
  • helm plugin:安裝、列舉或解除安裝Helm外掛
  • helm pull:從倉庫下載chart並(可選)在本地目錄中開啟
  • helm push:推送chart到遠端
  • helm registry:從登錄檔登入或登出
  • helm repo:新增、列出、刪除、更新和索引chart倉庫
  • helm rollback:回滾釋出到上一個版本
  • helm search:helm中搜尋關鍵字
  • helm show:顯示chart資訊
  • helm status:顯示命名版本的狀態
  • helm template:本地渲染模板
  • helm test:執行釋出的測試
  • helm uninstall:解除安裝版本
  • helm upgrade:升級版本
  • helm verify:驗證給定路徑的chart已經被簽名且是合法的
  • helm version:列印客戶端版本資訊

常用命令

  1. 搜尋官方helm hub chart庫

helm search hub nginx

  1. 新增第三方chart庫
helm repo add azure http://mirror.azure.cn/kubernetes/charts/    
helm repo add aliyun  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 
helm repo add bitnami https://charts.bitnami.com/bitnami
  1. 檢視倉庫列表

helm repo list

  1. 刪除倉庫

Helm repo remove azure

  1. 從新增的repo倉庫中查詢

helm search repo nginx

  1. 拉取chart包,helm pull chartrepo/chartname

helm pull bitnami/nginx --version 13.2.34

  1. 校驗打包

helm lint --strict xxx

  1. 基於chart目錄進行打包

helm package ./mychart/

  1. 安裝Chart示例
helm repo update
helm install bitnami/mysql --generate-name
  1. 檢視chart資訊
helm show chart bitnami/mysql  #命令簡單的瞭解到這個chart的基本資訊。
helm show all bitnami/mysql       #獲取關於該chart的所有資訊
  1. 列印releases

helm list

備註:區分namespace

  1. 解除安裝一個版本

helm uninstall mysql-1612624192

該命令會從Kubernetes解除安裝mysql-1612624192, 它將刪除和該版本相關的所有相關資源(service、deployment、 pod等等)甚至版本歷史。
如果您在執行helm uninstall的時候提供--keep-history選項, Helm將會儲存版本歷史。 您可以透過命令(helm status)檢視該版本的資訊。
--keep-history選項會讓helm跟蹤你的版本(即使你解除安裝了他們), 所以你可以審計叢集歷史甚至使用helm rollback回滾版本。

  1. 檢視chart 中的可配置選項

使用helm show values <chart>可以檢視 chart 中的可配置選項:

  1. helm install 命令可以從多個來源進行安裝:
  • chart 的倉庫
  • 本地 chart 壓縮包:helm install foo foo-0.1.1.tgz
  • 解壓後的 chart 目錄: helm install foo path/to/foo
  • 完整的 URL: helm install foo https://example.com/charts/foo-1.2.3.tgz
  1. 測試chart而不是部署

當你想測試模板渲染的內容但又不想安裝任何實際應用時,可以使用helm install --debug --dry-run goodly-guppy ./mychart。這樣不會安裝應用(chart)到你的kubenetes叢集中,只會渲染模板內容到控制檯(用於測試)。