【Helm官网:https://helm.sh/docs/intro/】
Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的
yum。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
1)创建归类目录
[root@server2 ~]# mkdir helm
[root@server2 ~]# cd helm/
2)安装
安装包下载位置:https://github.com/helm/helm/releases
1.解压
tar zxf helm-v3.4.1-linux-amd64.tar.gz
2.移动到可执行目录
cd linux-amd64/
mv helm /usr/local/bin/
3)设置helm命令补齐,设置后重新打开终端即可使用
echo "source <(helm completion bash)" >> ~/.bashrc
source ~/.bashrc
Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。
Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物。
Repository(仓库) 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。
Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。
helm search:查找 Charts
helm search hub
:从 Artifact Hub 中查找并列出 helm charts。 Artifact Hub中存放了大量不同的仓库。helm search repo
:从你所添加的仓库中查找chart的名字。该命令基于本地数据进行搜索,无需连接互联网helm install:安装一个 helm 包
helm status:追踪 release 的状态,或是重新读取配置信息
helm upgrade:升级版本。只会更新自上次发布以来发生了更改的内容。
helm rollback:回滚
helm uninstall:卸载
helm get values:看配置值是否真的生效
helm repo:使用仓库
helm repo list
:查看配置的仓库helm repo add
:添加第三方 Chart 库helm repo remove
:命令来移除仓库helm create:创建Charts
helm package:将chart 打包
1)helm添加第三方chart
添加:
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo add bitnami https://charts.bitnami.com/bitnami
删除:
helm repo remove stable
2)第三方repo搜索
helm search repo nginx
3)准备镜像
1.在Harbor仓库中新建公开项目:bitnami
2.拉取镜像
docker pull bitnami/nginx:1.19.7-debian-10-r1
3.上传镜像到Harbor仓库
docker push zy.westos.org/bitnami/nginx:1.19.7-debian-10-r1
1)下载nginx的Chart包
helm pull bitnami/nginx --version 8.7.0
2)解压
tar zxf nginx-8.7.0.tgz
cd nginx
3)修改配置文件vim values.yaml
# 指定Harbor仓库
global:
imageRegistry: zy.westos.org
# 镜像标签
tag: 1.19.7-debian-10-r1
#服务类型
#type: LoadBalancer
type: ClusterIP
4)安装
helm install webserver .
5)查看详细信息
6)测试
1)修改副本数vim values.yaml
replicaCount: 2
2)更新
helm upgrade webserver .
3)查看历史版本
helm history webserver
4)回滚
helm rollback webserver 版本号
5)卸载
helm uninstall webserver
1)创建
cd helm/
helm create mychart
2)创建后会在目录创建一个mychart目录
目录结构如下:
cd mychart/
[root@server2 mychart]# tree .
.
├── charts
├── Chart.yaml # 应用描述信息
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml # 应用部署信息
3 directories, 10 files
3)编写部署信息 vim values.yaml
repository: myapp
tag: "v1"
4)检查依赖和模板配置是否正确
helm lint .
5)打包
helm package mychart/
6)添加Harbor仓库(提前在Harbor仓库新建项目charts)
1.复制证书
cp /etc/docker/certs.d/zy.westos.org/ca.crt /etc/pki/ca-trust/source/anchors/
2.更新证书信任
update-ca-trust
# 没有部署TLS,直接添加仓库即可
3.添加仓库
helm repo add mychart https://zy.westos.org/chartrepo/charts
//在线安装
helm plugin install https://github.com/chartmuseum/helm-push
1)离线安装
1.获取插件目录
helm env
2.创建插件目录
mkdir -p /root/.local/share/helm/plugins/push
3.解压tar包到插件目录下
tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/push/
2)上传
helm push mychart-0.1.0.tgz mychart -u admin -p westos --insecure
3)更新repo,发现可以search到刚上传的chart
helm repo update
helm install webserver mychart/mychart
1)修改vim mychart/Chart.yaml
appVersion: v2
version: 0.2.0
2)修改vim mychart/values.yaml
tag: "v2"
3)打包
helm package mychart
4)上传
helm push mychart-0.2.0.tgz mychart -u admin -p westos --insecure
5)更新repo
helm repo update
6)搜索全部版本
helm search repo mychart -l
7)更新部署的Chart版本
helm upgrade webserver mychart/mychart
8)回滚
helm rollback webserver 1
9)卸载
helm uninstall webserver