image.png
从结构中我们看到有不同级别的文件夹,以及一些yaml文件。
charts: 用于存放其他依赖和关联的chart。例如应用依赖数据库的chart。
Chart.yaml:存储一些元数据,例如chart的信息,描述等等
templates文件夹:是所有资源的位置,我们可以看到很多kubernetes的资源文件都在这里存放。
其中的_helpers.tpl,用于存储模板片段,可以在文件中直接使用template函数调用。
value.yaml:存储该chart的默认值,实际安装时可以对默认值进行覆盖。
NOTES.txt:相当于你运行helm install的时候给用户输出的提示。
本着万事百度的精神,按照百度文档进行了安装,安装过程没有问题,但是在实际使用helm进行应用install的时候发现最大的问题有4个,新手应该都能踩到
环境信息:
OS:catalina 10.15.7
Kubernetes:1.18.5(AllInOne)
安装过程:
1、brew install helm
安装后版本info:version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}
2、按照百度方法更新国内chats源
helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
3、demo install
helm install mysql stable/mysql
报错集合:
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"
报错解决方案:
1、确保远端charts仓库有对应包
2、第2、3个问题更换stable repo源,ali的非最新版本,所以百度出来有的是手动改,有的是用shell改,根本原因还是chart源没有实时更新以匹配k8s版本
我这里使用的是azure的:helm repo add stable http://mirror.azure.cn/kubernetes/charts/
3、init命令为helm2的命令,helm3已经弃用,可使用helm env查看环境配置信息
正确姿势
1、brew install helm
2、helm repo add stable http://mirror.azure.cn/kubernetes/charts/
3、helm repo update
4、helm install stable/xxx