6.9. 使用 Developer 视角将应用程序连接到服务
除了对一个应用程序中的多个组件进行分组外,还可以使用 Topology 视图来相互连接组件。您可以使用绑定连接器或视觉连接器来连接组件。
只有当目标节点是 Operator 支持的服务时,才可以在组件之间建立绑定连接。为了表示这种情况,当您将箭头拖到这样的目标节点上时,会出现 Create a binding connector 工具提示。当应用程序使用绑定连接器连接到服务时,会创建一个 ServiceBinding
资源。然后,Service Binding Operator 控制器会将必要的绑定数据项目到应用程序部署中。请求成功后,会重新部署应用程序以在连接的组件间建立交互。
视觉连接器只在组件之间建立视觉连接,描述连接意图。没有建立组件之间的交互。如果目标节点不是一个 Operator 支持的服务,当您将箭头拖到目标节点上时,将会显示 Create a visual connector 工具提示。
6.9.1. 在组件之间创建视觉连接
您可以使用可视连接器来描述连接应用程序组件的意图。
此流程介绍了在 PostgreSQL 数据库服务和 Spring PetClinic 示例应用程序之间创建可视连接的示例。
先决条件
- 您已使用 Developer 视角创建并部署了 Spring PetClinic 示例应用程序。
-
已使用 Developer 视角创建并部署了 Crunchy PostgreSQL 数据库实例。此实例包含以下四个组件:
hippo-backup
、hippo-instance
、hippo-repo-host
和hippo-pgbouncer
。
流程
将鼠标悬停在 Spring PetClinic 示例应用上,以查看节点上的悬挂箭头。
图 6.2. 视觉连接器
-
单击箭头并将它拖向
hippo-pgbouncer
部署,以将 Spring PetClinic 示例应用与其连接。 -
点
spring-petclinic
部署来查看 Overview 面板。在 Details 选项卡下,点 Annotations 部分中的编辑图标,查看 Key =app.openshift.io/connects-to
和 Value =[{"apiVersion":"apps/v1","kind":"Deployment","name":"hippo-pgbouncer"}]
注解添加到部署。
同样,您可以创建其他应用程序和组件,并在它们之间建立可视连接。
图 6.3. 连接多个应用程序
6.9.2. 在组件之间创建绑定连接
您可以与 Operator 支持的组件建立绑定连接。
此流程介绍了在 PostgreSQL 数据库服务和 Spring PetClinic 示例应用程序之间创建绑定连接的示例。要创建与 PostgreSQL Database Operator 支持的服务的绑定连接,您必须首先将红帽提供的 PostgreSQL Database Operator 添加到 OperatorHub,然后安装 Operator。然后,PostSQL Database Operator 会创建和管理 Database
资源,这会在 secret、配置映射、状态和 spec 属性中公开绑定信息。
先决条件
- 您已使用 Developer 视角创建并部署了 Spring PetClinic 示例应用程序。
- 您已从 OperatorHub 安装 Service Binding Operator。
-
您已使用
v5
Update 频道从 OperatorHub 安装了 Crunchy Postgres for Kubernetes Operator。 -
已使用 Developer 视角创建并部署了 Crunchy PostgreSQL 数据库实例。此实例包含以下四个组件:
hippo-backup
、hippo-instance
、hippo-repo-host
和hippo-pgbouncer
。
流程
-
切换到 Developer 视角,并确保您处于适当的项目中,例如
my-petclinic
。在 Topology 视图中,把鼠标移到 Spring PetClinic 示例应用程序上,以查看节点上的悬挂箭头。 单击箭头并将它拖向 hippo 数据库 Postgres Cluster,以与 Spring PetClinic 示例应用进行绑定连接。此时会出现 Create Service Binding 对话框。
输入名称并点 Create。
图 6.4. Service Binding 模态
或者,在 +Add 视图中点 YAML 选项查看 Import YAML 屏幕。使用 YAML 编辑器并添加 ServiceBinding
资源:
apiVersion: binding.operators.coreos.com/v1alpha1 kind: ServiceBinding metadata: name: spring-petclinic-pgcluster namespace: my-petclinic spec: services: - group: postgres-operator.crunchydata.com version: v1beta1 kind: PostgresCluster name: hippo application: name: spring-petclinic group: apps version: v1 resource: deployments
一个服务绑定请求会被创建,Service Binding Operator 控制器会将数据库服务连接信息作为卷挂载的文件来记录到应用程序部署中。请求成功后,会重新部署应用程序并建立连接。
图 6.5. 绑定连接器
您还可以通过拖动悬挂箭头以添加和创建与 Operator 支持的服务的绑定连接来使用上下文菜单。
图 6.6. 创建绑定连接的上下文菜单