管理 Kyma 运行时

学习目标

  • 使用 Kyma Dashboard

  • 管理 Kyma 运行时

  • 管理 Kyma 中的服务实例

Kyma Dashboard

3.3.1_Run_KymaDashboard_001 3.3.1_Run_KymaDashboard_002 3.3.1_Run_KymaDashboard_003

SAP BTP, Kyma runtime 通过 Kyma dashboard 进行管理,这是一个基于 Web 的 UI,用于管理 Kyma 或任意 Kubernetes 集群中的资源。它使用 Busola(https://github.com/kyma-project/busola)作为中央管理仪表盘,提供集群和部署的图形化概览。

Kyma dashboard 中显示的最高层级是集群。在这里您可以管理命名空间、为角色和资源创建配置,或访问 Kyma 附加组件。

Kyma dashboard 可以独立使用,也可以由 SAP 预配。SAP 在 https://dashboard.kyma.cloud.sap 下为所有客户集中托管它。该仪表盘在首次启动时是空的,并希望连接到 Kubernetes 集群。这可以通过一个 *kubeconfig.yaml* 文件来提供,其中包含集群位置、集群名称、身份验证详细信息等内容。可以在一个仪表盘中管理多个集群。

Kyma dashboard 采用模块化方法来定义仪表盘中可供您的用户使用的特性和功能。您可以随时添加和配置模块。如果您认为其中某些模块对您的用例并不需要,可以禁用它们并释放资源。

Kyma 模块通过两个发布渠道部署:

  • 常规渠道(regular)是默认发布渠道。

  • 快速渠道(fast)提供更频繁的发布,在新功能被提升到常规渠道之前提供其早期预览。

您可以在 Kyma 集群中使用一个或两个发布渠道,但每个模块只能定义一个发布渠道。

默认情况下,以下模块处于激活状态:

API Gateway

允许您公开和保护 API。

SAP BTP Operator

允许您在 Kyma 中创建和管理 SAP BTP 服务。

Istio

允许您在复杂部署中监控流量、遥测和安全。

Note

Application Connector 允许您与外部解决方案连接。

Kyma 运行时

SAP BTP 支持 Kyma 环境和 Kubernetes 运行时:

视频:本节含 SAP 官方视频(视频 ID 1_tnpk6dsc),需在 learning.sap.com 在线观看。

Kyma

SAP BTP, Kyma runtime 是一项管理一个或多个命名空间的服务。

Namespace

命名空间为应用和服务实例提供资源和设置。

Service Instance

服务实例与应用程序及其他服务实例一起在命名空间中运行。

Resource Quota

SAP BTP, Kyma runtime 可以基于其权利配额为命名空间定义资源配额。

命名空间是 Kyma 环境的运行时。Kyma 环境管理这些命名空间并定义资源配额来确定其规模。服务实例在命名空间中运行。Kyma 环境包含所谓的集群。

Note

Kyma environment 也被称为 Kubernetes 或 K8s。

作为 SAP BTP 管理员指南的一部分,SAP 提供了关于构建和命名 Kyma 集群及命名空间的建议。与所有建议一样,这取决于您公司的需求。

Kyma 结构建议

SAP 建议为分阶段开发流程至少使用两个独立的子账户:一个用于开发和测试,一个用于生产。理想情况下,还应该有第三个集群专门用于测试。不过,出于成本效率考虑,它可以与开发合并。

如果 Cloud Foundry 组织和 Kyma 集群使用相同的资源(如服务),它们应在同一子账户中运行。但对于更复杂的场景,SAP 建议在共享子账户中提供 Kyma 集群。在每个集群内,应为每个解决方案、团队或项目创建专用命名空间。这之所以可行,是因为 Kubernetes 的控制平面和数据平面隔离特性。因此,隔离使用的是命名空间而不是子账户。

有关在 Kyma 中共享集群的更多信息,请阅读文档:

https://help.sap.com/docs/btp/btp-admin-guide/sharing-clusters-in-kyma

命名约定

由于每个 Kyma 集群恰好属于一个子账户,SAP 建议从子账户的子域派生集群名称。子域中的公司名称应省略:

模板:

(---...)-

示例:

AM Partner Prod

am-pa-prod

命名空间始终通过其集群访问。无需在命名空间名称中重复任何账户结构信息。但命名空间经常在子账户之间共享。因此,名称应以共享的方式描述在命名空间中运行的应用和服务的用途,例如针对某个解决方案。此外,命名空间在分阶段开发环境中应具有相似的名称。

Note

对于生产命名空间,名称中省略 "Prod"。

从子账户的 Overview 中,可以通过选择 Enable Kyma 轻松启用 Kyma 环境。每个子账户只能有一个环境,但该环境可以有许多命名空间。

Note

启用 Kyma 环境可能需要 30 分钟到 1 小时。在此期间您可以继续在 cockpit 中工作。

启用 Kyma 环境后,子账户概览会提供 Console URL(指向 Kyma dashboard 的直接链接)、APIServerURLKubeconfigURL

SAP BTP, Kyma runtime 的 *kubeconfig.yaml* 可以通过 SAP BTP cockpit 子账户概览中的 KubeconfigURL 下载。下载后,只需将该文件拖放到 Kyma dashboard 中即可。您可以决定该数据应当:

  • 持久保存在浏览器本地

  • 存储在浏览器会话中

  • 保存在内存中,直到下次刷新页面

Caution

*kubeconfig.yaml* 文件是您访问集群所需的全部内容。因此,该信息高度敏感,应谨慎处理。

SAP BTP cockpit 中,也可以直接为所选的 SAP BTP, Kyma runtime 启动该仪表盘:

  • 在 Overview 部分中

  • 在 Instances and Subscriptions 部分中

登录信息保存在浏览器会话中。

只需为其指定一个名称即可创建命名空间。可以应用资源配额来限制命名空间中的总内存消耗,并可以定义限制范围(limit range)作为命名空间中单个容器的内存约束。两者相互独立工作,都可以在创建期间设置,并在命名空间的 Overview 中进行管理。

启用 Kyma 运行时

业务示例

您希望在某个子账户中启用 Kyma 运行时。此外,您还希望在 Kyma 运行时中创建一个命名空间。

任务 1:为 Kyma 环境添加服务计划

Exercise开始练习(SAP 官方交互式练习)

任务 2:启用 Kyma 运行时

Exercise开始练习(SAP 官方交互式练习)

任务 3:在 Kyma 运行时中创建命名空间

Exercise开始练习(SAP 官方交互式练习)

Kyma 中的服务实例

服务实例的一个示例是 HTML5 Application Repository Serviceapp-host 服务计划。它使用数值配额,因此只要配额允许,就可以在尽可能多的子账户中并行使用。

Kyma dashboard 中,可以通过在集群的 Namespaces 表中选择相应行来打开命名空间。您可以通过在菜单顶部的命名空间下拉列表中选择来从一个命名空间跳转到另一个命名空间。两者都会显示详细信息,例如已部署的应用程序或在命名空间中运行的服务实例。

Kyma dashboard 中,可以从某个命名空间的 Service ManagementService Instances 创建服务。所有服务(如 HTML5 Application Repository Service)都需要 Offering NamePlan Name。两者都可以在在线文档或 SAP BTP cockpitService Marketplace 中找到。技术(产品)名称位于标题下方,服务计划显示在描述下方的表格中。

创建后,新服务会出现在 Kyma dashboardService ManagementService Instances 下,以及 SAP BTP cockpitServicesInstances and Subscriptions 下。

由 Kyma 托管的服务在 SAP BTP cockpit 中不可见。在子账户的 Instances and Subscriptions 中,除了 Kyma environment 之外,还可以找到 SAP Service Manager。它是 SAP BTP 中服务代理和平台的中央注册表。

该服务实例允许您在任何已连接的运行时环境中使用平台能力,跟踪服务实例的创建和管理,并在不同环境之间共享服务和服务实例。在 SAP BTP 中创建或删除 Kyma 运行时时,它会自动创建和删除。

在 Kyma 中创建服务实例

业务示例

您希望为 Kyma 启用 HTLM5 Application Repository Service 的服务实例。

任务 1:在 Kyma 运行时中添加服务实例

Exercise开始练习(SAP 官方交互式练习)

本课其余配图

3.3.2_Run_Kyma_001

3.3.2_Run_Kyma_002

3.3.2_Run_Kyma_003

3.3.2_Run_Kyma_004

3.3.2_Run_Kyma_005

3.3.3_Run_ServInstKyma_001

3.3.3_Run_ServInstKyma_002

3.3.3_Run_ServInstKyma_003

3.3.3_Run_ServInstKyma_004