K8S - Helm

1 - Helm

Helm是Kubernetes的包管理器。
通过Helm可以使用一个名为Chart的资源模板化并打包Kubernetes资源,比如Deployment,Service,ConfigMap,Ingress等。
可以在安装时使用输入参数来配置这些资源,也可以使用依赖项实现包安装时复用现有图表。

  • 创建新的chart包
  • 将charts包文件打包压缩
  • 同chart仓库进行集成,获取charts文件
  • 安装及卸载charts到kubernetes集群
  • 管理通过helm安装的charts应用

官方信息

  • https://helm.sh/
  • https://helm.sh/docs/
  • https://helm.sh/docs/intro/quickstart/
  • https://github.com/helm

2 - 架构

K8S - Helm_第1张图片

概念

  • chart: 一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义。
  • release:在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次,每次安装都会创建一个新的 release。
  • repository:用于发布和存储 Chart 的仓库,Helm客户端通过HTTP协议来访问仓库中Chart的索引文件和压缩包。

组件

  • Helm CLI: Helm 的客户端组件,通过 gRPC aAPI 向 Tiller 发送请求
  • Tiller: Helm 的服务器端组件,在 Kubernetes 群集上运行
    负载解析客户端端发送过来的 Chart,并根据 Chart 中的定义在 Kubernetes 中创建出相应的资源,tiller 把 release 相关的信息存入 Kubernetes 的 ConfigMap 中。

3 - Helm存储库

Helm存储库可以托管用于管理应用程序的Chart。
Helm提供了一个CLI,用于从给定的Helm存储库里安装应用程序到指定的Kubernetes环境中。
一些众所周知的软件应用程序的各种稳定Helm图表可以在如下链接中找到,

  • Github存储库:https://github.com/kubernetes/charts/tree/master/stable
  • Kubeapps Hub:https://hub.kubeapps.com/

4 - 参考信息

  • Helm 从入门到实践: https://www.jianshu.com/p/4bd853a8068b
  • 使用Helm管理kubernetes应用: https://www.jianshu.com/p/5db132101a09

你可能感兴趣的:(K8S - Helm)