Overview
Helm 是 Kubernetes 的一个包管理工具,就类似 Ubuntu上 的 APT,和 CentOs 上的 yum 命令。
具有如下功能:
- 创建新的 chart
- chart 打包成 tgz 格式
- 上传 chart 到 chart 仓库或从仓库中下载 chart
- 在
Kubernetes集群中安装或卸载 chart
- 管理用
Helm安装的 chart 的发布周期
Installing Helm
Installing Helm Client
# FROM SCRIPT
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh
Installing Tiller Server
# 安装 Tiller
helm init
# 覆盖 Tiller image
helm init --upgrade --tiller-image gcr.io/kubernetes-helm/tiller:v2.10.0
# 升级 Tiller
helm init --upgrade
# 确认 Tiller 是否在集群安装好
kubectl get pods --namespace kube-system -l app=helm
ClusterRoleBinding
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
# 调整 service account
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
Components
client 管理 charts, server 管理发布 release
Helm Client
用户命令行工具,用来创建,拉取,搜索和验证 Charts,初始化 Tiller 服务。
- 本地 chart 开发
- 仓库管理
- 与 Tiller sever 交互
- 发送预安装的 chart
- 查询 release 信息
- 要求升级或卸载已存在的 release
Tiller Server
部署在 Kubernetes 集群内部的 server,与 Helm client、Kubernetes API server 进行交互。
-
监听来自 Helm client 的请求
-
通过 chart 及其配置构建一次发布
-
安装 chart 到 Kubernetes集群,并跟踪随后的发布
-
通过与 Kubernetes交互升级或卸载 chart
Basic concept
Chart
一个 Helm 包,包含了运行 Kubernetes 一个应用实例所需要的镜像、依赖和资源定义等,是描述一组相关 Kubernetes 资源的文件集合。
Chart 的基本结构
.
├── Chart.yaml # 用于描述这个 chart, 包括名字,描述信息以及版本号
├── README.md
├── templates # Kubernetes 模板
│ ├── NOTES.txt # 用于介绍 chart 部署后的信息。例如介绍如何使用该 chart,缺省设置等
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── pvc.yaml
│ ├── secrets.yaml
│ └── svc.yaml
└── values.yaml # 用于存储 templates 目录中模板文件中用到的变量
Config
包含了应用发布配置信息
Release
在 Kubernetes 集群上运行的 Chart 及其配置的一个实例。
在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。
Repository
用于发布和存储 Chart 的仓库。
References
Overview
Helm 是 Kubernetes 的一个包管理工具,就类似 Ubuntu上 的 APT,和 CentOs 上的 yum 命令。
具有如下功能:
Kubernetes集群中安装或卸载 chartHelm安装的 chart 的发布周期Installing Helm
Installing Helm Client
Installing Tiller Server
ClusterRoleBinding
Components
Helm Client
用户命令行工具,用来创建,拉取,搜索和验证 Charts,初始化 Tiller 服务。
Tiller Server
部署在 Kubernetes 集群内部的 server,与 Helm client、Kubernetes API server 进行交互。
监听来自 Helm client 的请求
通过 chart 及其配置构建一次发布
安装 chart 到
Kubernetes集群,并跟踪随后的发布通过与
Kubernetes交互升级或卸载 chartBasic concept
Chart
一个 Helm 包,包含了运行 Kubernetes 一个应用实例所需要的镜像、依赖和资源定义等,是描述一组相关 Kubernetes 资源的文件集合。
Chart 的基本结构
Config
包含了应用发布配置信息
Release
在 Kubernetes 集群上运行的 Chart 及其配置的一个实例。
在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。
Repository
用于发布和存储 Chart 的仓库。
References