第 1 章 服务绑定
本章提供有关添加到版本 2.7.5 的 Red Hat build of Quarkus 的服务绑定和工作负载投射信息,并在版本 2.13 中 处于技术预览状态。
通常,OpenShift 应用程序和服务(也称为可部署工作负载)需要连接到其他服务来检索其他信息,如服务 URL 或凭证。
Service Binding Operator 管理获取此信息所需的通信。然后,这个 Operator 会决定以下内容:
- 服务消费者如何绑定到这样的服务
-
应用程序和服务绑定的工具,如
quarkus-kubernetes-service-binding扩展
Quarkus 支持 Kubernetes 的 Service Binding 规格 将服务绑定到应用程序。
具体来说,Quarkus 实施规范的 Workload Projection 部分,允许应用程序绑定到数据库或代理等服务,而无需用户配置。
要为可用扩展启用服务绑定,请将 quarkus-kubernetes-service-binding 扩展添加到应用程序依赖项中。
您可以对服务绑定和工作负载投射使用以下扩展:
1.1. 工作负载投射 复制链接链接已复制到粘贴板!
工作负载投射是从 Kubernetes 集群获取服务配置的过程。此配置采用遵循某些约定的目录结构的形式,并作为挂载的卷附加到应用程序或服务。kubernetes-service-binding 扩展使用此目录结构来创建配置源,允许您配置其他模块,如数据库或消息代理。
您可以在应用程序开发期间使用工作负载投射将其应用程序连接到开发数据库或其他本地运行的服务,而无需更改实际的应用程序代码或配置。
有关在测试资源中包含目录结构并传递给集成测试的工作负载投射示例,请参阅 Kubernetes Service Binding datasource GitHub 仓库。
-
k8s-sb目录是服务绑定的根目录。在本例中,只有一个名为fruit-db的数据库被绑定。此绑定数据库具有类型文件,它表示postgresql作为数据库类型,而 目录中的其他文件则提供必要的信息来建立连接。 -
在 Quarkus 项目从 OpenShift Container Platform 设定的
SERVICE_BINDING_ROOT环境变量中获取信息后,您可以找到文件系统中存在的生成的配置文件,并使用它们将 config-file 值映射到某些扩展的属性。