從結(jié)構(gòu)中我們看到有不同級(jí)別的文件夾,以及一些yaml文件锉屈。
charts: 用于存放其他依賴和關(guān)聯(lián)的chart髓考。例如應(yīng)用依賴數(shù)據(jù)庫(kù)的chart。
Chart.yaml:存儲(chǔ)一些元數(shù)據(jù)氨菇,例如chart的信息,描述等等
templates文件夾:是所有資源的位置查蓉,我們可以看到很多kubernetes的資源文件都在這里存放豌研。
其中的_helpers.tpl鹃共,用于存儲(chǔ)模板片段,可以在文件中直接使用template函數(shù)調(diào)用晶衷。
value.yaml:存儲(chǔ)該chart的默認(rèn)值,實(shí)際安裝時(shí)可以對(duì)默認(rèn)值進(jìn)行覆蓋锹漱。
NOTES.txt:相當(dāng)于你運(yùn)行helm install的時(shí)候給用戶輸出的提示。
本著萬(wàn)事百度的精神慕嚷,按照百度文檔進(jìn)行了安裝,安裝過(guò)程沒有問(wèn)題砂心,但是在實(shí)際使用helm進(jìn)行應(yīng)用install的時(shí)候發(fā)現(xiàn)最大的問(wèn)題有4個(gè),新手應(yīng)該都能踩到
環(huán)境信息:
OS:catalina 10.15.7
Kubernetes:1.18.5(AllInOne)
安裝過(guò)程:
1抠忘、brew install helm
安裝后版本info:version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}
2、按照百度方法更新國(guó)內(nèi)chats源
helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
3伯顶、demo install
helm install mysql stable/mysql
報(bào)錯(cuò)集合:
1囚灼、Error: failed to download "stable/nginx" (hint: running helm repo update
may help)
2祭衩、Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"
3、Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec
4、helm init --service-account tiller --skip-refresh瓢宦。Error: unknown command "init" for "helm"
報(bào)錯(cuò)解決方案:
1灰羽、確保遠(yuǎn)端charts倉(cāng)庫(kù)有對(duì)應(yīng)包
2谦趣、第2峭梳、3個(gè)問(wèn)題更換stable repo源,ali的非最新版本,所以百度出來(lái)有的是手動(dòng)改驳概,有的是用shell改赤嚼,根本原因還是chart源沒有實(shí)時(shí)更新以匹配k8s版本
我這里使用的是azure的:helm repo add stable http://mirror.azure.cn/kubernetes/charts/
3、init命令為helm2的命令顺又,helm3已經(jīng)棄用更卒,可使用helm env查看環(huán)境配置信息
正確姿勢(shì)
1、brew install helm
2稚照、helm repo add stable http://mirror.azure.cn/kubernetes/charts/
3蹂空、helm repo update
4、helm install stable/xxx