1. Helm 架构

helm 管理 Kubernetes 中资源有两种方式,helm2 使用集群中运行的 Tiller 服务代理请求处理,helm3 则是直接服用 ~/.kube/config 来访问集群。

1.1. Helm2 架构

image

helm ---> tiller ---> kuberentesKind

Helm 有两个主要部分:

Helm Client 是最终用户的命令行客户端。客户端负责以下部分:

  • 本地 chart 开发
  • 管理存储库
  • 与 Tiller 服务交互
  • 发送要安装的 chart
  • 查询有关发布的信息
  • 请求升级或卸载现有 release

Tiller Server 是一个集群内服务,与 Helm 客户端进行交互,并与 Kubernetes API 服务进行交互。服务负责以下内容:

  • 监听来自 Helm 客户端的传入请求
  • 结合 chart 和配置来构建发布
  • 将 chart 安装到 Kubernetes 中,然后跟踪后续 release
  • 通过与 Kubernetes 交互来升级和卸载 chart

简而言之,客户端负责管理 chart,而服务端负责管理 release。

Helm 客户端使用 Go 编程语言编写,并使用 gRPC 协议套件与 Tiller 服务进行交互。

Tiller 服务也用 Go 编写。它提供了一个与客户端连接的 gRPC 服务,它使用 Kubernetes 客户端库与 Kubernetes 进行通信。目前,该库使用 REST + JSON。

Tiller 服务将信息存储在位于 Kubernetes 内的 ConfigMaps 中。它不需要自己的数据库。

如有可能,配置文件用YAML编写。

1.2. Helm3 架构

image

helm(kubeconfig)---> KubernetesKind
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2021-12-10 09:03:31

results matching ""

    No results matching ""