Helm 详细介绍,安装及使用( 二 )


curl https://raw.Githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.shchmod 700 get_helm.sh./get_helm.sh安装 Tiller安装好 helm 客户端后,就可以通过以下命令将 Tiller 安装在 kubernetes 集群中:
helm init这个地方默认使用 “https://kubernetes-charts.storage.googleapis.com” 作为缺省的 stable repository 的地址,但由于国内有一张无形的墙的存在,googleapis.com 是不能访问的 。可以使用阿里云的源来配置:
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_contAIners/tiller:v2.9.1--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts执行上面命令后,可以通过 kubectl get po -n kube-system 来查看 tiller 的安装情况 。
由于 kubernetes 从1.6 版本开始加入了 RBAC 授权 。当前的 Tiller 没有定义用于授权的 ServiceAccount, 访问 API Server 时会被拒绝,需要给 Tiller 加入授权 。
7.1 创建账户, 绑定角色

创建 Kubernetes 的服务帐号和绑定角色 。
# 1. 创建 serviceaccount$. kubectl create serviceaccount --namespace kube-system tiller# 结果serviceaccount "tiller" created# 绑定 clusterrolebinding $. kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller# 结果clusterrolebinding.rbac.authorization.k8s.io "tiller-cluster-rule" created7.2 添加ServiceAccount
给 Tiller 的 deployments 添加刚才创建的 ServiceAccount.
$. kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'# 结果deployment.extensions "tiller-deploy" patched7.3 查看绑定结果
查看 Tiller deployments 资源是否绑定 ServiceAccount.
$.kubectl get deploy -n kube-system tiller-deploy -o yaml | grep serviceAccount# 结果serviceAccount: tillerserviceAccountName: tiller7.4 查看 Tiller 是否安装成功$. helm version# 结果Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeStat
安装成功后,即可使用 helm install xxx 来安装 helm 应用 。
如果需要删除 Tiller,可以通过
kubectl delete deployment tiller-deploy --namespace kube-system
或者使用
helm reset
来删除 Tiller 的 deployment 。
使用 Helm 操作 Chart
使用 helm 来操作 chart,包括创建、删除、打包、安装等使用 。
Helm 的核心命令:
8.1 helm createhelm create 创建一个 Chart 模板 。
helm create testCreating test8.2 helm packagehelm package 打包一个 Chart 模板 。
$. helm package testSuccessfully packaged chart and saved it to: root/test-0.1.0.tgz8.3 helm search 查找可用的 Chart 模板$. helm search NginxNAMECHART VERSIONApp VERSION DESCRIPTIONstable/nginx-ingress0.9.50.10.2An nginx Ingress controller that uses ConfigMap...stable/nginx-lego0.3.1Chart for nginx-ingress-controller and kube-legostable/gcloud-endpoints 0.1.0Develop, deploy, protect and monitor your APIs ...8.4 helm inspecthelm inspect 查看指定 Chart 的基本信息
$. helm inspectapiVersion: v1appVersion: "1.0"description: A Helm chart for Kubernetesname: testversion: 0.1.08.5 helm installhelm install 根据指定的 Chart 部署一个 Release 到 Kubernetes 集群 。
Chart 模板文件结构示例wordpress├── charts├── Chart.yaml├── README.md├── requirements.lock├── requirements.yaml├── templates│├── deployment.yaml│├── externaldb-secrets.yaml│├── _helpers.tpl│├── ingress.yaml│├── NOTES.txt│├── pvc.yaml│├── secrets.yaml│├── svc.yaml│└── tls-secrets.yaml└── values.yaml一个 wordpress chart 如上(去除部分 test 和 charts 依赖), 基本结构由以下几个部分组成: