This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.5. 在 IBM Power Systems、IBM Z 和 LinuxONE 上使用服务绑定
Service Binding Operator 管理工作负载和后备服务的数据平面。本指南提供了一些示例,可帮助您创建数据库实例、部署应用程序,以及使用 Service Binding Operator 在应用程序和数据库服务间创建绑定连接。
先决条件
-
可以使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。 -
已安装
oc
CLI。 - 您已从 OperatorHub 安装 Service Binding Operator。
5.5.1. 部署 PostgreSQL Operator 复制链接链接已复制到粘贴板!
流程
-
要在
my-petclinic
命名空间中部署 Dev4Devs PostgreSQL Operator,请在 shell 中运行以下命令:
- 1
- Operator 镜像。
-
对于 IBM Power:
quay.io/ibm/operator-registry-ppc64le:release-4.9
-
对于 IBM Z 和 LinuxONE:
quay.io/ibm/operator-registry-s390x:release-4.8
-
对于 IBM Power:
验证
安装 Operator 后,列出
openshift-operators
命名空间中的 Operator 订阅:oc get subs -n openshift-operators
$ oc get subs -n openshift-operators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PACKAGE SOURCE CHANNEL postgresql-operator-dev4devs-com postgresql-operator-dev4devs-com ibm-multiarch-catalog alpha rh-service-binding-operator rh-service-binding-operator redhat-operators stable
NAME PACKAGE SOURCE CHANNEL postgresql-operator-dev4devs-com postgresql-operator-dev4devs-com ibm-multiarch-catalog alpha rh-service-binding-operator rh-service-binding-operator redhat-operators stable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2. 创建 PostgreSQL 数据库实例 复制链接链接已复制到粘贴板!
要创建 PostgreSQL 数据库实例,您必须创建一个 Database
自定义资源(CR)并配置数据库。
流程
在 shell 中运行以下命令来在
my-petclinic
命名空间中创建Database
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此
Database
CR 中添加的注解可启用服务绑定连接并触发 Operator 协调。输出会验证数据库实例是否已创建:
输出示例
database.postgresql.dev4devs.com/sampledatabase created
database.postgresql.dev4devs.com/sampledatabase created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建数据库实例后,确保
my-petclinic
命名空间中的所有 pod 都在运行:oc get pods -n my-petclinic
$ oc get pods -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出(需要几分钟)验证是否创建并配置了数据库:
输出示例
NAME READY STATUS RESTARTS AGE sampledatabase-cbc655488-74kss 0/1 Running 0 32s
NAME READY STATUS RESTARTS AGE sampledatabase-cbc655488-74kss 0/1 Running 0 32s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置了数据库后,您可以部署示例应用程序并将其连接到数据库服务。
5.5.3. 部署 Spring PetClinic 示例应用程序 复制链接链接已复制到粘贴板!
要在 OpenShift Container Platform 集群上部署 Spring PetClinic 示例应用程序,您必须使用部署配置并配置本地环境才能测试应用程序。
流程
在 shell 中运行以下命令,使用
PostgresCluster
自定义资源(CR)部署spring-petclinic
应用程序:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出会验证 Spring PetClinic 示例应用是否已创建并部署:
输出示例
deployment.apps/spring-petclinic created service/spring-petclinic created
deployment.apps/spring-petclinic created service/spring-petclinic created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果要在 web 控制台的 Developer 视角中使用 容器镜像 部署应用程序,则必须在高级选项的 Deployment 部分输入以下环境变量:
- 名称:SPRING_PROFILES_ACTIVE
- 值: postgres
运行以下命令,验证应用程序是否还没有连接到数据库服务:
oc get pods -n my-petclinic
$ oc get pods -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示
CrashLoopBackOff
状态需要几分钟:输出示例
NAME READY STATUS RESTARTS AGE spring-petclinic-5b4c7999d4-wzdtz 0/1 CrashLoopBackOff 4 (13s ago) 2m25s
NAME READY STATUS RESTARTS AGE spring-petclinic-5b4c7999d4-wzdtz 0/1 CrashLoopBackOff 4 (13s ago) 2m25s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个阶段,pod 无法启动。如果您尝试与应用交互,它会返回错误。
现在,您可以使用 Service Binding Operator 将应用程序连接到数据库服务。
5.5.4. 将 Spring PetClinic 示例应用程序连接到 PostgreSQL 数据库服务 复制链接链接已复制到粘贴板!
要将示例应用程序连接到数据库服务,您必须创建一个 ServiceBinding
自定义资源 (CR),该资源会触发 Service Binding Operator 将绑定数据项目到应用程序中。
流程
创建
ServiceBinding
CR 以项目绑定数据:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出会验证是否已创建
ServiceBinding
CR 以将绑定数据项目到示例应用程序中。输出示例
servicebinding.binding.operators.coreos.com/spring-petclinic created
servicebinding.binding.operators.coreos.com/spring-petclinic created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证服务绑定的请求是否成功:
oc get servicebindings -n my-petclinic
$ oc get servicebindings -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY REASON AGE spring-petclinic-postgresql True ApplicationsBound 47m
NAME READY REASON AGE spring-petclinic-postgresql True ApplicationsBound 47m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认情况下,来自数据库服务的绑定数据的值作为运行示例应用程序的工作负载容器中的文件进行投射。例如,Secret 资源中的所有值都投射到
bindings/spring-petclinic-pgcluster
目录中。创建后,您可以进入拓扑来查看可视连接。
图 5.1. 将 spring-petclinic 连接到示例数据库
设置应用程序端口的端口转发,以便从本地环境访问示例应用程序:
oc port-forward --address 0.0.0.0 svc/spring-petclinic 8080:80 -n my-petclinic
$ oc port-forward --address 0.0.0.0 svc/spring-petclinic 8080:80 -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Forwarding from 0.0.0.0:8080 -> 8080 Handling connection for 8080
Forwarding from 0.0.0.0:8080 -> 8080 Handling connection for 8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,您可以在 localhost:8080 远程访问 Spring PetClinic 示例应用程序,并查看应用程序现在连接到数据库服务。