5.2. 在 OpenShift 的 Fuse 中创建并部署应用程序
您可以在 OpenShift 上开始使用 Fuse,方法是创建一个应用程序并将其部署到 OpenShift,并使用以下 OpenShift Source-to-Image(S2I)应用程序开发工作流之一:
- S2I 二进制工作流
- 带有 二进制源的 构建输入的 S2I。此工作流的特征是,构建部分在开发人员自己的计算机上执行。在在本地构建二进制软件包后,此工作流会将二进制软件包传递给 OpenShift。如需了解更多详细信息,请参阅 构建 OpenShift Container Platform 指南中的 二进制源。
- S2I 源工作流
- 带有来自 Git 源 的构建输入的 S2I。此工作流的特征是:构建完全在 OpenShift 服务器上执行。如需了解更多详细信息,请参阅 构建 OpenShift Container Platform 指南中的 Git 源。
5.2.1. 使用 S2I 二进制工作流创建和部署应用程序 复制链接链接已复制到粘贴板!
在本节中,您将使用 OpenShift S2I 二进制工作流在 OpenShift 项目中创建、构建和部署 Fuse。
- 使用 JDK11 运行快速入门
- 如果要在运行时使用基于 JDK11 的镜像,在编译期间使用正确的 JDK11 配置集。当使用 JDK11 构建和部署快速入门时,请确保已在构建机器上安装了 JDK11,然后使用正确的 JDK11 配置集构建您的快速入门。
流程
使用 Maven archetype 在 OpenShift 项目上创建一个新的 Fuse。在本例中,我们使用 archetype 创建一个示例 Spring Boot Camel 项目。打开新 shell 提示符并输入以下 Maven 命令之一:
访问所有 S2I 快速入门:
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \ -DarchetypeCatalog=https://maven.repository.redhat.com/ga/io/fabric8/archetypes/archetypes-catalog/2.2.0.fuse-sb2-7_11_1-00018-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-7_11_1-00018-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeVersion=2.2.0.fuse-sb2-7_11_1-00018-redhat-00002
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \ -DarchetypeCatalog=https://maven.repository.redhat.com/ga/io/fabric8/archetypes/archetypes-catalog/2.2.0.fuse-sb2-7_11_1-00018-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-7_11_1-00018-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeVersion=2.2.0.fuse-sb2-7_11_1-00018-redhat-00002
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 访问
spring-boot-2-camel-xml
quickstart:mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \ -DarchetypeCatalog=https://maven.repository.redhat.com/ga/io/fabric8/archetypes/archetypes-catalog/2.2.0.fuse-sb2-7_11_1-00018-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-7_11_1-00018-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeArtifactId=spring-boot-camel-xml-archetype \ -DarchetypeVersion=2.2.0.fuse-sb2-7_11_1-00018-redhat-00002
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \ -DarchetypeCatalog=https://maven.repository.redhat.com/ga/io/fabric8/archetypes/archetypes-catalog/2.2.0.fuse-sb2-7_11_1-00018-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-7_11_1-00018-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeArtifactId=spring-boot-camel-xml-archetype \ -DarchetypeVersion=2.2.0.fuse-sb2-7_11_1-00018-redhat-00002
Copy to Clipboard Copied! Toggle word wrap Toggle overflow archetype 插件切换到交互模式,提示您输入其余字段。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出现提示时,输入
groupId
值的org.example.fis
,为artifactId
值输入fuse711-spring-boot
。接受其余字段的默认值。
-
如果上一命令以
BUILD SUCCESS
状态退出,则现在您应当在fuse711-spring-boot
子目录下在 OpenShift 项目中有一个新的 Fuse。您可以检查fuse711-spring-boot/src/main/resources/spring/camel-context.xml
文件中的 XML DSL 代码。演示代码定义了一个简单的 Camel 路由,可持续向日志发送包含随机数字的消息。 为准备在 OpenShift 项目中构建和部署 Fuse,请按如下所示登录 OpenShift 服务器:
oc login -u developer -p developer https://OPENSHIFT_IP_ADDR:8443
oc login -u developer -p developer https://OPENSHIFT_IP_ADDR:8443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
OPENSHIFT_IP_ADDR
是 OpenShift 服务器的 IP 地址的占位符,因为此 IP 地址并不总是相同。注意developer
用户(使用开发人员
密码)是一个标准帐户,由 CDK 在虚拟 OpenShift 服务器上自动创建。如果您正在访问远程服务器,请使用 OpenShift 管理员提供的 URL 和凭据。切换到
openshift
项目(如果还没有在openshift
项目中),如下所示:oc project openshift
oc project openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以确保 OpenShift 镜像和模板的 Fuse 已经安装,并可以访问它们。
oc get template -n openshift
oc get template -n openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有预安装镜像和模板,或者所提供的版本过期,请在 OpenShift 镜像和模板上安装(或更新) Fuse。有关如何在 OpenShift 镜像上安装 Fuse 的更多信息,请参阅 第 2 章 管理员入门。
您现在已准备好构建和部署
fuse711-spring-boot
项目。假设您仍然登录到 OpenShift,请更改到fuse711-spring-boot
项目的目录,然后构建并部署该项目,如下所示:cd fuse711-spring-boot mvn oc:deploy -Popenshift
cd fuse711-spring-boot mvn oc:deploy -Popenshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在成功构建结束时,您应看到类似以下内容的一些输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意第一次运行此命令时,Maven 必须下载大量依赖项,这需要几分钟时间。后续的构建速度更快。
-
导航到浏览器中的 OpenShift 控制台,再使用您的凭证登录控制台(例如,使用用户名
developer
和密码developer
)。 -
在左侧面板中,展开 Home,然后单击 Status 以查看
openshift
项目的 Project Status 页面。 单击 fuse711-spring-boot,以查看 fuse711-spring-boot 应用程序的 Overview 信息页面。
- 在左侧侧面板中展开 Workloads。
- 点 Pods。此时会显示 openshift 项目中所有正在运行的 pod。
单击 pod 名称 (本例中为
fuse711-spring-boot-xxxxx
)以查看正在运行的 Pod 的详细信息。单击 Logs 选项卡,以查看应用程序日志,再向下滚动日志以查找由 Camel 应用程序生成的随机数日志消息。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 关闭正在运行的 Pod,
-
在
openshift
项目的 Project Status 页面上,单击 fuse711-spring-boot 应用程序。 - 点 Overview 选项卡查看应用程序的概述信息页面。
-
点击 Desired Count 旁边的
图标。此时会显示 Edit Count 窗口。
- 使用向下箭头缩减为零以停止 pod。
-
在
5.2.2. 取消部署并重新部署项目 复制链接链接已复制到粘贴板!
您可以取消部署或重新部署项目,如下所示:
流程
要取消部署项目,请输入以下命令:
mvn oc:undeploy
mvn oc:undeploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要重新部署项目,请输入命令:
mvn oc:undeploy mvn oc:deploy -Popenshift
mvn oc:undeploy mvn oc:deploy -Popenshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.3. 使用 S2I 源工作流创建和部署应用程序 复制链接链接已复制到粘贴板!
在本节中,您将使用 OpenShift S2I 源工作流来基于模板在 OpenShift 应用构建和部署 Fuse。此演示的起点是存储在远程 Git 存储库中的 quickstart 项目。使用 OpenShift 控制台,您将在 OpenShift 服务器中下载、构建和部署此 quickstart 项目。
流程
按照如下所示,登录 OpenShift 服务器:
oc login -u developer -p developer https://OPENSHIFT_IP_ADDR:8443
oc login -u developer -p developer https://OPENSHIFT_IP_ADDR:8443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
OPENSHIFT_IP_ADDR
是 OpenShift 服务器的 IP 地址的占位符,因为此 IP 地址并不总是相同。注意developer
用户(使用开发人员
密码)是一个标准帐户,由 CDK 在虚拟 OpenShift 服务器上自动创建。如果您正在访问远程服务器,请使用 OpenShift 管理员提供的 URL 和凭据。切换到
openshift
项目(如果还没有在openshift
项目中),如下所示:oc project openshift
oc project openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以确保 OpenShift 模板上的 Fuse 已安装,并可以访问它们。
oc get template -n openshift
oc get template -n openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有预安装镜像和模板,或者所提供的版本过期,请在 OpenShift 镜像和模板上安装(或更新) Fuse。有关如何在 OpenShift 镜像上安装 Fuse 的更多信息,请参阅 第 2 章 管理员入门。
输入以下命令来创建 使用 Spring Boot Quickstart 模板运行 Red Hat Fuse 7.11 Camel XML DSL 所需的资源。这将为 Quickstart 创建部署配置和构建配置。有关快速启动的默认参数以及所创建的资源的信息会在终端上显示。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 导航到浏览器中的 OpenShift Web 控制台(https://OPENSHIFT_IP_ADDR,将 OPENSHIFT_IP_ADDR 替换为集群的 IP 地址),并使用您的凭证(例如,使用用户名 developer 和密码 developer)登录控制台。
- 在左侧侧面板中展开 Home。点 Status 查看 Project Status 页面。此时会显示所选命名空间中的所有现有应用程序(如 openshift)。
单击
s2i-fuse7-spring-boot-camel-xml
,以查看 Quickstart 的 Overview 信息页面。单击 Resources 选项卡,然后单击 View logs 以查看应用的构建日志。
- 在左侧侧面板中展开 Workloads。
单击 Pods,然后单击
s2i-fuse7-spring-boot-camel-xml-xxxx
。此时会显示应用程序的 Pod 详情。关闭正在运行的 Pod,
-
在
openshift
项目的 Project Status 页面中,单击 s2i-fuse7-spring-boot-camel-xml-xxxx 应用程序。 - 点 Overview 选项卡查看应用程序的概述信息页面。
-
点击 Desired Count 旁边的
图标。此时会显示 Edit Count 窗口。
- 使用向下箭头缩减为零以停止 pod。
-
在