使用 Helm 打包和部署你的应用
学习目标
使用 Helm 打包和部署你的应用
使用场景
你已经使用不同的清单,手动地将应用及其所有相应的 Kubernetes 对象部署到了 Kubernetes 集群。现在,你希望使用 Helm 打包你的 Deployment 清单并将其部署到集群。
任务流
在本练习中,你将为一个 Deployment 创建、定制并部署一个 Helm chart。
前提条件
在开始之前,请确保满足以下前提条件:
你已在 SAP BTP 子账户中创建了 SAP BTP, Kyma runtime 实例。请参阅 在 SAP BTP 上使用 Kyma 部署 Kubernetes 集群 。
你已配置 kubectl 以便与你的 SAP BTP, Kyma runtime 实例交互,并且你可以访问 Kyma 仪表板。请参阅 为 Kyma 设置和配置 Kubectl 和 使用 Kyma 仪表板访问你的 Kyma Runtime 实例 。
你已在本地机器上安装 Helm CLI。请参阅 安装 Helm
安装好 Helm CLI 后,你就可以使用 helm create 命令。该命令会创建一些示例文件供你入门。不过,本练习展示如何从零开始手动创建 Helm chart。
任务 1:为 Deployment 创建、定制并部署 Helm Chart
步骤
为你的 Helm chart 创建一个新目录。将其命名为
hello-kyma-chart并切换到该目录。创建一个名为
Chart.yaml的新文件,并指定有关 chart 的信息,例如名称、版本、描述等。将以下内容添加到该文件中:
apiVersion: v2
name: hello-kyma-chart
description: A Helm chart for the Hello Kyma example application
type: application
version: 0.1.0
创建一个名为
values.yaml的新文件,并指定默认配置值,例如 replicaCount 和 image.tag。将以下内容添加到该文件中:
replicaCount: 1
image:
tag: "1.0.0"
在
hello-kyma-chart目录中,创建一个名为templates的新目录并切换到该目录。 在该目录中,你可以添加 Helm chart 的所有模板。目前,我们只添加 Deployment 的模板。创建一个名为
deployment.yaml的新文件,指定 Kubernetes Deployment 的定义并使用你的配置值。将以下内容添加到该文件中:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Release.Name }}
spec:
containers:
- name: hello-kyma
image: ghcr.io/sap-samples/kyma-runtime-learning-journey/hello-kyma:{{ .Values.image.tag }}
ports:
- containerPort: 8080
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
提示
Deployment 清单包含
{{ .Release.Name }}和{{ .Values.replicaCount }}占位符,以使用你在values.yaml文件中指定的配置值。{{ Release.Name }}占位符会被替换为 Helm 发布的名称。{{ .Chart.AppVersion }}占位符会被替换为你在Chart.yaml文件中指定的应用版本。
要对你的 Helm chart 执行试运行(dry-run)以检查其是否有效,请在
hello-kyma-chart目录内运行以下命令:
helm template hello-kyma .
你现在应该会看到 Helm chart 渲染后的输出。 7. 在集群中安装 Helm chart。
在
hello-kyma-chart目录内运行以下命令:
helm install hello-kyma-helm .
你会得到类似以下示例的输出:
NAME: hello-kyma-helm
LAST DEPLOYED: Fri Sep 12 14:25:42 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
要查看集群中的 Deployment,请运行以下命令:
kubectl get deployments
你会得到如下响应输出:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-kyma-helm 1/1 1 1 2m
更新
values.yaml文件,将replicaCount改为2。更新集群中的 Helm chart。
在
hello-kyma-chart目录内运行以下命令:
helm upgrade hello-kyma-helm .
你现在应该会看到以下输出:
Release "hello-kyma-helm" has been upgraded. Happy Helming!
NAME: hello-kyma-helm
LAST DEPLOYED: Fri Sep 12 14:27:05 2025
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
使用 kubectl 列出 Deployment:
kubectl get deployments
如果成功,列表中会包含 hello-kyma-helm Deployment:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-kyma-helm 2/2 2 2 4m
在 Kyma 仪表板中查看 Helm 发布。
在浏览器中打开 Kyma 仪表板。
在 default 命名空间中,转到 Apps → Helm Releases 并选择
hello-kyma-helm发布。
将打开以下视图:

结果
你已经成功为你的 Deployment 创建了 Helm chart,并将其部署到集群。当你在本课程稍后了解其他 Kubernetes 对象后,你就可以例如用 Service、Ingress 等其他清单来扩展你的 helm chart。