美文网首页
kubernetes集群管理系列讲座(十三)Helm简介

kubernetes集群管理系列讲座(十三)Helm简介

作者: 炼狱腾蛇Eric | 来源:发表于2020-08-08 16:35 被阅读0次

    课程目标

    • 了解helm概念
    • 了解helm v2与helm v3的区别
    • 安装和使用helm v3

    1. helm概念

    我们在kubernetes集群中创建应用的时候,一般会使用清单文件manifest来规范我们的应用。典型的容器化应用程序会包含很多清单。Deployment、Service和ConfigMap的清单。我们可能还会创建一些Secret、Ingress和其他对象。每一个都需要一份清单。

    从1.4版本开始,为了让软件的部署更加的规范化,Helm项目应运而生。Helm类似于yum或者apt这样的包管理器,而Chart类似于包。有了Helm,我们就可以打包所有这些清单文件,并使它们作为一个单独的tar包使用。我们可以将tar包放在一个存储库中,搜索该存储库,发现一个应用程序,然后使用一个命令部署并启动整个应用程序。

    服务器运行在Kubernetes集群中,而客户端是本地的,也可以使本地笔记本电脑。我们可以使用客户端来连接到多个应用程序存储库。

    2. helm v2与helm v3

    2.1. Helm v2和Tiller

    helm工具使用一系列YAML文件将Kubernetes应用程序打包成一个chart或包。这种方式允许用户之间简单的共享,使用模板方案进行优化,以及来源跟踪等。

    zgxbwiuexxtg-BasicFlow-HelmandTiller.png file

    2.2. 基础的Helm和Tiller的流程

    Helm的v2版本是由两个组件构成的

    • 服务器端叫Tiller,运行在kubernetes集群之中
    • 客户端叫Helm,在我们本地的机器上运行

    Helm v2会在集群中部署一个Tiller的pod,但是这样会引发很多安全和集群权限的问题。而Helm v3就不用部署这个pod了。

    使用Helm客户端,我们就可以浏览包存储库(包含已发布的Chart),并在Kubernetes集群上部署这些Chart。kubernetes将下载Chart并将请求传递给Tiller来创建应用。这个应用是由运行在Kubernetes集群中的各种资源组成。

    2.3. Helm v3

    最近Helm彻底的翻修了一遍,流程和命令都有很大的改变。如果我们正在使用Helm的v2版本,那么可能需要花些时间去升级和集成这些改变。

    最显著的变化之一就是Tiller的移除。这是一个一直存在的安全问题,因为pod需要提升权限才能部署Chart。在新版本中,这个功能被单独放在了命令行中,不再需要初始化才能使用。

    在v2中,对chart和deployment的更新需要使用双向策略合并来完成。这需要将先前的manifest和预期的menifest进行比较,而不是在helm命令之外进行编辑。目前的检查是使用另外的方法,检查目前对象的状态。

    还有其他的改变,比如软件安装不再自动生成名称。我们必须手动指定名称,要不就传递--generated name参数

    3. 部署helm v3

    由于helm的v2版本存在一些安全问题,所以全部转向v3是大势所趋,这里就不再说v2的内容了,我们直接部署v3。

    3.1. 安装helm

    我们这里以linux64版本举例,我们首先要保证kubectl命令能够正确连接到我们的kubernetes集群

    • 下载

      $ wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
      
    • 解压

      $ tar xf https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
      
    • 挪到环境变量所在的位置

      mv linux-amd64/helm /usr/local/bin/helm
      chmod +x /usr/local/bin/helm
      
    • 验证是否可用

      helm help
      The Kubernetes package manager
      
      Common actions for Helm:
      
      - helm search:    search for charts
      - helm pull:      download a chart to your local directory to view
      - helm install:   upload the chart to Kubernetes
      - helm list:      list releases of charts
      ...
      
    • 为helm添加一个仓库

      $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
      
    • 查看仓库里面的包

      helm search repo stable
      
      NAME                                    CHART VERSION   APP VERSION                     DESCRIPTION
      stable/acs-engine-autoscaler            2.2.2           2.1.1                           DEPRECATED Scales worker nodes within agent pools
      stable/aerospike                        0.2.8           v4.5.0.5                        A Helm chart for Aerospike in Kubernetes
      stable/airflow                          4.1.0           1.10.4                          Airflow is a platform to programmatically autho...
      stable/ambassador                       4.1.0           0.81.0                          A Helm chart for Datawire Ambassador
      # ... and many more
      

    3.2. 管理应用

    • 部署应用

      $ helm repo update              # Make sure we get the latest list of charts
      $ helm install stable/mysql --generate-name
      Released smiling-penguin
      
    • 列出应用

      $ helm ls
      NAME             VERSION   UPDATED                   STATUS    CHART
      smiling-penguin  1         Wed Sep 28 12:59:46 2016  DEPLOYED  mysql-0.1.0
      
    • 卸载应用

      $ helm uninstall smiling-penguin
      Removed smiling-penguin
      

    为了方便大家学习,请大家加我的微信,我会把大家加到微信群(微信群的二维码会经常变)和qq群821119334,问题答案云原生技术课堂,有问题可以一起讨论

    • 个人微信
      640.jpeg

    • 腾讯课堂
      640-20200506145837072.jpeg

    • 微信公众号
      640-20200506145842007.jpeg

    • 专题讲座

    2020 CKA考试视频 真题讲解 https://www.bilibili.com/video/BV167411K7hp

    2020 CKA考试指南 https://www.bilibili.com/video/BV1sa4y1479B/

    2020年 5月CKA考试真题 https://mp.weixin.qq.com/s/W9V4cpYeBhodol6AYtbxIA

    相关文章

      网友评论

          本文标题:kubernetes集群管理系列讲座(十三)Helm简介

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