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