日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作)

發(fā)布時(shí)間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 一、概述
    • 二、Helm 倉(cāng)庫(kù)(helm repo)
      • 1)添加chart倉(cāng)庫(kù)
      • 2)列出已添加的倉(cāng)庫(kù)
      • 3)從chart倉(cāng)庫(kù)中更新本地可用chart的信息
      • 4)刪除一個(gè)或多個(gè)倉(cāng)庫(kù)
    • 三、創(chuàng)建chart(helm create)
    • 四、chart 包安裝(helm install)
    • 五、管理chart依賴(helm dependency)
      • 1)列舉指定chart的依賴
      • 2)依賴升級(jí)
    • 六、Helm 列表(helm list)
    • 七、升級(jí)版本(helm upgrade)
    • 八、發(fā)布?xì)v史(helm history)
    • 九、回滾版本(helm rollback)
    • 十、展示chart(helm show)
    • 十一、拉取chart(helm pull)
    • 十二、Helm 打包(helm package)
    • 十三、推送chart到harbor(helm cm-push)
      • 1)在線安裝
      • 2)離線安裝
      • 3)helm 增加harbor repo
      • 4)示例演示
    • 十四、搜索 hub(helm search hub)
    • 十五、搜索倉(cāng)庫(kù)(helm search repo)
    • 十六、驗(yàn)證chart(helm lint)
    • 十七、常用命令總結(jié)

一、概述

Helm 針對(duì)Kubernetes的Helm包管理器。Helm的一般操作:

  • helm search: ??搜索chart
  • helm pull: ???下載chart到本地目錄查看
  • helm install: ??上傳chart到Kubernetes
  • helm list: ????列出已發(fā)布的chart
# 查看幫助 helm --help


官方文檔:https://helm.sh/zh/docs/helm/helm/
Helm 架構(gòu)和基礎(chǔ)語(yǔ)法講解可以參考我這篇文章:【云原生】Helm 架構(gòu)和基礎(chǔ)語(yǔ)法詳解

二、Helm 倉(cāng)庫(kù)(helm repo)

添加、列出、刪除、更新和索引chart倉(cāng)庫(kù)。

1)添加chart倉(cāng)庫(kù)

helm repo add bitnami https://charts.bitnami.com/bitnami

2)列出已添加的倉(cāng)庫(kù)

helm repo list

3)從chart倉(cāng)庫(kù)中更新本地可用chart的信息

helm repo update bitnami

4)刪除一個(gè)或多個(gè)倉(cāng)庫(kù)

helm repo remove bitnami

三、創(chuàng)建chart(helm create)

使用給定名稱創(chuàng)建新的chart,該命令創(chuàng)建chart目錄和chart用到的公共文件目錄。

比如’helm create foo’會(huì)創(chuàng)建一個(gè)目錄結(jié)構(gòu)看起來(lái)像這樣:

$ helm create foo foo/ ├── .helmignore # Contains patterns to ignore when packaging Helm charts. ├── Chart.yaml # Information about your chart ├── values.yaml # The default values for your templates ├── charts/ # Charts that this chart depends on └── templates/ # The template files└── tests/ # The test files

四、chart 包安裝(helm install)

該命令用于安裝chart包。安裝參數(shù)必須是chart的引用,一個(gè)打包后的chart路徑未打包的chart目錄或者是一個(gè)URL

要重寫chart中的值,使用--values參數(shù)傳遞一個(gè)文件或者使用--set參數(shù)在命令行傳遞配置,強(qiáng)制使用字符串要用--set-string。 當(dāng)值本身對(duì)于命令行太長(zhǎng)或者是動(dòng)態(tài)生成的時(shí)候,可以使用--set-file設(shè)置獨(dú)立的值。

helm install -f myvalues.yaml myredis ./redishelm install --set name=prod myredis ./redishelm install --set-string long_int=1234567890 myredis ./redishelm install --set-file my_script=dothings.sh myredis ./redis

五、管理chart依賴(helm dependency)

  • Helm chart將依賴存儲(chǔ)在’charts/'。對(duì)于chart開(kāi)發(fā)者,管理依賴比聲明了所有依賴的’Chart.yaml’文件更容易。
  • 依賴命令對(duì)該文件進(jìn)行操作,使得存儲(chǔ)在’charts/'目錄的需要的依賴和實(shí)際依賴之間同步變得很容易。

比如Chart.yaml聲明了兩個(gè)依賴:

# Chart.yaml dependencies: - name: nginxversion: "1.2.3"repository: "https://example.com/charts" - name: memcachedversion: "3.2.1"repository: "https://another.example.com/charts"
  • name 是chart名稱,必須匹配Chart.yaml文件中名稱

  • version 字段應(yīng)該包含一個(gè)語(yǔ)義化的版本或版本范圍。

從2.2.0開(kāi)始,倉(cāng)庫(kù)可以被定義為本地存儲(chǔ)的依賴chart的目錄路徑。路徑應(yīng)該以"file://"前綴開(kāi)頭,比如:

# Chart.yaml dependencies: - name: nginxversion: "1.2.3"repository: "file://../dependency_chart/nginx"

1)列舉指定chart的依賴

# helm dependency list CHART helm dependency list wordpress

2)依賴升級(jí)

基于Chart.yaml內(nèi)容升級(jí)charts/

# helm dependency update CHART [flags] helm dependency update wordpress

六、Helm 列表(helm list)

  • 列舉發(fā)布版本,該命令會(huì)列舉出指定命名空間的所有發(fā)布版本,(如果沒(méi)有指定命名空間,會(huì)使用當(dāng)前命名空間)。

  • 默認(rèn)情況下,只會(huì)列舉出部署的或者失敗的發(fā)布,像--uninstalled或者--all會(huì)修改默認(rèn)行為。這些參數(shù)可以組合使用:--uninstalled --failed。

  • 默認(rèn)情況下,最多返回256項(xiàng),使用--max限制數(shù)量,--max設(shè)置為0不會(huì)返回所有結(jié)果,而是返回服務(wù)器默認(rèn)值,可能要比256更多。 同時(shí)使用--max和--offset參數(shù)可以翻頁(yè)顯示。

# -A顯示所有 helm list --max=10 --offset=2 -A

七、升級(jí)版本(helm upgrade)

該命令將發(fā)布升級(jí)到新版的chart。升級(jí)參數(shù)必須是發(fā)布和chart。chart參數(shù)可以是:chart引用('example/mariadb'),chart目錄路徑,打包的chart或者完整URL。 對(duì)于chart引用,除非使用’–version’參數(shù)指定,否則會(huì)使用最新版本。

helm upgrade --set foo=bar --set foo=newbar redis ./redis

八、發(fā)布?xì)v史(helm history)

檢索發(fā)布?xì)v史,打印給定版本的歷史修訂。默認(rèn)會(huì)返回最大的256個(gè)歷史版本。設(shè)置--max配置返回歷史列表的最大長(zhǎng)度。

歷史發(fā)布集合會(huì)被打印成格式化的表格,例如:

$ helm history angry-bird REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Mon Oct 3 10:15:13 2016 superseded alpine-0.1.0 1.0 Initial install 2 Mon Oct 3 10:15:13 2016 superseded alpine-0.1.0 1.0 Upgraded successfully 3 Mon Oct 3 10:15:13 2016 superseded alpine-0.1.0 1.0 Rolled back to 2 4 Mon Oct 3 10:15:13 2016 deployed alpine-0.1.0 1.0 Upgraded successfully

九、回滾版本(helm rollback)

回滾發(fā)布到上一個(gè)版本,回滾命令的第一個(gè)參數(shù)是發(fā)布的名稱,第二是修訂(版本)號(hào),如果省略此參數(shù),會(huì)回滾到上一個(gè)版本。

# helm rollback <RELEASE> [REVISION] [flags] # 先查看歷史版本 helm history myharbor -n harbor # 不指定版本就回退上個(gè)版本 helm rollback myharbor 1 -n harbor helm rollback myharbor -n harbor

十、展示chart(helm show)

# helm show all [CHART] [flags] # 該命令檢查chart(目錄、文件或URL)并顯示所有的內(nèi)容(values.yaml, Chart.yaml, README) helm show all mysql# helm show values [CHART] [flags] # 該命令檢查chart(目錄、文件或URL)并顯示values.yaml文件的內(nèi)容 helm show values mysql

十一、拉取chart(helm pull)

從倉(cāng)庫(kù)下載并(可選)在本地目錄解壓。

# helm pull [chart URL | repo/chartname] [...] [flags] # 僅下載 helm pull bitnami/redis # 下載并解壓到當(dāng)前目錄 helm pull bitnami/redis --untar

十二、Helm 打包(helm package)

  • 將chart目錄打包到chart歸檔中,該命令將chart打包成一個(gè)chart版本包文件。如果給定路徑,就會(huì)在該路徑中查找chart(必須包含Chart.yaml文件)然后將目錄打包。
  • 要簽名一個(gè)chart,使用--sign參數(shù),在大多數(shù)場(chǎng)景中,也要提供--keyring path/to/secret/keys和--key keyname。
helm package mysql/ # Successfully packaged chart and saved it to: /opt/k8s/helm/mysql-9.3.1.tgz

如果想忽略helm中的文件,可以在.helmignore進(jìn)行匹配,該.helmignore文件支持Unix shell全局匹配,相對(duì)路徑匹配和否定(以!前綴反向匹配)。每行僅考慮一種模式。示例如下:

# .helmignore .git */temp* */*/temp* temp?

十三、推送chart到harbor(helm cm-push)

將chart推送到遠(yuǎn)程。

1)在線安裝

helm plugin install https://github.com/chartmuseum/helm-push

2)離線安裝

下載地址:https://github.com/chartmuseum/helm-push/tags

# 1、下載安裝包 wget https://github.com/chartmuseum/helm-push/releases/tag/v0.10.3# 2、查看helm的plugin路徑:helm env helm env# 3、在該路徑下創(chuàng)建helm-push文件夾,并將安裝包拷貝到該文件夾下解壓即可 mkdir /root/.local/share/helm/plugins/helm-pushwget https://github.com/chartmuseum/helm-push/releases/download/v0.10.3/helm-push_0.10.3_linux_amd64.tar.gztar zxvf /root/.local/share/helm/plugins/helm-push/helm-push_0.10.3_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/helm-push

查看插件

helm plugin list

3)helm 增加harbor repo

# chartrepo,固定參數(shù),bigdata自定義項(xiàng)目 helm repo add local-harbor --username=admin --password=Harbor12345 https://myharbor.com/chartrepo/bigdata/ --ca-file /opt/k8s/helm/ca.crt

證書直接在harbor上下載

4)示例演示

# 查看幫助 helm cm-push --help# 推送,接【目錄】 helm cm-push mysql/ local-harbor --ca-file /opt/k8s/helm/ca.crt# 推送,接【壓縮包】 helm cm-push wordpress-15.1.5.tgz local-harbor --ca-file /opt/k8s/helm/ca.crt# 推送,指定版本,--version helm cm-push mychart/ --version="1.2.3" local-harbor --ca-file /opt/k8s/helm/ca.crt # 強(qiáng)制推送,--force helm cm-push --force mychart-0.3.2.tgz local-harbor

查看

十四、搜索 hub(helm search hub)

在Artifact Hub或自己的hub實(shí)例中搜索chart。Artifact Hub 是基于web頁(yè)面的應(yīng)用,支持CNCF項(xiàng)目的查找、安裝和發(fā)布包及配置項(xiàng),包括了公開(kāi)發(fā)布的Helm chart。它是CNCF的沙盒項(xiàng)目。可以訪問(wèn)https://artifacthub.io/

# 不帶參數(shù),列出所有 helm search hub # 指定chart helm search hub mysql

十五、搜索倉(cāng)庫(kù)(helm search repo)

用chart中關(guān)鍵字搜索倉(cāng)庫(kù),搜索會(huì)讀取系統(tǒng)上配置的所有倉(cāng)庫(kù),并查找匹配。搜索這些倉(cāng)庫(kù)會(huì)使用存儲(chǔ)在系統(tǒng)中的元數(shù)據(jù)。它會(huì)展示找到最新穩(wěn)定版本的chart。如果指定了--devel參數(shù),輸出會(huì)包括預(yù)發(fā)布版本。

# Search for stable release versions matching the keyword "nginx" $ helm search repo nginx# Search for release versions matching the keyword "nginx", including pre-release versions $ helm search repo nginx --devel# Search for the latest stable release for nginx-ingress with a major version of 1 $ helm search repo nginx-ingress --version ^1.0.0

十六、驗(yàn)證chart(helm lint)

該命令使用一個(gè)chart路徑并運(yùn)行一系列的測(cè)試來(lái)驗(yàn)證chart的格式是否正確。如果遇到引起chart安裝失敗的情況,會(huì)觸發(fā)[ERROR]信息,如果遇到違反慣例或建議的問(wèn)題,會(huì)觸發(fā)[WARNING]。

# helm lint PATH [flags] helm lint ./mysql


十七、常用命令總結(jié)

helm version // 查看helm版本 helm create xxx // 創(chuàng)建一個(gè)xxx charts helm lint ./xxx // 檢查包的格式或信息是否有問(wèn)題 helm install xxx1 ./xxx // 部署安裝xxx,設(shè)置名稱為xxx1 helm list // 列出已經(jīng)部署的charts helm history // 發(fā)布?xì)v史 helm upgrade // 更新版本 helm rollback // 回滾版本 helm package ./xxx // 打包c(diǎn)harts helm repo add --username admin --password password myharbor xxx // 增加repo helm uninstall xxx1 // 卸載刪除xxx1 helm pull // 拉取chart包 helm cm-push // 推送chart包 helm repo update // 更新倉(cāng)庫(kù)資源 helm search hub // 從 Artifact Hub 中查找并列出 helm charts。 Artifact Hub中存放了大量不同的倉(cāng)庫(kù) helm search repo // 從你添加(使用 helm repo add)到本地 helm 客戶端中的倉(cāng)庫(kù)中進(jìn)行查找。該命令基于本地?cái)?shù)據(jù)進(jìn)行搜索,無(wú)需連接互聯(lián)網(wǎng)

Helm 常用命令(chart 安裝、升級(jí)、回滾、卸載等操作)就先到這里,有疑問(wèn)的小伙伴,歡迎給我留言哦,后面會(huì)有大量的企業(yè)案例,請(qǐng)耐心等待哦~

總結(jié)

以上是生活随笔為你收集整理的【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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