描述 Kyma 与 Kubernetes 的关系

学习目标

  • 简要描述开源项目 Kyma 及其模块

  • 比较项目 Kyma 与 SAP BTP, Kyma runtime

  • 说明 Kyma 如何扩展 Kubernetes

什么是 Kyma?

项目 Kyma 始于 2017 年,目前仍在积极开发中。它托管在 GitHub 上,并采用 Apache 2.0 许可证。SAP 是主要贡献者。

Kyma 将 Kubernetes 的强大能力与一流的工具和开源项目相结合。这些功能由称为 Kyma 模块的构建块提供。您可以在一组模块中选择要添加到集群的模块。通过选择适合您需求的模块,您可以创建自定义设置,从而开发、运行和运维安全且可扩缩的云原生应用程序。

Kyma 的一个重要方面是它基于 Kubernetes Operator 模式。当您添加 Kyma 模块时,其 API 会作为 CustomResourceDefinitions(CRD)注册到 Kubernetes 中。CRD 是自定义资源(CR)的基础,您可以创建 CR 来定义和管理自己的自定义对象。这使您可以使用 kubectl 等原生 Kubernetes 工具来管理 Kyma 资源。此外,每个 Kyma 模块都包含一个 operator,它根据模块 CR 中提供的信息来处理模块的管理和协调。

注意

您可以按照 kyma-project 各模块仓库中的说明,在任何 Kubernetes 集群中安装开源 Kyma 模块。不过,Kyma 也作为托管服务在 SAP Business Technology Platform(SAP BTP)上提供。该托管服务称为 SAP BTP, Kyma runtime。有关详细信息,请参见 Kyma 环境

查看 Kyma 模块概览:

事实上,Kyma 还附带自己的命令行界面(CLI),称为 Kyma CLI。不过,本学习之旅中不使用 Kyma CLI。

包含 SAP BTP Operator、API Gateway、Istio、Serverless、Keda、Application Connector、Telemetry、Eventing 和 NATS 等 Kyma 组件的 Kubernetes 集群。已连接到 kubectl 和 Kyma Dashboard。

Kyma 提供的附加功能

让我们详细了解一下可以添加到 Kyma runtime 实例的模块:

Istio

Istio 模块

负责安装

Istio

  • 一个服务网格,它提供统一的方式来管理、连接和保护微服务。服务网格是微服务之间可以相互通信的网络。它还负责微服务(例如您的 Pod 或 Function)之间通信的安全性。它还可以提供流量管理、熔断和负载均衡等附加功能。Kyma 使用开源 Istio 服务网格。它还附带开箱即用的指标,可用于收集有关您的服务的各种信息。

API Gateway

API Gateway 模块

为来自 Kubernetes 集群的所有外部通信提供单一入口点。它还负责通信的安全性。

SAP BTP Operator

SAP BTP Operator 模块

允许您将 SAP BTP 服务连接到 Kubernetes 集群,并使用 Kubernetes 原生工具管理它们。

Application Connector

Application Connector 模块

简化并保护外部解决方案与 Kyma 之间的连接。无论您想集成本地系统还是云系统,集成过程都不会改变,这使您可以避免任何配置或网络相关的问题。该模块存储和处理外部 API 的元数据,提供监控和跟踪功能,并为 Eventing 流提供证书处理。

Cloud Manager

Cloud Manager 模块

模块管理对云提供商所选资源和产品的访问。将 Cloud Manager 添加到 Kyma 集群后,该模块会安全地引入所提供的资源。Cloud Manager 与部署 Kyma 集群的云提供商严格绑定。它提供网络文件系统(NFS)服务器、虚拟私有云(VPC)对等连接或 Redis 等功能。

Keda

Keda 模块

使您能够轻松安装和管理

Kubernetes-based Event Driven Autoscaler (KEDA)

在您的 Kubernetes 集群上。KEDA 是一个自动扩缩器,允许您根据所选的触发条件轻松扩缩 Kubernetes 工作负载。借助 KEDA,您可以访问多种扩缩器,帮助您高效管理部署。

Eventing

Eventing 模块

使用户能够专注于其业务工作流,并通过事件触发这些工作流,从而简化事件的发布和订阅过程。借助 Eventing,用户可以在 Kyma 中实现异步流,而无需实现或集成任何额外的后端或协议。

NATS

NATS 模块

管理以下组件的部署:

NATS JetStream

,这是一个分布式持久化系统,可增强 NATS 服务的功能和质量。该模块通过观察 NATS 集群的状态并执行协调,确保其处于期望状态。Kyma Eventing 可以利用 NATS 作为后端来处理事件并将其传递给订阅者。

Serverless

Serverless 模块

提供了一组工具来开发、运行和扩缩无服务器 Function。无服务器(Serverless)或无服务器计算并不意味着完全没有服务器。相反,它将服务器从开发人员那里抽象出来。开发人员可以专注于代码和业务逻辑。

Telemetry

作为面向服务的架构的一个关键方面,您可能希望通过收集和分析指标、日志和跟踪来监控系统的行为。这些数据用于识别和诊断系统中的问题。

Telemetry 模块

提供了一组工具来收集、丰富和分析此类数据。这些工具基于以下开源项目:

OpenTelemetry

Fluent Bit

比较开源 Kyma 与 SAP BTP, Kyma Runtime

项目“Kyma”是 SAP BTP, Kyma runtime 的基础,而后者是 SAP Business Technology Platform(BTP)的一部分。您无需在自己的 Kubernetes 集群上设置开源 Kyma 模块,而是可以使用 SAP BTP 提供的托管版本。开源项目为您提供了更大的灵活性,可以以更少的限制自定义 Kyma runtime,但这也意味着您需要完全负责集群的安装和管理。借助 SAP BTP, Kyma runtime,您无需担心安装和维护,因此可以完全专注于开发和运行应用程序。除此之外,您还可以获得托管 Kubernetes 和托管 Kyma 环境的服务级别协议(SLA)以及集中托管的 Kyma dashboard。

摘要

在完成这个简短的入门课程后,您可以简要描述项目“Kyma”及其提供的模块。您还可以比较开源项目与托管服务 SAP BTP, Kyma runtime。

延伸阅读

开源项目“Kyma”

SAP BTP, Kyma Runtime