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>
例如,使用 OpenJDK 8 的 RHEL 7 的 Java 镜像被指定为:
<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
文件中添加以下内容:<!-- Specify the JDK builder image used to build your application. --> <properties> <jkube.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</jkube.generator.from> </properties> ... <profiles> <profile> <id>openshift</id> <build> <plugins> <plugin> <groupId>org.eclipse.jkube</groupId> <artifactId>openshift-maven-plugin</artifactId> <version>1.1.1</version> <executions> <execution> <goals> <goal>resource</goal> <goal>build</goal> <goal>apply</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>
替换
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>
RHEL 7 with OpenJDK 11
<jkube.generator.from>registry.access.redhat.com/openjdk/openjdk-11-rhel7:latest</jkube.generator.from>
RHEL 8 with OpenJDK 8
<jkube.generator.from>registry.access.redhat.com/ubi8/openjdk-8:latest</jkube.generator.from>
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>
3.2.3. 使用 OpenShift Maven 插件将 Eclipse Vert.x 应用部署到 OpenShift
要将 Eclipse Vert.x 应用程序部署到 OpenShift,您必须执行以下操作:
- 登录您的 OpenShift 实例。
- 将应用部署到 OpenShift 实例。
前提条件
-
已安装
oc
CLI 客户端。 - 已安装 Maven。
流程
使用
oc
客户端登录您的 OpenShift 实例。$ oc login ...
在 OpenShift 实例中创建一个新项目。
$ oc new-project MY_PROJECT_NAME
使用应用的根目录中的 Maven 将应用部署到 OpenShift。应用程序的根目录包含
pom.xml
文件。$ mvn clean oc:deploy -Popenshift
此命令使用 OpenShift Maven 插件在 OpenShift 上启动 S2I 进程,并启动容器集。
验证部署。
检查应用程序的状态,并确保您的 Pod 正在运行。
$ 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 2m
MY_APP_NAME-1-aaaaa
pod 在完全部署并启动后应处于Running
状态。具体 pod 名称会有所不同。
确定 pod 的路由。
路由信息示例
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080
pod 的路由信息为您提供了用于访问它的基本 URL。
在这个示例中
,http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
是用于访问应用程序的基本 URL。验证您的应用是否在 OpenShift 中运行。
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME Greetings!