创建和管理 Deployment
学习目标
创建和管理 Deployment
使用场景
您希望将开发完成的应用程序部署到 Kubernetes 集群。为此,请定义 Deployment 清单并将其应用到集群。
任务流程
在本练习中,您将执行以下任务:
使用 Kyma dashboard 创建 Deployment。
更新并应用 Deployment 清单。
扩缩 Deployment。
回滚 Deployment。
先决条件
开始之前,请确保满足以下先决条件:
您已在 SAP BTP 子账户中创建 SAP BTP, Kyma runtime 实例。请参见 在 SAP BTP 上使用 Kyma 部署 Kubernetes 集群 。
您已配置 kubectl 以与 SAP BTP, Kyma runtime 实例交互,并且您可以访问 Kyma dashboard。请参见 为 Kyma 设置和配置 Kubectl 和 使用 Kyma Dashboard 访问您的 Kyma Runtime 实例 。
任务 1:使用 Kyma Dashboard 创建 Deployment
步骤
在 Kyma dashboard 中,转到
default命名空间。在 Edit 区域中,如果在前面的练习中尚未启用,请启用 Isito sidecar 代理注入。
转到 Workloads → Deployments,然后选择 Create 按钮。

指定 Deployment 的名称和容器的镜像。使用以下数据: | 字段 | 值 | | --- | --- | | Name |
hello-kyma| | Docker image |ghcr.io/sap-samples/kyma-runtime-learning-journey/hello-kyma:1.0.0|
切换开关,为 Deployment 启用 Istio sidecar 代理注入。
要查看 Deployment 清单,请选择 YAML 标签页。

选择 Create 按钮。 您将自动重定向到 Deployment 详细信息视图。此视图包含有关所创建 Deployment 及关联 Pod 的详细信息。
查看所创建 Deployment 的详细信息。向下滚动到 Resource Graph 区域,观察所创建的 Deployment 以及受管的 ReplicaSet 和 Pod。

任务 2:使用 kubectl 更新并应用 Deployment 清单
步骤
要列出 default 命名空间中的所有 Deployment,请运行以下 kubectl 命令:
kubectl get deployments
输出中会显示您创建的 Deployment。
2. 要获取 YAML 格式的 Deployment 清单,请运行以下命令:
kubectl get deployment hello-kyma -o yaml >> hello-kyma-deployment.yaml
注意
在本任务中,您使用 kubectl 下载 Deployment 清单并在本地编辑它。虽然您可以使用 Kyma dashboard 编辑 Deployment 清单,但强烈建议从持久化文件应用更改,并将所有清单纳入版本控制。Kyma dashboard 无法做到这一点。
转到您的工作目录,打开
*hello-kyma-deployoment.yaml*文件。
要更新 Deployment 以使用新版本的应用程序,请将当前容器镜像更改为新版本,并设置
change-cause以记录该更改。在 template.spec.containers.image 字段中添加以下镜像:
ghcr.io/sap-samples/kyma-runtime-learning-journey/hello-kyma:1.1.0在 spec.template.metadata 区域中添加以下注解:
annotations:
kubernetes.io/change-cause: Upgrade to new release v1.1.0
5. 保存文件。
6. 应用更新后的 Deployment 清单。
kubectl apply -f hello-kyma-deployment.yaml
要在 rollout history 中验证更新,请运行以下命令:
kubectl rollout history deployment hello-kyma
您还可以在 Kyma dashboard 的 Workloads → Deployments 区域中验证该 Deployment 已更新。
任务 3:扩缩 Deployment
步骤
要将 Deployment 扩缩到三个副本,请运行:
kubectl scale deployment hello-kyma --replicas=3
Kubernetes 会额外创建两个 Pod,因此现在有三个 Pod 正在运行。 2. 要验证 Deployment 已成功扩缩,请运行:
kubectl get deployment hello-kyma
如果成功,您将在响应中得到以下输出:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-kyma 3/3 3 3 6m10s
要在 Kyma dashboard 中验证,请转到 Workloads → Deployments 并选择
hello-kymaDeployment。向下滚动到 Pod 列表。该列表包含三个 Pod。
任务 4:执行 Deployment 回滚
假设您部署了新的应用程序版本,但它未按预期工作。现在您可以将 Deployment 回滚到上一个版本。
步骤
要列出 rollout history,请运行:
kubectl rollout history deployment hello-kyma
您将得到 Deployment 的两个版本。
2. 通过指定修订版本号来回滚 Deployment。
kubectl rollout undo deployment hello-kyma --to-revision=1
如果成功,您将看到以下输出:**deployment.apps/hello-kyma rolled back**
3. 再次列出 rollout history 以验证回滚。
kubectl rollout history deployment hello-kyma
您可以查看回滚是否成功。此外,修订版本的顺序已发生变化,并递增了 1。

结果
恭喜!您已完成本练习。现在,您可以创建、更新、扩缩和回滚 Deployment。