描述 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。

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。