3.2. 将 Eclipse Vert.x 应用部署到 OpenShift
要将 Eclipse Vert.x 应用部署到 OpenShift,请在应用中配置 pom.xml 文件,然后使用 OpenShift Maven 插件。
Fabric8 Maven 插件不再被支持。使用 OpenShift Maven 插件在 OpenShift 上部署 Eclipse Vert.x 应用。如需更多信息,请参阅从 Fabric8 Maven 插件迁移到 Eclipse JKube 的部分。
您可以通过在 pom.xml 文件中替换 jkube.generator.from URL 来指定 Java 镜像。镜像在 红帽生态系统目录 中可用。
<jkube.generator.from>IMAGE_NAME</jkube.generator.from>
<jkube.generator.from>IMAGE_NAME</jkube.generator.from>
例如,使用 OpenJDK 8 的 RHEL 7 的 Java 镜像被指定为:
<jkube.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</jkube.generator.from>
<jkube.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</jkube.generator.from>
3.2.1. 支持的 Eclipse Vert.x 的 Java 镜像 复制链接链接已复制到粘贴板!
Eclipse Vert.x 通过可用于不同操作系统的各种 Java 镜像进行认证和测试。例如,对于带有 OpenJDK 8 或 OpenJDK 11 的 RHEL 7 提供了 Java 镜像。
Eclipse Vert.x 引入了对使用 Red Hat OpenJDK 8 和 Red Hat OpenJDK 11 的 OCI 兼容 通用基本镜像 OpenShift 构建和部署 Eclipse Vert.x 应用程序的支持。
您需要 Docker 或 podman 身份验证来访问红帽生态系统目录中的 RHEL 8 镜像。
下表列出了用于不同架构的 Eclipse Vert.x 支持的容器镜像。这些容器镜像在 红帽生态系统目录 中提供。在目录中,您可以搜索并下载下表中列出的镜像。镜像页面包含访问镜像所需的身份验证过程。
| JDK (OS) | 支持的构架 | 红帽生态系统目录中可用的镜像 |
|---|---|---|
| OpenJDK8 (RHEL 7) | x86_64 | redhat-openjdk-18/openjdk18-openshift |
| OpenJDK11 (RHEL 7) | x86_64 | openjdk/openjdk-11-rhel7 |
| OpenJDK8 (RHEL 8) | x86_64 | ubi8/openjdk-8-runtime |
| OpenJDK11 (RHEL 8) | x86_64、IBM Z 和 IBM Power 系统 | ubi8/openjdk-11 |
在 RHEL 7 主机上使用基于 RHEL 8 的容器(例如,OpenShift 3 或 OpenShift 4)具有有限的支持。如需更多信息,请参阅 Red Hat Enterprise Linux Container Compatibility Matrix。
3.2.2. 为 OpenShift 部署准备 Eclipse Vert.x 应用 复制链接链接已复制到粘贴板!
要将 Eclipse Vert.x 应用程序部署到 OpenShift,它必须包含:
-
在应用程序的
pom.xml文件中启动程序配置集信息。
在以下流程中,使用带有 OpenShift Maven 插件的配置集来构建和部署应用到 OpenShift。
前提条件
- 已安装 Maven。
- Docker 或 podman 身份验证到红帽生态系统目录,以访问 RHEL 8 镜像。
流程
在应用程序根目录下的
pom.xml文件中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 替换
pom.xml文件中的jkube.generator.from属性,以指定您要使用的 OpenJDK 镜像。x86_64 架构
RHEL 7 with OpenJDK 8
<jkube.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</jkube.generator.from>
<jkube.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</jkube.generator.from>Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL 7 with OpenJDK 11
<jkube.generator.from>registry.access.redhat.com/openjdk/openjdk-11-rhel7:latest</jkube.generator.from>
<jkube.generator.from>registry.access.redhat.com/openjdk/openjdk-11-rhel7:latest</jkube.generator.from>Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL 8 with OpenJDK 8
<jkube.generator.from>registry.access.redhat.com/ubi8/openjdk-8:latest</jkube.generator.from>
<jkube.generator.from>registry.access.redhat.com/ubi8/openjdk-8:latest</jkube.generator.from>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
x86_64、s390x (IBM Z)和 ppc64le (IBM Power Systems)架构
RHEL 8 with OpenJDK 11
<jkube.generator.from>registry.access.redhat.com/ubi8/openjdk-11:latest</jkube.generator.from>
<jkube.generator.from>registry.access.redhat.com/ubi8/openjdk-11:latest</jkube.generator.from>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要将 Eclipse Vert.x 应用程序部署到 OpenShift,您必须执行以下操作:
- 登录您的 OpenShift 实例。
- 将应用部署到 OpenShift 实例。
前提条件
-
已安装
ocCLI 客户端。 - 已安装 Maven。
流程
使用
oc客户端登录您的 OpenShift 实例。oc login ...
$ oc login ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift 实例中创建一个新项目。
oc new-project MY_PROJECT_NAME
$ oc new-project MY_PROJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用应用的根目录中的 Maven 将应用部署到 OpenShift。应用程序的根目录包含
pom.xml文件。mvn clean oc:deploy -Popenshift
$ mvn clean oc:deploy -PopenshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令使用 OpenShift Maven 插件在 OpenShift 上启动 S2I 进程,并启动容器集。
验证部署。
检查应用程序的状态,并确保您的 Pod 正在运行。
oc get pods -w
$ oc get pods -w NAME READY STATUS RESTARTS AGE MY_APP_NAME-1-aaaaa 1/1 Running 0 58s MY_APP_NAME-s2i-1-build 0/1 Completed 0 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow MY_APP_NAME-1-aaaaapod 在完全部署并启动后应处于Running状态。具体 pod 名称会有所不同。
确定 pod 的路由。
路由信息示例
oc get routes
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod 的路由信息为您提供了用于访问它的基本 URL。
在这个示例中
,http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME是用于访问应用程序的基本 URL。验证您的应用是否在 OpenShift 中运行。
curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME Greetings!Copy to Clipboard Copied! Toggle word wrap Toggle overflow