使用Helm简化应用部署

更新时间:2025-02-26 07:25

在ACK中部署一个应用时,通常需要配置包括工作负载、Service、Ingress、ConfigMap在内的多种资源,过程较为繁琐。通过使用Helm,您可对这些资源以应用为单位进行部署与升级,实现更高效的应用管理。ACK在控制台上集成了Helm,提供了WordPress、Dify、ComfyUI等常见的第三方应用。本文介绍在ACK集群中使用Helm部署应用的方法。

Helm介绍

Helm是一个用于在Kubernetes集群中进行应用管理的开源工具,它提供了统一的应用打包方式,同时支持版本控制,降低了应用分发和部署的复杂性。您可参照下方的表格,了解Helm的基本概念,更多信息请参见官方文档

Helm概念

说明

Helm概念

说明

Chart

一个Helm包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含Kubernetes集群中的服务定义,类似Homebrew中的formula、APT的dpkg或者Yum的rpm文件。

Release

在Kubernetes集群上运行的Chart的一个实例。在同一个集群上,一个Chart可以安装多次。每次安装都会创建一个新的Release。例如,如果一个MySQL Chart想在服务器上运行两个数据库,可以将此Chart安装两次,并在每次安装中生成自己的Release以及Release名称。

Helm CLI

Helm的客户端,在本地执行。可用于在ACK集群中部署第三方Chart。

Repository

Chart存储库,Helm CLI通过HTTP协议来访问存储库中Chart的索引文件和压缩包。

前提条件

通过控制台部署应用

ACK提供了一些常见应用的Chart,您可以在控制台使用这些Chart安装应用。下面的步骤展示了通过Helm安装WordPress的示例。

  1. 登录容器服务管理控制台,在左侧导航栏单击集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm

  3. Helm页面,单击创建。参考如下信息完成基础信息配置。

    参数

    说明

    示例值

    参数

    说明

    示例值

    应用名

    Release在集群内的名称。

    wordpress

    命名空间

    Release部署的命名空间。

    default

    来源

    Chart的来源:ACK应用市场或ACR企业版。

    应用市场

    Chart

    安装应用所使用的Chart。

    ack-wordpress-sample

  4. 单击面板左下方的下一步,然后选择最新的Chart 版本。确认Chart内容后,单击面板下方的确定

  5. 安装WordPress成功后,执行以下命令获取外部IP访问地址,即EXTERNAL-IP

    kubectl get svc --namespace default 

    预期输出如下,EXTERNAL-IP118.xx.xx.10

    NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE
    wordpressabc-ack-wordpress-sample   LoadBalancer   172.16.86.22    118.190.xx.xx   80:30837/TCP,443:32433/TCP   33m
    wordpressabc-mariadb                ClusterIP      172.16.70.108   <none>           3306/TCP                     33m
  6. 使用kubectl get pod命令找到WordPress Pod的名称,然后执行以下命令获取访问用户。

    kubectl get pod <wordpress-ack-wordpress-sample-name> -o=jsonpath='{.spec.containers[*].env[?(@.name=="WORDPRESS_USERNAME")].value}'

    预期输出:

    user
  7. 执行以下命令获取访问密码。

    kubectl get secret --namespace default wordpress-ack-wordpress-sample -o jsonpath="{.data.wordpress-password}" | base64 --decode

    预期输出:

    ps**jRx**V
  8. 在浏览器中,输入之前获取的EXTERNAL-IP,在IP后方添加/login访问WordPress应用,然后输入访问用户和密码登录界面。

    image

通过控制台管理已安装的应用

您可以在Helm页面对已安装的Release进行操作:

  • 单击Release的发布名称详情,可查看该Release的信息,例如资源、YAML文件、历史版本等信息。

  • 单击更新,在更新发布面板中修改相关参数,然后单击确定,可对该Release进行更新。

  • 单击删除,在删除应用对话框中,选中清除发布记录,然后单击确定,删除Release以及包含的Service、Deployment等资源。

    重要

    若不选中清除发布记录,此时该Release会保留在发布列表中,后续在部署应用时,可能会出现重名冲突,导致应用部署失败。

通过Helm CLI使用第三方库部署应用

如果ACK提供的Chart无法满足您的需求,您可参照以下示例,通过Helm CLI使用第三方库部署应用。

helm repo add <REPO_NAME> <REPO_URL> # 添加Chart存储库,REPO_NAME替换为Chart存储库的名称,REPO_URL替换为存储库的地址
helm repo update # 更新存储库信息
helm install <APP_NAME> <REPO_NAME>/<CHART_NAME> # 安装应用,APP_NAME替换为一个应用的名称,CHART_NAME替换为Chart的名称

Helm更多命令请参见Using Helm

相关文档

  • 为避免Helm V2 Tiller服务端的一些潜在安全问题,例如攻击者可以通过Tiller在集群内安装未经授权的应用,推荐您将Helm V2升级至Helm V3版本,并且可以使用更多的Helm特性。您可通过下列命令查看集群中的Helm版本。升级操作详情,请参见将Helm V2升级迁移至Helm V3

    helm version

    预期输出:

    version.BuildInfo{Version:"***", GitCommit:"***", GitTreeState:"***", GoVersion:"go***"}
  • 您可以通过容器镜像服务企业版的Helm Chart功能,拉取和推送Chart。具体操作,请参见推送和拉取Helm Chart

  • 本页导读 (1)
  • Helm介绍
  • 前提条件
  • 通过控制台部署应用
  • 通过控制台管理已安装的应用
  • 通过Helm CLI使用第三方库部署应用
  • 相关文档
文档反馈