文章目录

  • 一、概述
  • 二、Helm 仓库(helm repo)
    • 1)添加chart仓库
    • 2)列出已添加的仓库
    • 3)从chart仓库中更新本地可用chart的信息
    • 4)删除一个或多个仓库
  • 三、创建chart(helm create)
  • 四、chart 包安装(helm install)
  • 五、管理chart依赖(helm dependency)
    • 1)列举指定chart的依赖
    • 2)依赖升级
  • 六、Helm 列表(helm list)
  • 七、升级版本(helm upgrade)
  • 八、发布历史(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)
  • 十五、搜索仓库(helm search repo)
  • 十六、验证chart(helm lint)
  • 十七、常用命令总结

一、概述

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

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


官方文档:https://helm.sh/zh/docs/helm/helm/
Helm 架构和基础语法讲解可以参考我这篇文章:【云原生】Helm 架构和基础语法详解

二、Helm 仓库(helm repo)

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

1)添加chart仓库

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

2)列出已添加的仓库

helm repo list

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

helm repo update bitnami

4)删除一个或多个仓库

helm repo remove bitnami

三、创建chart(helm create)

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

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

$ 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包。安装参数必须是chart的引用,一个打包后的chart路径未打包的chart目录或者是一个URL

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

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将依赖存储在’charts/'。对于chart开发者,管理依赖比声明了所有依赖的’Chart.yaml’文件更容易。
  • 依赖命令对该文件进行操作,使得存储在’charts/'目录的需要的依赖和实际依赖之间同步变得很容易。

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

# 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 字段应该包含一个语义化的版本或版本范围。

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

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

1)列举指定chart的依赖

# helm dependency list CHART
helm dependency list wordpress

2)依赖升级

基于Chart.yaml内容升级charts/

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

六、Helm 列表(helm list)

  • 列举发布版本,该命令会列举出指定命名空间的所有发布版本,(如果没有指定命名空间,会使用当前命名空间)。

  • 默认情况下,只会列举出部署的或者失败的发布,像--uninstalled或者--all会修改默认行为。这些参数可以组合使用:--uninstalled --failed

  • 默认情况下,最多返回256项,使用--max限制数量,--max设置为0不会返回所有结果,而是返回服务器默认值,可能要比256更多。 同时使用--max--offset参数可以翻页显示。

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

七、升级版本(helm upgrade)

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

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

八、发布历史(helm history)

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

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

$ 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)

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

# helm rollback <RELEASE> [REVISION] [flags]
# 先查看历史版本
helm history myharbor -n harbor
# 不指定版本就回退上个版本
helm rollback myharbor 1 -n harbor
helm rollback myharbor -n harbor

十、展示chart(helm show)

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

十一、拉取chart(helm pull)

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

# helm pull [chart URL | repo/chartname] [...] [flags]
# 仅下载
helm pull bitnami/redis
# 下载并解压到当前目录
helm pull bitnami/redis --untar

十二、Helm 打包(helm package)

  • 将chart目录打包到chart归档中,该命令将chart打包成一个chart版本包文件。如果给定路径,就会在该路径中查找chart(必须包含Chart.yaml文件)然后将目录打包。
  • 要签名一个chart,使用--sign参数,在大多数场景中,也要提供--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进行匹配,该.helmignore文件支持Unix shell全局匹配,相对路径匹配和否定(以!前缀反向匹配)。每行仅考虑一种模式。示例如下:

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

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

将chart推送到远程。

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、在该路径下创建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,固定参数,bigdata自定义项目
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 # 强制推送,--force
helm cm-push --force mychart-0.3.2.tgz local-harbor

查看

十四、搜索 hub(helm search hub)

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

# 不带参数,列出所有
helm search hub # 指定chart
helm search hub mysql

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

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

# 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

十六、验证chart(helm lint)

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

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


十七、常用命令总结

helm version                            // 查看helm版本
helm create xxx                         // 创建一个xxx charts
helm lint ./xxx                         // 检查包的格式或信息是否有问题
helm install xxx1 ./xxx                 // 部署安装xxx,设置名称为xxx1
helm list                               // 列出已经部署的charts
helm history                            // 发布历史
helm upgrade                            // 更新版本
helm rollback                           // 回滚版本
helm package ./xxx                      // 打包charts
helm repo add --username admin --password password myharbor xxx  // 增加repo
helm uninstall xxx1                     // 卸载删除xxx1
helm pull                                // 拉取chart包
helm cm-push                            // 推送chart包
helm repo update                        // 更新仓库资源
helm search hub                         // 从 Artifact Hub 中查找并列出 helm charts。 Artifact Hub中存放了大量不同的仓库
helm search repo                        // 从你添加(使用 helm repo add)到本地 helm 客户端中的仓库中进行查找。该命令基于本地数据进行搜索,无需连接互联网

Helm 常用命令(chart 安装、升级、回滚、卸载等操作)就先到这里,有疑问的小伙伴,欢迎给我留言哦,后面会有大量的企业案例,请耐心等待哦~

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

  1. 前沿分享|阿里云数据库解决方案资深专家 李圣陶:云原生数据库解决方案 加速企业国产化升级

    简介: 本篇内容为2021云栖大会-企业级云原生数据库最佳实践论坛中,阿里云数据库解决方案资深专家 李圣陶关于"云原生数据库解决方案 加速企业国产化升级"的分享. 本文从几大视角来 ...

  2. rpm命令管理——安装升级与卸载

    rpm命令管理--安装升级与卸载 1.包全名和包名 包全名:一般用于安装和软件升级. 包名:安装好了,这时候就可以用包名. 2.RPM安装 功能:安装文件包 语法: rpm -ivh 包全名 ​ -i ...

  3. rpm常用命令汇总 -- 安装,升级,查询,验证,卸载

    文章目录 1 RPM 安装 (install) 2 RPM 升级与更新 (upgrade/freshen) 3 RPM 查询 (query) 4 RPM 验证 5 RPM 反安装与重建数据库 (era ...

  4. 云原生演进趋势下传统数据库升级实践

    简介:在数字化背景下,我们有许多思考.数据库跟以前那有什么不一样呢?什么是所谓的云原生数据库呢?作为使用数据库的开发者,对数据库的需求有什么变化?如今使用数据库我们一般会提什么样的诉求?本文将一一为大 ...

  5. Helm系列(5)-helm 常用命令

    安装前自定义 chart 上述安装方式只会使用 chart 的默认配置选项.很多时候,我们需要自定义 chart 来指定我们想要的配置. 使用 helm show values 可以查看 chart ...

  6. Python学习八:pip 最常用命令、pip升级、pip 清华大学开源软件镜像站、Python日期和时间(Time模块、日历(Calendar)模块)

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具. p ...

  7. Day78.Linux 常用命令、安装jdk | Tomcat | Mysql

    目录 一.VMware--创建生产的电脑工厂 Xshell和Xftp的安装 二.Linux 目录结构 ★ 三.路径 四.VI | VIM 编辑器 ★ 三个模式之间的切换关系 五.常用命令 ★ 2.网络 ...

  8. M1芯片Mac安装brew和brew常用命令(附:安装docker)

    小提示:mac终端常用命令(需要root权限前面加sudo) mac终端安装brew: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/ ...

  9. 云原生|kubernetes|rancher-2.6.4安装部署简明手册

    前言: rancher是一个比较特殊的开源的kubernetes管理工具,特殊在它是一个名称为k3s的简单kubernetes集群,而该集群是在kubernetes集群内的. rancher还可以在一 ...

  10. 【python/pip】常用命令|离线安装python包|更新pip

    一.常用命令 pip list:显示所有已安装的python包 pip -v list:显示所有已安装的python包的详细信息(安装地址),默认pypi源地址 pip uninstall 包名:卸载 ...

最新文章

  1. CentOS如何下载安装EPEL源
  2. 【深度学习】深入浅出数字图像处理基础(模型训练的先修课)
  3. 移动银行木马活跃度升级 恐成黑客攻击跳板
  4. 在Word XP中也能插入国际音标、拼音
  5. eclipse Tomcat 启动报错
  6. MYSQL 高效索引策略(完成)
  7. iptables -F 后断开连接
  8. 视频教程-HTML零基础经典入门视频-HTML5/CSS
  9. 用于NIR-II成像的小分子染料(CH1055)
  10. python求15 17 23 65 97的因数_32个常用的Python功能介绍
  11. 作为一名开发者,要警惕这五个浪费生命的现象
  12. 条码打印机、色带、碳带的知识分享 | 条码打印机色带碳带的选购经验 | 鸿顺捷知识分享
  13. linux目录显示蓝色,centos系统创建文件夹目录显示颜色
  14. 新《葫芦兄弟》被批毁童年,如果这样拍必然好看一百倍!
  15. 浅谈远心镜头选择十大参数
  16. KSM(Kernel Samepage Merging) 剖析:Linux 内核中的内存去耦合
  17. android动画机制,Android动画机制探究
  18. Elastic 极客时间 阮一鸣 学习笔记_入门
  19. 中国乌龙茶市场趋势报告、技术动态创新及市场预测
  20. 在没有Release的日子里

热门文章

  1. 第62页的gtk+编程例子——菜单
  2. .Net与DirectX结合制作泡泡屏保
  3. 【EC200U】 基站定位
  4. 黑龙江小兴安岭林区停伐后上演“王者归来”
  5. Quixel bridge桥接设置
  6. Couldn't connect to host, port: localhost, 25; timeout -1;
  7. 两个人聪明人的空城——《司马懿之虎啸龙吟》
  8. 会考计算机基本知识点总结,高中计算机会考基本知识点
  9. android手机闹钟程序,Android手机闹钟用法实例
  10. CSS3时光流逝效果