0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

马哥Linux运维 来源:博客园 作者:大数据老司机 2022-09-13 14:54 次阅读

一、概述

Helm 针对 Kubernetes 的 Helm 包管理器。Helm 的一般操作:

  • helm search:    搜索 chart
  • helm pull:     下载 chart 到本地目录查看
  • helm install:    上传 chart 到 Kubernetes
  • helm list:      列出已发布的 chart
#查看帮助
helm--help

9f368ad4-31d7-11ed-ba43-dac502259ad0.png
官方文档:https://helm.sh/zh/docs/helm/helm/
Helm 架构和基础语法讲解可以参考这篇文章:2.4W 字 Helm 从入门到专家

二、Helm 仓库(helm repo)

添加、列出、删除、更新和索引 chart 仓库。

1)添加 chart 仓库

helmrepoaddbitnamihttps://charts.bitnami.com/bitnami

2)列出已添加的仓库

helmrepolist

3)从 chart 仓库中更新本地可用 chart 的信息

helmrepoupdatebitnami

4)删除一个或多个仓库

helmreporemovebitnami

三、创建 chart(helm create)

使用给定名称创建新的 chart,该命令创建 chart 目录和 chart 用到的公共文件目录。

比如'helm create foo'会创建一个目录结构看起来像这样:

$helmcreatefoo
foo/
├──.helmignore#ContainspatternstoignorewhenpackagingHelmcharts.
├──Chart.yaml#Informationaboutyourchart
├──values.yaml#Thedefaultvaluesforyourtemplates
├──charts/#Chartsthatthischartdependson
└──templates/#Thetemplatefiles
└──tests/#Thetestfiles

四、chart 包安装(helm install)

该命令用于安装 chart 包。安装参数必须是 chart 的引用,一个打包后的 chart 路径未打包的 chart 目录或者是一个 URL

要重写 chart 中的值,使用--values参数传递一个文件或者使用--set参数在命令行传递配置,强制使用字符串要用--set-string。当值本身对于命令行太长或者是动态生成的时候,可以使用--set-file设置独立的值。

helminstall-fmyvalues.yamlmyredis./redis

helminstall--setname=prodmyredis./redis

helminstall--set-stringlong_int=1234567890myredis./redis

helminstall--set-filemy_script=dothings.shmyredis./redis

五、管理 chart 依赖(helm dependency)

比如 Chart.yaml 声明了两个依赖:

#Chart.yaml
dependencies:
-name:nginx
version:"1.2.3"
repository:"https://example.com/charts"
-name:memcached
version:"3.2.1"
repository:"https://another.example.com/charts"
  • name 是 chart 名称,必须匹配Chart.yaml文件中名称
  • version 字段应该包含一个语义化的版本或版本范围。

从 2.2.0 开始,仓库可以被定义为本地存储的依赖 chart 的目录路径。路径应该以"file://"前缀开头,比如:

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

1)列举指定 chart 的依赖

#helmdependencylistCHART
helmdependencylistwordpress

2)依赖升级

基于 Chart.yaml 内容升级 charts/

#helmdependencyupdateCHART[flags]
helmdependencyupdatewordpress

六、Helm 列表(helm list)

  • 列举发布版本,该命令会列举出指定命名空间的所有发布版本,(如果没有指定命名空间,会使用当前命名空间)。
  • 默认情况下,只会列举出部署的或者失败的发布,像--uninstalled或者--all会修改默认行为。这些参数可以组合使用:--uninstalled --failed
  • 默认情况下,最多返回256项,使用--max限制数量,--max设置为0 不会返回所有结果,而是返回服务器默认值,可能要比 256 更多。同时使用--max--offset参数可以翻页显示。
#-A显示所有
helmlist--max=10--offset=2-A

七、升级版本(helm upgrade)

该命令将发布升级到新版的 chart。升级参数必须是发布和 chart。chart 参数可以是:chart引用('example/mariadb')chart目录路径,打包的 chart 或者完整 URL。对于 chart 引用,除非使用'--version'参数指定,否则会使用最新版本。

helmupgrade--setfoo=bar--setfoo=newbarredis./redis

八、发布历史(helm history)

检索发布历史,打印给定版本的历史修订。默认会返回最大的256个历史版本。设置--max配置返回历史列表的最大长度。

历史发布集合会被打印成格式化的表格,例如:

$helmhistoryangry-bird
REVISIONUPDATEDSTATUSCHARTAPPVERSIONDESCRIPTION
1MonOct310132016supersededalpine-0.1.01.0Initialinstall
2MonOct310132016supersededalpine-0.1.01.0Upgradedsuccessfully
3MonOct310132016supersededalpine-0.1.01.0Rolledbackto2
4MonOct310132016deployedalpine-0.1.01.0Upgradedsuccessfully

九、回滚版本(helm rollback)

回滚发布到上一个版本,回滚命令的第一个参数是发布的名称,第二是修订(版本)号,如果省略此参数,会回滚到上一个版本。

#helmrollback[REVISION][flags]
#先查看历史版本
helmhistorymyharbor-nharbor
#不指定版本就回退上个版本
helmrollbackmyharbor1-nharbor
helmrollbackmyharbor-nharbor

十、展示 chart(helm show)

#helmshowall[CHART][flags]
#该命令检查chart(目录、文件或URL)并显示所有的内容(values.yaml,Chart.yaml,README)
helmshowallmysql

#helmshowvalues[CHART][flags]
#该命令检查chart(目录、文件或URL)并显示values.yaml文件的内容
helmshowvaluesmysql

十一、拉取 chart(helm pull)

从仓库下载并(可选)在本地目录解压。

#helmpull[chartURL|repo/chartname][...][flags]
#仅下载
helmpullbitnami/redis
#下载并解压到当前目录
helmpullbitnami/redis--untar

十二、Helm 打包(helm package)

  • 将 chart 目录打包到 chart 归档中,该命令将 chart 打包成一个 chart 版本包文件。如果给定路径,就会在该路径中查找 chart(必须包含 Chart.yaml 文件)然后将目录打包。
  • 要签名一个 chart,使用--sign参数,在大多数场景中,也要提供--keyring path/to/secret/keys--key keyname
helmpackagemysql/
#Successfullypackagedchartandsaveditto:/opt/k8s/helm/mysql-9.3.1.tgz

如果想忽略 helm 中的文件,可以在.helmignore进行匹配,该.helmignore 文件支持 Unix shell 全局匹配,相对路径匹配和否定(以!前缀反向匹配)。每行仅考虑一种模式。示例如下:

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

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

将 chart 推送到远程。

1)在线安装

helmplugininstallhttps://github.com/chartmuseum/helm-push

2)离线安装

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

#1、下载安装包
wgethttps://github.com/chartmuseum/helm-push/releases/tag/v0.10.3

# 2、查看helm的plugin路径:helm env
helmenv

#3、在该路径下创建helm-push文件夹,并将安装包拷贝到该文件夹下解压即可
mkdir/root/.local/share/helm/plugins/helm-push

wgethttps://github.com/chartmuseum/helm-push/releases/download/v0.10.3/helm-push_0.10.3_linux_amd64.tar.gz

tarzxvf/root/.local/share/helm/plugins/helm-push/helm-push_0.10.3_linux_amd64.tar.gz-C/root/.local/share/helm/plugins/helm-push

查看插件

helmpluginlist

3)helm 增加 harbor repo

#chartrepo,固定参数,bigdata自定义项目
helmrepoaddlocal-harbor--username=admin--password=Harbor12345https://myharbor.com/chartrepo/bigdata/--ca-file/opt/k8s/helm/ca.crt

证书直接在 harbor 上下载
9f5e857a-31d7-11ed-ba43-dac502259ad0.png

4)示例演示

#查看帮助
helmcm-push--help

#推送,接【目录】
helmcm-pushmysql/local-harbor--ca-file/opt/k8s/helm/ca.crt

#推送,接【压缩包】
helmcm-pushwordpress-15.1.5.tgzlocal-harbor--ca-file/opt/k8s/helm/ca.crt

#推送,指定版本,--version
helmcm-pushmychart/--version="1.2.3"local-harbor--ca-file/opt/k8s/helm/ca.crt

#强制推送,--force
helmcm-push--forcemychart-0.3.2.tgzlocal-harbor

查看
9f8639d0-31d7-11ed-ba43-dac502259ad0.png

十四、搜索 hub(helm search hub)

在Artifact Hub或自己的 hub 实例中搜索 chart。

Artifact Hub基于 web 页面的应用,支持 CNCF 项目的查找、安装和发布包及配置项,包括了公开发布的 Helm chart。它是 CNCF 的沙盒项目。可以访问https://artifacthub.io/

#不带参数,列出所有
helmsearchhub

#指定chart
helmsearchhubmysql
9f9ac472-31d7-11ed-ba43-dac502259ad0.png

十五、搜索仓库(helm search repo)

用 chart 中关键字搜索仓库,搜索会读取系统上配置的所有仓库,并查找匹配。搜索这些仓库会使用存储在系统中的元数据。它会展示找到最新稳定版本的 chart。如果指定了--devel参数,输出会包括预发布版本。

#Searchforstablereleaseversionsmatchingthekeyword"nginx"
$helmsearchreponginx

#Searchforreleaseversionsmatchingthekeyword"nginx",includingpre-releaseversions
$helmsearchreponginx--devel

#Searchforthelateststablereleasefornginx-ingresswithamajorversionof1
$helmsearchreponginx-ingress--version^1.0.0

十六、验证 chart(helm lint)

该命令使用一个 chart 路径并运行一系列的测试来验证 chart 的格式是否正确。如果遇到引起 chart 安装失败的情况,会触发[ERROR]信息,如果遇到违反惯例或建议的问题,会触发[WARNING]。

#helmlintPATH[flags]
helmlint./mysql

9fb89114-31d7-11ed-ba43-dac502259ad0.png
9fb89114-31d7-11ed-ba43-dac502259ad0.png

十七、常用命令总结

helmversion//查看helm版本
helmcreatexxx//创建一个xxxcharts
helmlint./xxx//检查包的格式或信息是否有问题
helminstallxxx1./xxx//部署安装xxx,设置名称为xxx1
helmlist//列出已经部署的charts
helmhistory//发布历史
helmupgrade//更新版本
helmrollback//回滚版本
helmpackage./xxx//打包charts
helmrepoadd--usernameadmin--passwordpasswordmyharborxxx//增加repo
helmuninstallxxx1//卸载删除xxx1
helmpull//拉取chart包
helmcm-push//推送chart包
helmrepoupdate//更新仓库资源
helm search hub //从 Artifact Hub 中查找并列出 helm charts。Artifact Hub中存放了大量不同的仓库
helm search repo //从你添加(使用 helm repo add)到本地 helm 客户端中的仓库中进行查找。该命令基于本地数据进行搜索,无需连接互联网

Helm 常用命令(chart 安装、升级、回滚、卸载等操作)就先到这里,有疑问的小伙伴,欢迎给我留言哦!

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 命令
    +关注

    关注

    5

    文章

    678

    浏览量

    21972
  • chart
    +关注

    关注

    0

    文章

    2

    浏览量

    1526
  • kubernetes
    +关注

    关注

    0

    文章

    223

    浏览量

    8685

原文标题:Helm 进阶到骨灰玩家,请收藏!

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    掌握Linux常用命令

    一、实验目的和要求1掌握Linux常用命令2学会如何获取命令帮助信息3熟练掌握Linux常用命令4掌握GCC命令的使用及其常用参数的含义二、
    发表于 12-16 06:08

    windowsxp常用命令

    windowsxp常用命令   winver---------检查windows版本 wmimgmt.msc----打开windows管理体系结构(wmi) wupdmgr-------
    发表于 01-10 09:05 1271次阅读

    Ubuntu常用命令大全

    Ubuntu常用命令大全,包括常用管理目录,系统命令,硬盘相关,内存相关,查看进程命令
    发表于 01-06 11:16 0次下载

    DOS常用命令宝典

    DOS常用命令宝典,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-10 18:24 0次下载

    vim常用命令

    vim常用命令
    发表于 01-08 15:59 3次下载

    redis常用命令总结

    本文是对redis常用命令总结。
    发表于 02-09 11:25 1588次阅读

    Linux常用命令的全拼整理

    本文整理了常用命令的全拼,好像混进了什么奇怪的东西。
    的头像 发表于 10-10 17:19 4639次阅读

    linux常用命令手册

    linux常用命令手册免费下载。
    发表于 06-01 14:59 68次下载

    Memcache系统常用命令讲解

    Memcache系统常用命令讲解(无线电源技术商业计划书)-该文档为Memcache系统常用命令讲解文档,是一份还算不错的参考文档,感兴趣的可以下载看看,,,,,,,,,,,,,,,,
    发表于 09-28 11:27 5次下载
    Memcache系统<b class='flag-5'>常用命令</b>讲解

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    发表于 03-03 09:20 0次下载

    DOS系统常用命令

    介绍了DOS系统的常用命令
    发表于 03-21 14:59 0次下载

    Linux常用命令

    Linux常用命令
    的头像 发表于 01-12 11:19 1108次阅读

    Linux常用命令手册分享

    linux常用命令合集
    发表于 04-26 11:46 1次下载

    linux常用命令及用法

    Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux的常用命令及其用法对于操作系统的管理和开发都至关重要。本文将详尽、详实、细致地介绍Linux常用命令
    的头像 发表于 11-17 09:47 619次阅读

    详解kubectl常用命令

    详解kubectl常用命令
    的头像 发表于 11-05 15:39 107次阅读
    详解kubectl<b class='flag-5'>常用命令</b>