1.4. 使用分号(Tra-automatic)方法生成 ServiceBinding 自定义资源
您可以以自动方式生成 ServiceBinding 资源。以下流程演示了 OpenShift Container Platform 部署过程,包括用于配置和部署应用程序的 Operator 的安装。
在此过程中,您可以从 Crunchy Data 安装 Service Binding Operator 和 PostgreSQL Operator。
PostgreSQL Operator 是一个第三方组件。对于 PostgreSQL Operator 支持策略和使用条款,请联系软件厂商 Crunchy Data。
然后,这个过程涉及创建 PostgreSQL 集群,设置一个简单的应用程序,然后部署并将其绑定到置备的集群。
先决条件
- 您已创建了 OpenShift Container Platform 4.12 集群。
- 具有 OperatorHub 和 OpenShift Container Platform 的管理员访问权限,以便从 OperatorHub 安装集群范围的 Operator。
已安装:
-
OpenShift、
oc、编配工具 - Maven 和 Java
-
OpenShift、
流程
以下流程中的步骤使用 HOME (~)目录作为保存和安装目的地。
使用 从 OpenShift Container Platform Web UI 安装 Service Binding Operator 过程安装 Service Binding Operator 版本 1.3.3 和更高版本。
验证安装:
oc get csv -w
oc get csv -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当 Service Binding Operator 的
阶段设置为Succeeded时,继续下一步。
使用 Web 控制台或 CLI 从 OperatorHub 安装 Crunchy PostgreSQL Operator。
验证安装:
oc get csv -w
oc get csv -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当 Operator 的
阶段设置为Succeeded时,继续下一步。
创建 PostgreSQL 集群:
创建新的 OpenShift Container Platform 命名空间,它将用于创建集群并在以后部署应用程序。此命名空间将在整个流程中称为
demo。oc new-project demo
oc new-project demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建以下自定义资源,并将它保存为
pg-cluster.yml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此 YAML 已从 Service Binding Operator Quickstart 重复使用。
应用创建的自定义资源:
oc apply -f ~/pg-cluster.yml
oc apply -f ~/pg-cluster.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此命令假设您将
pg-cluster.yml文件保存到 HOME 目录中。检查 pod 以验证安装:
oc get pods -n demo
oc get pods -n demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
等待 Pod 进入
READY状态,表示安装已完成。
-
等待 Pod 进入
创建一个绑定到 PostgreSQL 数据库的 Quarkus 应用程序。
您要创建的应用程序是一个基本的
todo应用程序,它使用 Hibernate 和 Panache 连接到 PostgreSQL。生成应用程序:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加连接到 PostgreSQL 所需的所有扩展,生成所有必需的资源,并为应用程序构建容器镜像:
./mvnw quarkus:add-extension -Dextensions="resteasy-reactive-jackson,jdbc-postgresql,hibernate-orm-panache,openshift,kubernetes-service-binding"
./mvnw quarkus:add-extension -Dextensions="resteasy-reactive-jackson,jdbc-postgresql,hibernate-orm-panache,openshift,kubernetes-service-binding"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如以下示例所示,创建一个简单的实体:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 公开实体:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
通过生成
ServiceBinding资源来绑定到目标 PostgreSQL 集群。提供服务协调来生成绑定并配置数据源:
-
apiVersion:
postgres-operator.crunchydata.com/v1beta1 -
kind:
PostgresCluster 名称:
pg-cluster这可以通过设置
quarkus.kubernetes-service-binding.services.<id>.前缀来实现,如下例所示。id用于将属性分组到一起,并可分配任何值。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
apiVersion:
创建一个带有一些初始数据的
import.sql脚本:INSERT INTO todo(id, title, completed) VALUES (nextval('hibernate_sequence'), 'Finish the blog post', false);INSERT INTO todo(id, title, completed) VALUES (nextval('hibernate_sequence'), 'Finish the blog post', false);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
部署应用程序,包括
ServiceBinding并将其应用到集群:mvn clean install -Dquarkus.kubernetes.deploy=true -DskipTests
mvn clean install -Dquarkus.kubernetes.deploy=true -DskipTestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 等待部署完成。
验证
验证部署:
oc get pods -n demo -w
oc get pods -n demo -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证安装:
端口转发至本地 HTTP 端口,然后访问
/setuptools 端点。oc port-forward service/todo-example 8080:80
oc port-forward service/todo-example 8080:80Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在网页浏览器中打开以下 URL:
http://localhost:8080/todo
http://localhost:8080/todoCopy to Clipboard Copied! Toggle word wrap Toggle overflow