helm版本3直接下载二进制就可以了
https://github.com/helm/helm/releases
wget https://get.helm.sh/helm-v3.3.0-rc.2-linux-amd64.tar.gz
tar -zxvf helm-v3.3.0-rc.2-linux-amd64.tar.gz
cp linux-amd64/helm /usr/bin
chmod a+x /usr/bin/helm
helm3 的新特性
1. 去除Tiller 和 helm serve
现在helm命令通过kubeconfig 直接操作k8s集群,类似于kubectl
Helm使用与kubectl上下文相同的访问权限,也无需再使用helm init来初始化Helm
这点在helm部署和使用上方便了很多,也减少了服务发布可能遇到的因为tiller引起的异常
而且移除了 helm serve 的功能,不再本地提供chart仓库能力
2. 预定义仓库被移除,添加helm hub
helm search 现在区分 repo 和hub
repo 是自己手动添加的源
比如官方的有稳定版和在建设的,还有ibm的
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
helm repo add ibmstable https://raw.githubusercontent.com/IBM/charts/master/repo/stable
# 此处 repo add 的时候,如果名称已存在了也不提醒,居然直接覆盖了,是bug吧
hub 是 helm 的中心库,各软件商需要在 hub 把应用更新到最新,我们才能在上面查到最新的,同dockerhub
这个建设还不久,好处是范围比较广泛, hub 搜到的包需要进入hub页面查看下载地址
我们可以把 hub 和 google repo 配合起来食用,效果更佳
helm search hub mysql
3. Values 支持 JSON Schema 校验器
当我们运行 helm install 、 helm upgrade 、 helm lint 、 helm template 命令时,JSON Schema 的校验会自动运行,如果失败就会立即报错。
这样等于是先都校验了一遍,再创建。 kubectl 说你呢,能不能学学!!!
4. 代码复用 - Library Chart 支持
Helm 3 中引入了一种新的 Chart 类型,名为 Library Chart 。它不会部署出一些具体的资源,只能被其他的 Chart 所引用,提高代码的可用复用性。当一个 Chart 想要使用该 Library Chart内的一些模板时,可以在 Chart.yaml 的 dependencies 依赖项中指定。
5. requirements.yaml 被整合到了 Chart.yaml 中,但格式保持不变
还有一些其他的功能,比如 helm test 等,不属于主要功能,且属于测试阶段,我还没有去尝试。
6.不同的 namespace 可以使用相同的 Release Name
7.简化模板对象 .Capabilities
8.使用JSONSchema验证 charts 的 Values
9.将requirements.yaml合并到Chart.yaml中
10.helm install 时需要指定 Release Name,开启自动生成需要 --generate-name 参数
11.支持 push 到远端 registry (如:harbor)
12.移除 helm serve
命令行变化(将原先的命令保留为别名Aliases)
helm delete --> helm uninstall
helm inspect -> helm show
helm fetch -> helm pull
go 导入路径改变 k8s.io/helm --> helm.sh/helm
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable https://kubernetes-charts.storage.googleapis.com
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 loki https://grafana.github.io/loki/charts
helm repo add elastic https://helm.elastic.co
配置仓库
- 微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库强烈推荐,基本上官网有的chart这里都有。
- 阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
- 官方仓库(https://hub.kubeapps.com/charts/incubator)官方chart仓库,国内有点不好使。
helm search repo bitnami
helm show chart bitnami/mariadb
helm install harbor bitnami/harbor
helm uninstall harbor
本地包的使用方式
helm pull bitnami/kibana
tar -zxvf kibana-5.3.6.tgz
cd kibana
vim values.yaml
helm install kibana . --set elasticsearch.hosts[0]=es-elasticsearch-master,elasticsearch.port=9200
或者
helm package kibana
helm install kibana kibana-5.3.6.tgz --set elasticsearch.hosts[0]=es-elasticsearch-master,elasticsearch.port=9200
还有helm 安装相关插件推送chat包到私有仓库
https://github.com/chartmuseum/helm-push
helm repo add devops https://harbor.xxx.net/chartrepo/devops --username devops --password xxxxxx
helm plugin install https://github.com/chartmuseum/helm-push
helm push harbor-1.6.2.tgz devops --username devops --password xxxxx
https://helm.sh/docs/topics/registries/
参考地址
https://blog.csdn.net/liumiaocn/article/details/103380446