5.2. 在 OpenShift 的 Fuse 中创建和部署应用程序
您可以通过创建应用程序并将其部署到 OpenShift 来开始使用 Fuse,方法是使用以下 OpenShift Source-to-Image (S2I)应用程序开发工作流之一:
- S2I 二进制工作流
- 带有来自 二进制源 的构建输入的 S2I。此工作流的特征是,构建部分在开发人员自己的计算机上执行。本地构建二进制软件包后,此工作流将二进制软件包传递给 OpenShift。如需了解更多详细信息,请参阅 构建 OpenShift Container Platform 指南中的 Binary Source。
- S2I 源工作流
- 带有来自 Git 源 的构建输入的 S2I。此工作流的特征是,构建完全在 OpenShift 服务器上执行。如需了解更多详细信息,请参阅 构建 OpenShift Container Platform 指南中的 Git 源。
5.2.1. 使用 S2I 二进制工作流创建和部署应用程序 复制链接链接已复制到粘贴板!
在本小节中,您将使用 OpenShift S2I 二进制工作流在 OpenShift 项目中创建、构建和部署 Fuse。
流程
使用 Maven archetype 在 OpenShift 项目中创建一个新的 Fuse。在本例中,我们使用 archetype 来创建 Spring Boot Camel 项目示例。打开一个新的 shell 提示符,并输入以下 Maven 命令:
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-780040-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-780040-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeArtifactId=spring-boot-camel-xml-archetype \ -DarchetypeVersion=2.2.0.fuse-sb2-780040-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-780040-redhat-00002/archetypes-catalog-2.2.0.fuse-sb2-780040-redhat-00002-archetype-catalog.xml \ -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \ -DarchetypeArtifactId=spring-boot-camel-xml-archetype \ -DarchetypeVersion=2.2.0.fuse-sb2-780040-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
值输入fuse78-spring-boot
。接受剩余的字段的默认值。-
如果上一命令以
BUILD SUCCESS
状态退出,则现在应在fuse78-spring-boot
子目录下具有 OpenShift 项目的 Fuse。您可以检查fuse78-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 章 管理员入门。
您现在已准备好构建和部署
fuse78-spring-boot
项目。假设您仍然登录 OpenShift,请更改到fuse78-spring-boot
项目的目录,然后进行构建和部署项目,如下所示:cd fuse78-spring-boot mvn fabric8:deploy -Popenshift
cd fuse78-spring-boot mvn fabric8: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 页面。 单击 fuse78-spring-boot,以查看 fuse78-spring-boot 应用程序的 Overview 信息页面。
- 在左侧面板中,展开 Workloads。
- 单击 Pods。此时会显示 openshift 项目中运行的所有 Pod。
点 pod Name (本例中为
fuse78-spring-boot-xxxxx
)以查看正在运行的 pod 的详情。单击 Logs 选项卡,以查看应用程序日志,再向下滚动以查找 Camel 应用程序生成的随机日志消息。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 关闭正在运行的 pod,
-
在
openshift
项目的 Project Status 页面中,单击 fuse78-spring-boot 应用。 - 点 Overview 选项卡查看应用程序的概览信息页面。
- 点 Desired Count 旁边的 图标。此时会显示 Edit Count 窗口。
- 使用向下箭头向下扩展到零,以停止 pod。
-
在
5.2.2. 取消部署并重新部署项目 复制链接链接已复制到粘贴板!
您可以取消部署或重新部署项目,如下所示:
流程
要取消部署项目,请输入以下命令:
mvn fabric8:undeploy
mvn fabric8:undeploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要重新部署项目,请输入以下命令:
mvn fabric8:undeploy mvn fabric8:deploy -Popenshift
mvn fabric8:undeploy mvn fabric8:deploy -Popenshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.3. 使用 S2I 源工作流创建和部署应用程序 复制链接链接已复制到粘贴板!
在本小节中,您将使用 OpenShift S2I 源工作流基于模板在 OpenShift 应用上构建和部署 Fuse。此演示的起点是存储在远程 Git 存储库中的快速入门项目。使用 OpenShift 控制台,您将在 OpenShift 服务器中下载、构建和部署此快速启动项目。
流程
按如下所示登录 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.8 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-fuse78-spring-boot-camel-xml
以查看快速启动的 Overview 信息页面。单击 Resources 选项卡,然后单击 View logs 以查看应用的构建日志。
- 在左侧面板中,展开 Workloads。
单击 Pods,然后单击
s2i-fuse78-spring-boot-camel-xml-xxxx
。此时会显示应用程序的 Pod 详情。关闭正在运行的 pod,
-
在
openshift
项目的 Project Status 页面中,单击 s2i-fuse78-spring-boot-camel-xml-xxxx 应用。 - 点 Overview 选项卡查看应用程序的概览信息页面。
- 点 Desired Count 旁边的 图标。此时会显示 Edit Count 窗口。
- 使用向下箭头向下扩展到零,以停止 pod。
-
在