Helm入门文档和介绍
Posted 喜欢雨天的我
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Helm入门文档和介绍相关的知识,希望对你有一定的参考价值。
概要
helm 作为kubernetes 的包管理。
主要概念
- Helm
是一个命令行下的客户端工具
Helm 通过kubernetes的Api 渲染 模版和通讯
Helm 可以在你想要的任务地方运行 - Tiller
Tiller是Helm的服务端,部署在Kubernetes的集群中。接收来自Helm的请求,
并根据Chart生成K8s的部署文件(Release),然后提交给K8s去创建应用。
Tiller还提供了Release的升级,删除,回滚的功能性。 - Charts
Helm的软件包,采用Tar格式。 - Repoistory
Helm的软件仓库,提供一系列Chart软件包供用户下载使用。 - Release
使用helm install 命令在k8s集群部署的Chart成为Relese;
安装
包安装
前往the official releases page. 去下载符合系统的安装包,本次采用macos 系统进行安装。
- 将包解压后放置后的结构如下图:
- 配置环境变量:
vi ~/.bash_profile
# 按照你的路径配置
source ~/.bash_profile
安装Tiller
- 执行如下命令进行安Tiller到k8s的集群中
helm init
- 变更仓库地址为阿里仓库
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.9 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
注意: v2.16.9 变更为你对应的helm版本
- 查看k8s民命空间为
kube-system
中的tiller状态
kubectl get po -n kube-system |grep tiller
- 创建 Kubernetes 的服务帐号和绑定角色
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
- 给 Tiller 的 deployments 添加刚才创建的 ServiceAccount
kubectl patch deploy --namespace kube-system tiller-deploy -p '"spec":"template":"spec":"serviceAccount":"tiller"'
- 查看 Tiller deployments 资源是否绑定 ServiceAccount
kubectl get deploy -n kube-system tiller-deploy -o yaml | grep serviceAccount
- 查看 Tiller 是否安装成功
helm version
安装成功后可以使用helm install xxx
进行安装helm的应用。
注意: 如果想要移除tiller 则可以执行如下命令:
kubectl delete deployment tiller-deploy --namespace kube-system
# 或者
helm reset
命令使用
- helm 创建chart模版
helm create helm_test
生成的结构如下:
.
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
- helm 打包Chart模版
helm package helm_test
- helm search 查找可用的 Chart 模板
helm search nginx
- helm inspect 查看指定 Chart 的基本信息
helm inspect stable/nginx-ingress
- helm 回滚版本
# helm rollback [RELEASE] [REVISION]
helm rollback happy-panda 1
Chart模版介绍和使用
Chart结构介绍
.
├── Chart.yaml # Chart 信息的 YAML 文件, 包括 Chart 的版本、名称等
├── charts # 存放子Subchart , 是一个很棒的存在
├── templates # 该目录下存放 Chart 所有的 K8s 资源定义模板
│ ├── NOTES.txt # 一段简短使用说明的文本文件,用于安装 Release 后提示用户使用
│ ├── _helpers.tpl # 存放可重用的模板片段
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml # 当前 Chart 的默认配置的值. 注意:也可以使用 helm install --values=myvals.yaml nginx 来指定特定的配置文件
Chart使用
本来想写这块的使用,没想到官方讲解的很详细。不过这里列一下模版操作的坑,如下截图:
以上是关于Helm入门文档和介绍的主要内容,如果未能解决你的问题,请参考以下文章