本文介绍在k8s上部署和使用helm。Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。能够把Helm比做CentOS的yum工具。 经过使用使用Helm能够管理Kubernetes manifest files、管理Helm安装包charts、基于chart的Kubernetes应用分发。linux
Chart: 是helm的应用打包格式。Chart由一系列文件组成,这些文件相似rpm包nginx
Chart目录结构:
一、chart.yaml
Yaml文件,用来描述chart的摘要信息api二、readme.md
Markdown格式的readme文件,此文件为可选ide三、LICENSE
文本文件,描述chart的许可信息,此文件为可选工具四、requirements.yaml
Yaml文件,用来描述chart的的依赖关系,在安装过程当中,依赖的chart也会被一块儿安装测试五、value.yaml
Yaml文件,chart支持在安装的时候作对配置参数作定制化配置,value.yaml文件为配置参数的默认值ui六、templates目录
各种k8s资源的配置模板目录google
# cd /usr/local/src/ # # wget https://storage.googleapis.com/kubernetes-helm/helm-v2.8.2-linux-amd64.tar.gz # tar -zxvpf helm-v2.8.2-linux-amd64.tar.gz # mv linux-amd64/helm /usr/local/sbin/helm # helm version Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"} rror: cannot connect to Tiller
# helm init --upgrade -i \ registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.8.2 \ --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts # helm version Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"} # kubectl get pod -n kube-system -o wide # kubectl get deployment tiller-deploy -n kube-system -o wide
# helm repo update # helm repo list # helm install stable/nginx-ingress
出现Error: no available release name found提示是由于未配置rbacurl
# kubectl create serviceaccount --namespace kube-system tiller # kubectl create clusterrolebinding tiller-cluster-rule \ --clusterrole=cluster-admin --serviceaccount=kube-system:tiller # kubectl patch deploy --namespace kube-system \ tiller-deploy -p \ '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
# helm install stable/nginx-ingress
# kubectl get pod # kubectl get deployment # kubectl get svc
# helm list # helm delete invisible-greyhound # kubectl get pod # kubectl get deployment # kubectl get svc