云原生Helm常用命令(chart安装升级回滚卸载等操作)
一、概述
Helm针对Kubernetes的Helm包管理器。Helm的一般操作:helmsearch:搜索charthelmpull:下载chart到本地目录查看helminstall:上传chart到Kuberneteshelmlist:列出已发布的chart查看帮助helmhelp
官方文档:https:helm。shzhdocshelmhelm
Helm架构和基础语法讲解可以参考我这篇文章:【云原生】Helm架构和基础语法详解
二、Helm仓库(helmrepo)
添加、列出、删除、更新和索引chart仓库。1)添加chart仓库helmrepoaddbitnamihttps:charts。bitnami。combitnami2)列出已添加的仓库helmrepolist3)从chart仓库中更新本地可用chart的信息helmrepoupdatebitnami4)删除一个或多个仓库helmreporemovebitnami三、创建chart(helmcreate)
使用给定名称创建新的chart,该命令创建chart目录和chart用到的公共文件目录。
比如helmcreatefoo会创建一个目录结构看起来像这样:helmcreatefoofoo。helmignoreContainspatternstoignorewhenpackagingHelmcharts。Chart。yamlInformationaboutyourchartvalues。yamlThedefaultvaluesforyourtemplateschartsChartsthatthischartdependsontemplatesThetemplatefilestestsThetestfiles四、chart包安装(helminstall)
该命令用于安装chart包。安装参数必须是chart的引用,一个打包后的chart路径,未打包的chart目录或者是一个URL。
要重写chart中的值,使用values参数传递一个文件或者使用set参数在命令行传递配置,强制使用字符串要用setstring。当值本身对于命令行太长或者是动态生成的时候,可以使用setfile设置独立的值。helminstallfmyvalues。yamlmyredis。redishelminstallsetnameprodmyredis。redishelminstallsetstringlongint1234567890myredis。redishelminstallsetfilemyscriptdothings。shmyredis。redis五、管理chart依赖(helmdependency)Helmchart将依赖存储在charts。对于chart开发者,管理依赖比声明了所有依赖的Chart。yaml文件更容易。依赖命令对该文件进行操作,使得存储在charts目录的需要的依赖和实际依赖之间同步变得很容易。
比如Chart。yaml声明了两个依赖:Chart。yamldependencies:name:nginxversion:1。2。3repository:https:example。comchartsname:memcachedversion:3。2。1repository:https:another。example。comchartsname是chart名称,必须匹配Chart。yaml文件中名称。version字段应该包含一个语义化的版本或版本范围。
从2。2。0开始,仓库可以被定义为本地存储的依赖chart的目录路径。路径应该以file:前缀开头,比如:Chart。yamldependencies:name:nginxversion:1。2。3repository:file:。。dependencychartnginx1)列举指定chart的依赖helmdependencylistCHARThelmdependencylistwordpress2)依赖升级
基于Chart。yaml内容升级chartshelmdependencyupdateCHART〔flags〕helmdependencyupdatewordpress六、Helm列表(helmlist)列举发布版本,该命令会列举出指定命名空间的所有发布版本,(如果没有指定命名空间,会使用当前命名空间)。默认情况下,只会列举出部署的或者失败的发布,像uninstalled或者all会修改默认行为。这些参数可以组合使用:uninstalledfailed。默认情况下,最多返回256项,使用max限制数量,max设置为0不会返回所有结果,而是返回服务器默认值,可能要比256更多。同时使用max和offset参数可以翻页显示。A显示所有helmlistmax10offset2A七、升级版本(helmupgrade)
该命令将发布升级到新版的chart。升级参数必须是发布和chart。chart参数可以是:chart引用(examplemariadb),chart目录路径,打包的chart或者完整URL。对于chart引用,除非使用version参数指定,否则会使用最新版本。helmupgradesetfoobarsetfoonewbarredis。redis八、发布历史(helmhistory)
检索发布历史,打印给定版本的历史修订。默认会返回最大的256个历史版本。设置max配置返回历史列表的最大长度。
历史发布集合会被打印成格式化的表格,例如:helmhistoryangrybirdREVISIONUPDATEDSTATUSCHARTAPPVERSIONDESCRIPTION1MonOct310:15:132016supersededalpine0。1。01。0Initialinstall2MonOct310:15:132016supersededalpine0。1。01。0Upgradedsuccessfully3MonOct310:15:132016supersededalpine0。1。01。0Rolledbackto24MonOct310:15:132016deployedalpine0。1。01。0Upgradedsuccessfully九、回滚版本(helmrollback)
回滚发布到上一个版本,回滚命令的第一个参数是发布的名称,第二是修订(版本)号,如果省略此参数,会回滚到上一个版本。helmrollbackRELEASE〔REVISION〕〔flags〕先查看历史版本helmhistorymyharbornharbor不指定版本就回退上个版本helmrollbackmyharbor1nharborhelmrollbackmyharbornharbor十、展示chart(helmshow)helmshowall〔CHART〕〔flags〕该命令检查chart(目录、文件或URL)并显示所有的内容(values。yaml,Chart。yaml,README)helmshowallmysqlhelmshowvalues〔CHART〕〔flags〕该命令检查chart(目录、文件或URL)并显示values。yaml文件的内容helmshowvaluesmysql十一、拉取chart(helmpull)
从仓库下载并(可选)在本地目录解压。helmpull〔chartURLrepochartname〕〔。。。〕〔flags〕仅下载helmpullbitnamiredis下载并解压到当前目录helmpullbitnamiredisuntar十二、Helm打包(helmpackage)将chart目录打包到chart归档中,该命令将chart打包成一个chart版本包文件。如果给定路径,就会在该路径中查找chart(必须包含Chart。yaml文件)然后将目录打包。要签名一个chart,使用sign参数,在大多数场景中,也要提供keyringpathtosecretkeys和keykeyname。helmpackagemysqlSuccessfullypackagedchartandsaveditto:optk8shelmmysql9。3。1。tgz
如果想忽略helm中的文件,可以在。helmignore进行匹配,该。helmignore文件支持Unixshell全局匹配,相对路径匹配和否定(以!前缀反向匹配)。每行仅考虑一种模式。示例如下:。helmignore。gittemptemptemp?十三、推送chart到harbor(helmcmpush)
将chart推送到远程。1)在线安装helmplugininstallhttps:github。comchartmuseumhelmpush2)离线安装
下载地址:https:github。comchartmuseumhelmpushtags1、下载安装包wgethttps:github。comchartmuseumhelmpushreleasestagv0。10。32、查看helm的plugin路径:helmenvhelmenv3、在该路径下创建helmpush文件夹,并将安装包拷贝到该文件夹下解压即可mkdirroot。localsharehelmpluginshelmpushwgethttps:github。comchartmuseumhelmpushreleasesdownloadv0。10。3helmpush0。10。3linuxamd64。tar。gztarzxvfroot。localsharehelmpluginshelmpushhelmpush0。10。3linuxamd64。tar。gzCroot。localsharehelmpluginshelmpush
查看插件helmpluginlist3)helm增加harborrepochartrepo,固定参数,bigdata自定义项目helmrepoaddlocalharborusernameadminpasswordHarbor12345https:myharbor。comchartrepobigdatacafileoptk8shelmca。crt
证书直接在harbor上下载
4)示例演示查看帮助helmcmpushhelp推送,接【目录】helmcmpushmysqllocalharborcafileoptk8shelmca。crt推送,接【压缩包】helmcmpushwordpress15。1。5。tgzlocalharborcafileoptk8shelmca。crt推送,指定版本,versionhelmcmpushmychartversion1。2。3localharborcafileoptk8shelmca。crt强制推送,forcehelmcmpushforcemychart0。3。2。tgzlocalharbor
查看
十四、搜索hub(helmsearchhub)
在ArtifactHub或自己的hub实例中搜索chart。ArtifactHub是基于web页面的应用,支持CNCF项目的查找、安装和发布包及配置项,包括了公开发布的Helmchart。它是CNCF的沙盒项目。可以访问https:artifacthub。io不带参数,列出所有helmsearchhub指定charthelmsearchhubmysql
十五、搜索仓库(helmsearchrepo)
用chart中关键字搜索仓库,搜索会读取系统上配置的所有仓库,并查找匹配。搜索这些仓库会使用存储在系统中的元数据。它会展示找到最新稳定版本的chart。如果指定了devel参数,输出会包括预发布版本。SearchforstablereleaseversionsmatchingthekeywordnginxhelmsearchreponginxSearchforreleaseversionsmatchingthekeywordnginx,includingprereleaseversionshelmsearchreponginxdevelSearchforthelateststablereleasefornginxingresswithamajorversionof1helmsearchreponginxingressversion1。0。0十六、验证chart(helmlint)
该命令使用一个chart路径并运行一系列的测试来验证chart的格式是否正确。如果遇到引起chart安装失败的情况,会触发〔ERROR〕信息,如果遇到违反惯例或建议的问题,会触发〔WARNING〕。helmlintPATH〔flags〕helmlint。mysql
十七、常用命令总结helmversion查看helm版本helmcreatexxx创建一个xxxchartshelmlint。xxx检查包的格式或信息是否有问题helminstallxxx1。xxx部署安装xxx,设置名称为xxx1helmlist列出已经部署的chartshelmhistory发布历史helmupgrade更新版本helmrollback回滚版本helmpackage。xxx打包chartshelmrepoaddusernameadminpasswordpasswordmyharborxxx增加repohelmuninstallxxx1卸载删除xxx1helmpull拉取chart包helmcmpush推送chart包helmrepoupdate更新仓库资源helmsearchhub从ArtifactHub中查找并列出helmcharts。ArtifactHub中存放了大量不同的仓库helmsearchrepo从你添加(使用helmrepoadd)到本地helm客户端中的仓库中进行查找。该命令基于本地数据进行搜索,无需连接互联网
Helm常用命令(chart安装、升级、回滚、卸载等操作)就先到这里,有疑问的小伙伴,欢迎给我留言哦,后面会有大量的企业案例,请耐心等待哦