helm常用命令
針對Kubernetes的Helm包管理器。
官方文件:https://helm.sh/zh/docs/helm/helm/
簡介
Kubernetes包管理器,Helm的一般操作:
helm search
:搜尋charthelm pull
:下載chart到本地目錄檢視helm install
:上傳chart到Kuberneteshelm 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:列印客戶端版本資訊
常用命令
- 搜尋官方helm hub chart庫
helm search hub nginx
- 新增第三方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
- 檢視倉庫列表
helm repo list
- 刪除倉庫
Helm repo remove azure
- 從新增的repo倉庫中查詢
helm search repo nginx
- 拉取chart包,
helm pull chartrepo/chartname
helm pull bitnami/nginx --version 13.2.34
- 校驗打包
helm lint --strict xxx
- 基於chart目錄進行打包
helm package ./mychart/
- 安裝Chart示例
helm repo update
helm install bitnami/mysql --generate-name
- 檢視chart資訊
helm show chart bitnami/mysql #命令簡單的瞭解到這個chart的基本資訊。
helm show all bitnami/mysql #獲取關於該chart的所有資訊
- 列印releases
helm list
備註:區分namespace
- 解除安裝一個版本
helm uninstall mysql-1612624192
該命令會從Kubernetes解除安裝mysql-1612624192, 它將刪除和該版本相關的所有相關資源(service、deployment、 pod等等)甚至版本歷史。
如果您在執行helm uninstall的時候提供--keep-history選項, Helm將會儲存版本歷史。 您可以透過命令(helm status)檢視該版本的資訊。
--keep-history選項會讓helm跟蹤你的版本(即使你解除安裝了他們), 所以你可以審計叢集歷史甚至使用helm rollback回滾版本。
- 檢視chart 中的可配置選項
使用helm show values <chart>
可以檢視 chart 中的可配置選項:
- 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
- 測試chart而不是部署
當你想測試模板渲染的內容但又不想安裝任何實際應用時,可以使用helm install --debug --dry-run goodly-guppy ./mychart。這樣不會安裝應用(chart)到你的kubenetes叢集中,只會渲染模板內容到控制檯(用於測試)。