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" created
7.2 添加ServiceAccount给 Tiller 的 deployments 添加刚才创建的 ServiceAccount.
$. kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'# 结果deployment.extensions "tiller-deploy" patched
7.3 查看绑定结果查看 Tiller deployments 资源是否绑定 ServiceAccount.
$.kubectl get deploy -n kube-system tiller-deploy -o yaml | grep serviceAccount# 结果serviceAccount: tillerserviceAccountName: tiller
7.4 查看 Tiller 是否安装成功$. helm version# 结果Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeStat
安装成功后,即可使用 helm install xxx 来安装 helm 应用 。使用 Helm 操作 Chart
如果需要删除 Tiller,可以通过
kubectl delete deployment tiller-deploy --namespace kube-system
或者使用
helm reset
来删除 Tiller 的 deployment 。
使用 helm 来操作 chart,包括创建、删除、打包、安装等使用 。8.1 helm createhelm create 创建一个 Chart 模板 。
Helm 的核心命令:
helm create testCreating test
8.2 helm packagehelm package 打包一个 Chart 模板 。$. helm package testSuccessfully packaged chart and saved it to: root/test-0.1.0.tgz
8.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.0
8.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 依赖), 基本结构由以下几个部分组成:- charts 存放子Chart (Subchart) 的定义,Subchart 指的是当前 Chart 依赖的 Chart , 在 requirements.yaml 中定义
- Chart.yaml 包含 Chart 信息的 YAML 文件, 包括 Chart 的版本、名称等,在 DCE Helm 插件中还包含 Chart 的 团队授权 信息 和 是否公开 的信息
- README.md 可选:Chart 的介绍信息等(该文件对于一个大型 Chart 来说十分重要)
- Requirements.yaml 可选:列举当前 Chart 的需要依赖的 Chart
- templates
- 该目录下存放 Chart 所有的 K8s 资源定义模板,通常不同的资源放在不同的文件中,DCE Helm 插件中自定义模板的 K8s 资源统一放在 all_sources.yaml 文件中
推荐阅读
- 纤维素水果有哪些 纤维素水果介绍
- 酸李子怎么泡好吃 酸李子好吃的泡发介绍
- 立春节气由来介绍50字 立春节气由来
- 关于除夕的习俗和禁忌介绍 除夕的禁忌有哪些
- 春节小年的相关介绍怎么写 春节小年的相关介绍
- 小年的简单介绍 小年的基本介绍
- 生抽的质量等级有什么区别 生抽的介绍
- 干丝是什么东西做的 干丝简单介绍
- 父亲节介绍英文 父亲节介绍
- 哈密红薯品种特征介绍 白哈密红薯口感介绍
- 该目录下存放 Chart 所有的 K8s 资源定义模板,通常不同的资源放在不同的文件中,DCE Helm 插件中自定义模板的 K8s 资源统一放在 all_sources.yaml 文件中