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.10 集群
- 您可以访问 OperatorHub 和 OpenShift Container Platform Administrator 权限,以便从 OperatorHub 安装集群范围的 Operator
已安装:
-
ocorchestration 工具 - Maven 和 Java
-
流程
以下流程中的步骤使用 HOME (~)目录作为保存和安装目的地。
使用 从 OpenShift Container Platform Web UI 安装 Service Binding Operator 过程安装 Service Binding Operator 版本 1.0 及更高版本。
验证安装:
oc get csv -n openshift-operators -w
oc get csv -n openshift-operators -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
当 Service Binding Operator 的
阶段设置为Succeeded时,继续下一步。
-
当 Service Binding Operator 的
使用 Web 控制台或 CLI 从 OperatorHub 安装 Crunchy PostgreSQL Operator。有关说明的链接,请参阅部署和使用 部分。
验证安装:
oc get csv -n openshift-operators -w
oc get csv -n openshift-operators -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 注意此命令假设您在 HOME 中保存了
pg-cluster.yml文件。检查 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