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 支持的可绑定服务,请考虑以下替代方法:

    • +AddDeveloper CatalogOperator Backed 查看 Operator 支持的标题。支持服务绑定功能的 Operator 支持的服务在标题上具有 可绑定的徽标。
    • Operator Backed 页面左侧窗格中,选择 Bindable

      提示

      Service binding 旁边的 help 图标查看与可绑定服务相关的信息。

    • +AddAdd 并搜索 Operator 支持的服务。当您点可绑定服务时,您可以在侧面面板中查看 Bindable 徽标。

6.9.2. 在组件之间创建视觉连接

您可以使用可视连接器来描述连接应用程序组件的意图。

此流程介绍了在 PostgreSQL 数据库服务和 Spring PetClinic 示例应用程序之间创建可视连接的示例。

先决条件

  • 您已使用 Developer 视角创建并部署了 Spring PetClinic 示例应用程序。
  • 已使用 Developer 视角创建并部署了 Crunchy PostgreSQL 数据库实例。此实例具有以下组件: hippo-backuphippo-instancehippo-repo-hosthippo-pgbouncer

流程

  1. Developer 视角中,切换到相关项目,如 my-petclinic
  2. 将鼠标悬停在 Spring PetClinic 示例应用上,以查看节点上的悬挂箭头。

    图 6.2. 视觉连接器

    odc 连接器
  3. 单击箭头并将它拖向 hippo-pgbouncer 部署,以将 Spring PetClinic 示例应用与其连接。
  4. spring-petclinic 部署来查看 Overview 面板。在 Details 选项卡下,点 Annotations 部分中的编辑图标,查看 Key = app.openshift.io/connects-toValue = [{"apiVersion":"apps/v1","kind":"Deployment","name":"hippo-pgbouncer"}] 注解添加到部署。
  5. 可选:您可以重复这些步骤,以在其他应用程序和组件之间建立视觉连接。

    图 6.3. 连接多个应用程序

    odc 连接多个应用程序

6.9.3. 在组件之间创建绑定连接

您可以创建一个与 Operator 支持的组件的绑定连接,如下例所示,它使用 PostgreSQL Database 服务和 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 视角中创建了一个 PostgresCluster 资源,这会导致一个含有以下组件的 Crunchy PostgreSQL 数据库实例:hippo-backuphippo-instancehippo-repo-hosthippo-pgbouncer

流程

  1. Developer 视角中,切换到相关项目,如 my-petclinic
  2. Topology 视图中,把鼠标移到 Spring PetClinic 示例应用程序上,以查看节点上的悬挂箭头。
  3. 将箭头拖放到 Postgres Cluster 的 hippo 数据库图标,以使用 Spring PetClinic 示例应用程序进行绑定连接。
  4. Create Service Binding 对话框中,保留默认名称或为服务绑定添加其他名称,然后点 Create

    图 6.4. 服务绑定对话框

    odc sbc modal
  5. 可选:如果使用 Topology 视图进行绑定连接,进入 +AddYAMLImport YAML
  6. 可选:在 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

    服务绑定请求被创建,并通过 ServiceBinding 资源创建绑定连接。当数据库服务连接请求成功后,会重新部署应用程序并建立连接。

    图 6.5. 绑定连接器

    odc 绑定连接器
    提示

    您还可以通过拖动悬挂箭头以添加和创建与 Operator 支持的服务的绑定连接来使用上下文菜单。

    图 6.6. 创建绑定连接的上下文菜单

    odc context operator
  7. 在导航菜单中点 Topology。Topology 视图中的 spring-petclinic 部署包括 Open URL 链接来查看其网页。
  8. Open URL 链接。

现在,您可以远程查看 Spring PetClinic 示例应用程序,以确认应用程序现在连接到数据库服务,并且数据已成功投入 Crunchy PostgreSQL 数据库服务中的应用程序。

Service Binding Operator 在应用程序和数据库服务之间成功创建了可正常工作的连接。

6.9.4. 从 Topology 视图验证服务绑定的状态

Developer 视角可帮助您通过 Topology 视图验证服务绑定的状态。

流程

  1. 如果服务绑定成功,点绑定连接器。侧面板会出现在 Details 标签页中显示 Connected 状态。

    另外,您可以从 Developer 视角在以下页面中查看 Connected 状态:

    • ServiceBindings 页面。
    • ServiceBinding 详情页面。另外,页面标题显示 Connected 图标。
  2. 如果服务绑定失败,绑定连接器会显示红色的箭头,并在连接中间有一个红线。点这个连接器,在 Details 选项卡的侧面板中查看 Error 状态。(可选)点 Error 状态查看有关底层问题的特定信息。

    您还可以从 Developer 视角查看以下页面中的错误状态和提示信息:

    • ServiceBindings 页面。
    • ServiceBinding 详情页面。另外,页面标题会显示错误徽标。
提示

ServiceBindings 页面中,使用 Filter 下拉菜单根据服务的状态列出服务绑定。

6.9.5. 其他资源