Helm学习笔记

Helm学习笔记

安装

使用二进制文件安装

tar -zxvf helm-v3.0.0-linux-amd64.tar.gz

mv linux-amd64/helm /usr/local/bin/helm

// 验证安装
# helm version
version.BuildInfo{Version:"v3.7.0", GitCommit:"eeac83883cb4014fe60267ec6373570374ce770b", GitTreeState:"clean", GoVersion:"go1.16.8"}

使用入门

添加chart仓库

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

# helm repo update // 更新charts仓库

查看chart仓库中的charts

# helm search repo bitnami

NAME                                        	CHART VERSION	APP VERSION  	DESCRIPTION                                       
bitnami/bitnami-common                      	0.0.9        	0.0.9        	DEPRECATED Chart with custom templates used in ...
bitnami/airflow                             	11.0.8       	2.1.4        	Apache Airflow is a platform to programmaticall...
bitnami/apache                              	8.8.3        	2.4.50       	Chart for Apache HTTP Server

search可以从两种来源中进行搜索。

  • helm search hub 从 Artifact Hub 中查找并列出 helm charts,Artifact Hub中存放了大量不同的仓库。

    # helm search hub nginx
    URL                                               	CHART VERSION	APP VERSION         	DESCRIPTION                                       
    https://artifacthub.io/packages/helm/dysnix/nginx 	7.1.8        	1.19.4              	Chart for the nginx server
    
  • helm search repo 从你添加(使用 helm repo add)到本地 helm 客户端中的仓库中进行查找。该命令基于本地数据进行搜索,无需连接互联网。

    Usage:
      helm search repo [keyword] [flags]
    # helm search repo nginx
    NAME                            	CHART VERSION	APP VERSION	DESCRIPTION                                       
    bitnami/nginx                   	9.5.5        	1.21.3     	Chart for the nginx server                        
    bitnami/nginx-ingress-controller	7.6.21       	0.48.1     	Chart for the nginx Ingress controller            
    bitnami/kong                    	4.1.3        	2.6.0      	Kong is a scalable, open source API layer (aka ...
    

安装chart

Usage:
  helm install [NAME] [CHART] [flags]
  
# helm install bitnami/nginx --generate-name

// 执行后,bitnami/nginx的chart被发布在本地路径,mysql-1612624192
每次执行install都会创建一个新的发布版本。所以一个chart在同一个集群中可以被安装多次,每个可以被独立的管理和升级。

--generate-name 可以使得helm自动为release生成一个名字

# 指定暗转的release的Name
usage: helm install release-Name chart-Name
e.g.
helm install nginx-test bitnami/nginx

更多安装方式

  • chart仓库(上述安装方式*)
  • 本地chart压缩包helm install foo foo-0.1.1.tar.gz
  • 解压后的chart目录 (helm install foo path/to/foo
  • 完整的URL(helm install foo https://example.com/charts/foo-1.2.3.tgz

helm install 指定value的参数
helm执行install时可以使用使用--set指定value中的参数。

// 指定value中的参数
helm install nfs-server-provisioner \
   --set persistence.enabled=true \
   --set persistence.size=20Gi \
   --set persistence.storageClass='-'   \
   --set storageClass.defaultClass=true   \
   --set nodeSelector.kubernetes\\.io/hostname=starbucks-bigdata3   \
   stable/nfs-server-provisioner

// 查询value中定义的参数
helm show values stable/nfs-server-provisioner

卸载已安装chart

# helm uninstall 本地安装版本的Name

此命令执行之后,卸载安装的chart,将会自动删除k8s的资源(pod、deployment、scv等,以及chart的历史版本)

helm3中uninstall会移除release的记录,如果想要保留删除记录,使用helm uninstall release_Name --kep-history

查看删除保留的release记录

helm 执行uninstall后不会保留release记录,可以使用–keep-history保留release记录。uninstall之后,使用helm list --uninstalled查看uninstall保留的release。

也可以使用helm list -all查看所有的release,包括uninstall、failed等。

$  helm list --all
NAME            VERSION UPDATED                         STATUS          CHART
happy-panda     2       Wed Sep 28 12:47:54 2016        UNINSTALLED     wordpress-10.4.5.6.0
inky-cat        1       Wed Sep 28 12:59:46 2016        DEPLOYED        alpine-0.1.0
kindred-angelf  2       Tue Sep 27 16:16:10 2016        UNINSTALLED     alpine-0.1.0

查看chart的详细信息

# helm show chart bitnami/nginx
annotations:
  category: Infrastructure
apiVersion: v2
appVersion: 1.21.3
dependencies:
- name: common
  repository: https://charts.bitnami.com/bitnami
  tags:
  - bitnami-common
  version: 1.x.x
description: Chart for the nginx server
home: https://github.com/bitnami/charts/tree/master/bitnami/nginx
icon: https://bitnami.com/assets/stacks/nginx/img/nginx-stack-220x234.png
keywords:
- nginx
- http
- web
- www
- reverse proxy
maintainers:
- email: containers@bitnami.com
  name: Bitnami
name: nginx
sources:
- https://github.com/bitnami/bitnami-docker-nginx
- http://www.nginx.org
version: 9.5.5

查看版本发布

helm list (或 helm ls) 命令会列出所有可被部署的版本。

# helm list

NAME            	NAMESPACE	REVISION	UPDATED                             	STATUS  	CHART      	APP VERSION
mysql-1612624192	default  	1       	2021-02-06 16:09:56.283059 +0100 CET	deployed	mysql-8.3.0	8.0.23

查看release状态

Usage:
  helm status RELEASE_NAME [flags]


helm upgrade 升级

升级release。升级到chart的最新版本或者时修改release的配置都可以使用upgrade命令。

一次升级操作会使用已有的release,并根据提供的信息对其进行升级。helm升级策略为最小升级,即它只会更新自上次发布以来发生更改的内容。

helm upgrade -f panda.yaml happy-panda bitnami/wordpress

helm rollback 回滚

失败时恢复release。

helm 基础

使用helm来管理k8s集群的软件包,helm将charts安装到k8s集群中,每次安装都会创建新的release。

1.入门 三个概念

1. Chart

代表着helm包,它包含在k8s集群内部运行的应用程序,工具或者服务所需所有资源定义。类似于rpm包(描述应用程序本省信息和相关的以来描述)

2. Repository

用来存放和共享charts的地方。类似于rpm源,只不过本仓库是专门给k8s使用的。

3. Release

运行在k8s集群中的chart实例,一个chart通常可以在同一个集群中安装多次,每次安装都会创建一个新的release。

创建自己的charts

1.基本使用流程

如何开发自己的chart,可以通过helm create 命令

  1. 创建

    $ helm create deis-workflow
    Creating deis-workflow
    

    现在在deis-workflow目录下已经有一个chart

  2. 验证格式

    在编辑chart时可以使用helm lint验证格式是否正确。

  3. chart打包

    当准备将chart打包发布时,可以运行helm package

    helm package deis-workflow
    deis-workflow-0.1.0.tgz
    
  4. 安装

    步骤3打包好的chart就可以执行 helm install

    $ helm install deis-workflow ./deis-workflow-0.1.0.tgz
    ...
    
  5. 上传chart仓库

    打包好的chart可以上传到chart仓库中。

2.chart开发指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值