6.9. 使用 Developer 视角将应用程序连接到服务
除了对一个应用程序中的多个组件进行分组外,还可以使用 Topology 视图来相互连接组件。您可以使用绑定连接器或视觉连接器来连接组件。
只有当目标节点是 Operator 支持的服务时,才可以在组件之间建立绑定连接。为了表示这种情况,当您将箭头拖到这样的目标节点上时,会出现 Create a binding connector 工具提示。当应用程序使用绑定连接器连接到服务时,会创建一个 ServiceBinding
资源。然后,Service Binding Operator 控制器会将必要的绑定数据项目到应用程序部署中。请求成功后,会重新部署应用程序以在连接的组件间建立交互。
视觉连接器只在组件之间建立视觉连接,描述连接意图。没有建立组件之间的交互。如果目标节点不是一个 Operator 支持的服务,当您将箭头拖到目标节点上时,将会显示 Create a visual connector 工具提示。
6.9.1. 发现并识别 Operator 支持的可绑定服务
作为用户,如果要创建可绑定的服务,您必须知道哪些服务可以绑定。可绑定服务是应用程序可轻松使用的服务,因为它们以标准的方式公开其绑定数据,如凭证、连接详情、卷挂载、secret 和其他绑定数据。Developer 视角可帮助您发现和识别此类可绑定的服务。
流程
要发现并确定由 Operator 支持的可绑定服务,请考虑以下替代方法:
-
点 +Add
Developer Catalog Operator Backed 查看 Operator 支持的标题。支持服务绑定功能的 Operator 支持的服务在标题上具有 可绑定的徽标。 在 Operator Backed 页面的左侧窗格中,选择可绑定复选框。
提示点 Service binding 旁边的 help 图标查看与可绑定服务相关的信息。
-
点 +Add
Add 并搜索 Operator 支持的服务。当您点可绑定服务时,可以在侧面面板中查看 可绑定服务。
-
点 +Add
6.9.2. 在组件之间创建视觉连接
您可以使用可视连接器来描述连接应用程序组件的意图。
此流程介绍了在 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.3. 在组件之间创建绑定连接
您可以与 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
更新频道从 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。
图 6.4. 服务绑定对话框
或者,在 +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. 创建绑定连接的上下文菜单
6.9.4. 从 Topology 视图验证服务绑定的状态
Developer 视角可帮助您通过 Topology 视图验证服务绑定的状态。
流程
如果服务绑定成功,点绑定连接器。侧面板会出现在 Details 标签页中显示 Connected 状态。
另外,您可以从 Developer 视角在以下页面中查看 Connected 状态:
- ServiceBindings 页面。
- ServiceBinding 详情页面。另外,页面标题显示 Connected 图标。
如果服务绑定失败,绑定连接器会显示红色的箭头,并在连接中间有一个红线。点这个连接器,在 Details 选项卡的侧面板中查看 Error 状态。(可选)点 Error 状态查看有关底层问题的特定信息。
您还可以从 Developer 视角查看以下页面中的错误状态和提示信息:
- ServiceBindings 页面。
- ServiceBinding 详情页面。另外,页面标题会显示错误徽标。
在 ServiceBindings 页面中,使用 Filter 下拉菜单根据服务的状态列出服务绑定。