一、简介

官方文档:https://helm.sh/docs/
注意:helm3 与helm2是两种不同的架构,3兼容2,本文使用的是helm3版本。

Helm是一款强大而灵活的 Kubernetes 软件包管理和运维工具,类似于apt、yum等包管理工具。运用Helm可以极大的简化Kubernetes应用部署。
Helm Chart是用来封装Kubernetes原生应用程序的一系列YAML文件。
对于应用发布者而言,可以通过Helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用Helm后不用需要编写复杂的应用部署文件,可以以简单的方式在Kubernetes上查找、安装、升级、回滚、卸载应用程序。

在这里插入图片描述

二、安装

github地址:https://github.com/helm/helm/releases

2.1 tar包安装

# 下载
wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz

# 解压
tar -zxvf helm-v3.2.4-linux-amd64.tar.gz

# 移到bin目录
mv linux-amd64/helm /usr/local/bin/helm

# 命令补全
echo "source <(helm completion bash)" >> ~/.bashrc
source <(helm completion bash)

# 验证
[root@harbor ~]# helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}
[root@harbor ~]# helm help
completion 	# 为指定的shell生成自动完成脚本(bash或zsh)
create     	# 创建一个具有给定名称的新 chart
delete     	# 从 Kubernetes 删除指定名称的 release
dependency 	# 管理 chart 的依赖关系
fetch      	# 从存储库下载 chart 并(可选)将其解压缩到本地目录中
get        	# 下载一个命名 release
help       	# 列出所有帮助信息
history    	# 获取 release 历史
home       	# 显示 HELM_HOME 的位置
init       	# 在客户端和服务器上初始化Helm
inspect    	# 检查 chart 详细信息
install    	# 安装 chart 存档
lint       	# 对 chart 进行语法检查
list       	# releases 列表
package    	# 将 chart 目录打包成 chart 档案
plugin     	# 添加列表或删除 helm 插件
repo       	# 添加列表删除更新和索引 chart 存储库
reset      	# 从集群中卸载 Tiller
rollback   	# 将版本回滚到以前的版本
search     	# 在 chart 存储库中搜索关键字
serve      	# 启动本地http网络服务器
status     	# 显示指定 release 的状态
template   	# 本地渲染模板
test       	# 测试一个 release
upgrade    	# 升级一个 release
verify     	# 验证给定路径上的 chart 是否已签名且有效
version    	# 打印客户端/服务器版本信息
dep         # 分析 Chart 并下载依赖

2.2 添加仓库

添加公用仓库

  • 微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库强烈推荐,基本上官网有的chart这里都有。
  • 阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
  • 官方仓库(https://hub.kubeapps.com/charts/incubator)官方chart仓库,国内有点不好使。
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com
helm repo add aliyuncs https://apphub.aliyuncs.com
helm repo add kong https://charts.konghq.com
helm repo update

添加私有仓库

暂无私有仓库

查看已添加的仓库

[root@harbor ~]# helm repo list
NAME     	URL                                                       
stable   	http://mirror.azure.cn/kubernetes/charts                  
aliyun   	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts    
kong     	https://charts.konghq.com                                 
incubator	https://kubernetes-charts-incubator.storage.googleapis.com
aliyuncs 	https://apphub.aliyuncs.com

2.3 指定k8s集群

/root/.kube/config文件是kubectl的配置文件,里面有k8s集群的配置信息,Helm可直接使用。

# 文件/etc/profile追加
export KUBECONFIG=/root/.kube/config

# 刷新环境变量
source /etc/profile

三、安装一个Nginx

3.1 本地安装

[root@harbor ~]# helm create nginx
[root@harbor ~]# helm install nginx-demo ./nginx/
NAME: nginx-demo
LAST DEPLOYED: Wed Jul  8 11:29:52 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=nginx,app.kubernetes.io/instance=nginx-demo" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl --namespace default port-forward $POD_NAME 8080:80

查看

[root@harbor ~]# helm list
NAME      	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART      	APP VERSION
nginx-demo	default  	1       	2020-07-08 11:29:52.361219784 +0800 CST	deployed	nginx-0.1.0	1.16.0     

删除

helm uninstall nginx-demo

3.2 使用网络源

两种方式,都行

# 在helm hub搜索nginx
helm search hub nginx

# 在添加的仓库repo源查找
helm search repo nginx

安装

helm install demo-nginx  aliyuncs/nginx

有五种安装Chart的方式。

  • Chart Reference:helm install myweb bitnami/tomcat
  • Chart包路径:helm install myweb ./tomcat-6.1.3.tgz
  • Chart包目录:helm install myweb ./tomcat
  • URL绝对路径:helm install myweb https://charts.bitnami.com/bitnami/tomcat-6.1.3.tgz
  • 仓库URL和Chart Reference:helm install --repo https://charts.bitnami.com/bitnami/ myweb tomcat
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐