0%

Helm-简化应用部署

参考链接

https://help.aliyun.com/document_detail/86511.html

在 Kubernetes 中,应用管理是需求最多、挑战最大的领域。Helm 项目提供了一个统一软件打包方式,支持版本控制,可以大大简化 Kubernetes 应用分发与部署中的复杂性。

阿里云容器服务在应用目录管理功能中集成了 Helm 工具,并进行了功能扩展,支持官方 Repository,让您快速部署应用。您可以通过命令行或容器服务控制台界面两种方式进行部署。

Helm 基本概念

Helm 是由 Deis 发起的一个开源工具,有助于简化部署和管理 Kubernetes 应用。

Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为 Kubernetes 构建的应用,它包含几个基本概念

  • Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula、APT 的 dpkg 或者 Yum 的 rpm 文件。
  • Release:在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。例如一个 MySQL Chart,如果想在服务器上运行两个数据库,就可以把这个 Chart 安装两次。每次安装都会生成自己的 Release,会有自己的 Release 名称。
  • Repository:用于发布和存储 Chart 的存储库。

Helm 组件

Helm 采用客户端/服务器架构,由如下组件组成:

  • Helm CLI 是 Helm 客户端,可以在 Kubernetes 集群的 master 节点或者本地执行。
  • Tiller 是服务器端组件,在 Kubernetes 集群上运行,并管理 Kubernetes 应用程序的生命周期。
  • Repository 是 Chart 存储库,Helm 客户端通过 HTTP 协议来访问存储库中 Chart 的索引文件和压缩包。

安装配置 Helm CLI

  1. 安装和配置kubectl

  2. 安装heml

    https://github.com/helm/helm/releases

    安装方法,参见 Install Helm

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 1、获取安装包
    wget https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz

    # 2、解压
    tar zxf helm-v2.14.2-linux-amd64.tar.gz

    # 3、Find the helm binary in the unpacked directory, and move it to its desired destination
    mv linux-amd64/helm /usr/local/bin/helm

    # 4、验证
    helm help
  3. 配置 Helm 的 Repository。这里我们使用了阿里云容器服务提供的 Charts 存储库。

    1
    2
    3
    helm init --client-only --stable-repo-url https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/
    helm repo add incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
    helm repo update

Helm基础操作

  • 若要查看在集群上安装的 Charts 列表,请键入:

    1
    helm list

    或者缩写

    1
    helm ls
  • 若要查看存储库配置,请键入:

    1
    helm repo list
  • 若要查看或搜索存储库中的 Helm charts,请键入以下任一命令:

    1
    2
    3
    helm search 
    helm search 存储库名称 #如 stable 或 incubator
    helm search chart名称 #如 wordpress 或 spark
  • 若要更新 charts 列表以获取最新版本,请键入:

    1
    helm repo update
  • 删除应用

    1
    helm delete --purge "myspark"

    有关 Helm 使用的详细信息,请参阅 Helm项目

使用第三方的 Chart 存储库

您除了可以使用预置的阿里云的 Chart 存储库,也可以使用第三方的 Chart 存储库(前提是网络是可达的)。使用如下命令格式添加第三方 Chart 存储库。

1
2
helm repo add 存储库名 存储库URL
helm repo update

关于 Helm 相关命令的说明,您可以参阅 Helm 文档

参考信息

Helm 催生了社区的发展壮大,越来越多的软件提供商,如 Bitnami 等公司,开始提供高质量的 Charts。您可以在 https://kubeapps.com/ 中寻找和发现已有的 Charts。