• 地址:广州市天河区华南植物园-龙洞慧创百思G220
  • 免费热线 : 020-87581205
  • 电子邮箱 : sw@51mimu.com

利用 Helm 简化应用部署_应用管理_Kubernetes集群用户指南_容器服务Kubernetes版-阿里云

 知识中心     |      2020-05-13 12:18:25

利用 Helm 简化应用部署

更新时间:2020-03-20 14:11:30

编辑 我的收藏

新浪微博 微信 钉钉

本页目录

本文档介绍 Helm 的基本概念和使用方式,演示在阿里云的 Kubernetes 集群上利用 Helm 来部署示例应用 WordPress 和 Spark。

前提条件

  • 通过 Helm 部署应用之前,利用阿里云容器服务来创建 Kubernetes 集群。参见创建Kubernetes集群

    在 Kubernetes 集群创建的同时,Tiller 将会被自动部署到集群之中,并且在所有的 master 节点上自动安装 Helm CLI 以及配置指向阿里云的 Chart 存储库。

  • 查看您集群中 Kubernetes 的版本。

    仅支持 Kubernetes 版本 1.8.4 及以上的集群。对于 1.8.1 版本的集群,您可以在集群列表中进行集群升级操作。

背景信息

在 Kubernetes 中,应用管理是需求最多、挑战最大的领域。Helm 项目提供了一个统一软件打包方式,支持版本控制,简化 Kubernetes 应用分发与部署中的复杂性。阿里云容器服务在应用目录管理功能中集成了 Helm 工具,并进行了功能扩展,支持官方 Repository,让您快速部署应用。您可以通过命令行或容器服务控制台界面两种方式进行部署。

本文档介绍 Helm 的基本概念和使用方式,演示在阿里云的 Kubernetes 集群上利用 Helm 来部署示例应用 WordPress 和 Spark。

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 的索引文件和压缩包。

通过控制台界面部署应用

  1. 登录容器服务管理控制台
  2. 在 Kubernetes 菜单下,单击左侧导航栏中的市场 > 应用目录,进入应用目录列表页面。
  3. 选择一个 chart(本示例选择 WordPress),单击该 chart,进入 chart 详情页面。

    chart详情

  4. 在页面右侧,填写部署的基本信息。

    • 集群:应用要部署到的集群。
    • 命名空间:选择命名空间。默认为 default。
    • 发布名称:填写应用发布的名称。
    部署基本信息

  5. 单击参数,对配置进行修改。

    本示例中使用云盘的动态数据卷绑定一个PVC,参见云盘存储卷使用说明

    说明 您需要预先创建一个云盘存储卷(PV),并且存储卷的容量不能小于PVC定义的数值。

    修改参数配置

  6. 配置完成后,单击创建,部署成功后,默认进入该应用的发布页面。

    创建应用

  7. 单击左侧导航栏中的路由与负载均衡 > 服务,选择所需的集群和命名空间,找到对应的服务,您可获取 http/https 外部端点的地址。

    服务

  8. 单击上面的访问地址,进入 WordPress 博客发布页面。

通过命令行部署应用

通过命令行部署应用时,您可以 SSH 登录 Kubernetes 集群的 master 节点 (Helm CLI 已自动安装并已配置Repository)进行操作,参见SSH 访问 Kubernetes 集群。您也可以在本地安装配置 kubectl 和 Helm CLI。

本示例以在本地安装配置 kubectl 和 Helm CLI 并部署 WordPress 和 Spark 应用为例进行说明。

  1. 安装配置 kubectl 和 Helm CLI。
    1. 在本地计算机上安装和配置 kubectl。

      参见通过kubectl连接Kubernetes集群

      若要查看 Kubernetes 目标集群的信息,键入命令 kubectl cluster-info

    2. 在本地计算机上安装 Helm。

      安装方法,参见 Install Helm

  2. 部署 WordPress。

    下面我们将利用 Helm,来部署一个 WordPress 博客网站。

    1. 输入以下命令。

      helm install --name wordpress-test stable/wordpress

      说明 阿里云 Kubernetes 服务提供块存储(云盘)的动态存储卷支持,您需要预先创建一个云盘存储卷。

      得到以下的结果。

      NAME:   wordpress-test
      LAST DEPLOYED: Mon Nov  20 19:01:55 2017
      NAMESPACE: default
      STATUS: DEPLOYED
      ...

    2. 利用如下命令查看 WordPress 的 release 和 service。

      helm list
      kubectl get svc

    3. 利用以下命令查看 WordPress 相关的 Pod,并等待其状态变为 Running。

      kubectl get pod

    4. 利用以下命令获得 WordPress 的访问地址。

      echo http://$(kubectl get svc wordpress-test-wordpress -o jsonpath='{.status.loadBalancer.ingress[0].ip}')

      通过上面的 URL,可以在浏览器上看到熟悉的 WordPress 站点。

      也可以根据 Charts 的说明,利用如下命令获得 WordPress 站点的管理员用户和密码。

      echo Username: user
      echo Password: $(kubectl get secret --namespace default wordpress-test-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)

    5. 如需彻底删除 WordPress 应用,可输入如下命令。

      helm delete --purge wordpress-test

使用第三方的 Chart 存储库

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

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

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

参考信息

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

上一篇:通过命令管理应用

下一篇:使用应用触发器重新部署应用

相关文档

相关产品

  • 容器服务Kubernetes版

    容器服务Kubernetes版(Container Service for Kubernetes)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。

  • 容器服务(已停止服务)

    容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大地简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造 Docker 云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

  • 容器镜像服务

    容器镜像服务(Container Registry)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。容器镜像服务简化了Registry的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用Docker的一体化体验。

以上内容是否对您有帮助?

在文档使用中是否遇到以下问题

  • 内容错误

  • 更新不及时

  • 链接错误

  • 缺少代码/图片示例

  • 太简单/步骤待完善

  • 其他

  • 内容错误

  • 更新不及时

  • 链接错误

  • 缺少代码/图片示例

  • 太简单/步骤待完善

  • 其他

更多建议

匿名提交

感谢您的打分,是否有意见建议想告诉我们?

感谢您的反馈,反馈我们已经收到

文档反馈


COPYRIGHT © 2018-2019,WWW.51MIMU.COM,ALL RIGHTS RESERVED版权所有 © 广州米姆信息科技有限公司(阿里云、腾讯云代理商) 粤ICP备18145377号

sitemap feed