美文网首页
Helm kickoff

Helm kickoff

作者: jaymz明 | 来源:发表于2019-06-06 16:16 被阅读0次

    Helm 是什么?应用场景是什么?

    Helm 是 Kubernetes 生态系统中的一个软件包管理工具,主要用来管理Charts,类似于CentOS中的YUM。下图是一个是简单的用k8s搭建的三层应用。

    从上图可以看到,在进行 Kubernetes 软件部署时,我们面临下述几个问题:

    1. 如何管理、编辑和更新这些这些分散的 Kubernetes 应用配置文件。
    2. 如何把一套相关的配置文件作为一个应用进行管理。
    3. 如何分发和重用 Kubernetes 的应用配置。

    Helm工作原理

    Helm(客户端)、Tiller(服务器)、Repository(Chart 软件仓库)、Chart(软件包)之间的关系。Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。

    image.png

    如何应用helm

    个人感觉应用的场景在于dev和ops之间,在cloud native圈中也是需要的。容器化和容器编排,我们编写了大量的deployment、service等yaml文件,定义了许许多多的依赖关系,那么如何有效地管理这些依赖/定义,就像我们的jar包,别人download下来,就可以直接扔到jvm使用。那么对于使用者来说,学习成本降低,对code的要求能力也相应的减少。

    设想以下场景:

    1. application依赖的中间件比较多,tomcat、db server、rabbitmq等。由于我们已经将相应的服务层容器化,那么在集群里,针对应用需要的服务,可以按需enable对应的server。\

       helm install local/mychart --name testhelm --set="tomcat.enabled=true,rabbitmq.enabled=true" 
      
    2. 服务启动之间有强依赖关系,比如我的backend service必须要在mysql启动后才能run起来,不然会报错。那么我们这种关系可以定义在helm中的requirements.yaml中。当然个人感觉可以针对不同的服务用helm编不同的chart,也可以在一个chart中定义好他们之间的关系(类似于docker-compose那种)。

    3. DevOps,开发和ops都可以应用同样的chart,按需起对应的各种服务,更加灵活。chart还支持upgrade,rollback。

    4. 替换vagrant,不依赖vritualbox。

    怎样编写helm template

    可以参考以下这个链接:编写helm template

    相关文章

      网友评论

          本文标题:Helm kickoff

          本文链接:https://www.haomeiwen.com/subject/vyfuxctx.html