3.2. Eclipse Vert.x アプリケーションの OpenShift へのデプロイメント
Eclipse Vert.x アプリケーションを OpenShift にデプロイするには、アプリケーションで pom.xml ファイルを設定し、OpenShift Maven プラグインを使用します。
Fabric8 Maven プラグインはサポート対象外になりました。OpenShift Maven プラグインを使用して、OpenShift に Eclipse Vert.x アプリケーションをデプロイします。詳細は、migrating from Fabric8 Maven Plugin to Eclipse JKube セクションを参照してください。
pom.xml ファイルの jkube.generator.from URL を置き換えて、Java イメージを指定できます。イメージは Red Hat Ecosystem Catalog で利用できます。
<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 イメージで認定およびテストされています。たとえば、Java イメージは、RHEL 7 で OpenJDK 8 または OpenJDK 11 で利用できます。
Eclipse Vert.x は、RHEL 8 上の Red Hat OpenJDK 8 および Red Hat OpenJDK 11 用の OCI 準拠の ユニバーサルベースイメージ を使用して、Eclipse Vert.x アプリケーションをビルドして OpenShift にデプロイするためのサポートを導入します。
Red Hat Ecosystem Catalog で RHEL 8 イメージにアクセスするには、Docker または podman 認証が必要です。
以下の表には、さまざまなアーキテクチャーの Eclipse Vert.x で対応しているコンテナーイメージが記載されています。これらのコンテナーイメージは、Red Hat Ecosystem Catalog で入手できます。カタログでは、下の表に記載されるイメージを検索してダウンロードできます。イメージページには、イメージへのアクセスに必要な認証手順が含まれています。
| JDK (OS) | アーキテクチャーのサポート | Red Hat Ecosystem Catalog で利用可能なイメージ |
|---|---|---|
| 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、IBMZ、および 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 がインストールされている。
- Red Hat Ecosystem Catalog での 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 アーキテクチャー
OpenJDK 8 を使用した RHEL 7
<jkube.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</jkube.generator.from>OpenJDK 11 を使用した RHEL 7
<jkube.generator.from>registry.access.redhat.com/openjdk/openjdk-11-rhel7:latest</jkube.generator.from>OpenJDK 8 を使用した RHEL 8
<jkube.generator.from>registry.access.redhat.com/ubi8/openjdk-8:latest</jkube.generator.from>
x86_64、s390x (IBM Z)、および ppc64le (IBM Power Systems) アーキテクチャー
OpenJDK 11 を使用した RHEL 8
<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 インスタンスにデプロイします。
前提条件
-
CLI クライアント
ocがインストールされている。 - 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 を起動します。
デプロイメントを確認します。
アプリケーションのステータスを確認し、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 2mMY_APP_NAME-1-aaaaaPod は、完全にデプロイされて起動すると、ステータスが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 8080Pod のルート情報は、アクセスに使用するベース URL を提供します。
この例では、
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAMEがアプリケーションにアクセスするためのベース URL です。OpenShift でアプリケーションが実行していることを確認します。
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME Greetings!