2.6.3. バックエンドコンポーネントのデプロイ
Java コンポーネントを作成するには、Java ビルダーイメージをインポートし、Java アプリケーションをダウンロードし、odo でソースコードをクラスターにプッシュします。
手順
openjdk18をクラスターにインポートします。$ oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift --confirmイメージに
builderのタグを付け、イメージが odo でアクセスできるようにします。$ oc annotate istag/openjdk18:latest tags=builderodo catalog list componentsを実行し、作成されたイメージを表示します。$ odo catalog list components出力例
Odo Devfile Components: NAME DESCRIPTION REGISTRY java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry java-openliberty Open Liberty microservice in Java DefaultDevfileRegistry java-quarkus Upstream Quarkus with Java+GraalVM DefaultDevfileRegistry java-springboot Spring Boot® using Java DefaultDevfileRegistry nodejs Stack with NodeJS 12 DefaultDevfileRegistry Odo OpenShift Components: NAME PROJECT TAGS SUPPORTED java openshift 11,8,latest YES dotnet openshift 2.1,3.1,latest NO golang openshift 1.13.4-ubi7,1.13.4-ubi8,latest NO httpd openshift 2.4-el7,2.4-el8,latest NO nginx openshift 1.14-el7,1.14-el8,1.16-el7,1.16-el8,latest NO nodejs openshift 10-ubi7,10-ubi8,12-ubi7,12-ubi8,latest NO perl openshift 5.26-el7,5.26-ubi8,5.30-el7,latest NO php openshift 7.2-ubi7,7.2-ubi8,7.3-ubi7,7.3-ubi8,latest NO python openshift 2.7-ubi7,2.7-ubi8,3.6-ubi7,3.6-ubi8,3.8-ubi7,3.8-ubi8,latest NO ruby openshift 2.5-ubi7,2.5-ubi8,2.6-ubi7,2.6-ubi8,2.7-ubi7,latest NO wildfly openshift 10.0,10.1,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,8.1,9.0,latest NOコンポーネントの新規ディレクトリーを作成します。
$ mkdir my_components && cd my_componentsバックエンドアプリケーションのサンプルをダウンロードします。
$ git clone https://github.com/openshift-evangelists/Wild-West-Backend backendバックエンドソースディレクトリーに移動します。
$ cd backendディレクトリーに正しいファイルがあることを確認します。
$ ls出力例
debug.sh pom.xml srcバックエンドのソースファイルを Maven でビルドし、JAR ファイルを作成します。
$ mvn package出力例
... [INFO] -------------------------------------- [INFO] BUILD SUCCESS [INFO] -------------------------------------- [INFO] Total time: 2.635 s [INFO] Finished at: 2019-09-30T16:11:11-04:00 [INFO] Final Memory: 30M/91M [INFO] --------------------------------------backendという Java コンポーネントタイプのコンポーネント設定を作成します。$ odo create openjdk18 backend --binary target/wildwest-1.0.jar出力例
✓ Validating component [1ms] Please use `odo push` command to create the component with source deployed設定ファイルの
config.yamlは、デプロイ用のコンポーネントについての情報が含まれるバックエンドコンポーネントのローカルディレクトリーに置かれます。以下を使用して
config.yamlファイルでバックエンドコンポーネントの設定内容を確認します。$ odo config view出力例
COMPONENT SETTINGS ------------------------------------------------ PARAMETER CURRENT_VALUE Type openjdk18 Application app Project myproject SourceType binary Ref SourceLocation target/wildwest-1.0.jar Ports 8080/TCP,8443/TCP,8778/TCP Name backend MinMemory MaxMemory DebugPort Ignore MinCPU MaxCPUコンポーネントを OpenShift Container Platform クラスターにプッシュします。
$ odo push出力例
Validation ✓ Checking component [6ms] Configuration changes ✓ Initializing component ✓ Creating component [124ms] Pushing to component backend of type binary ✓ Checking files for pushing [1ms] ✓ Waiting for component to start [48s] ✓ Syncing files to the component [811ms] ✓ Building component [3s]odo pushを使用すると、OpenShift Container Platform はバックエンドコンポーネントをホストするためのコンテナーを作成し、そのコンテナーを OpenShift Container Platform クラスターで実行されている Pod にデプロイし、backendコンポーネントを起動します。以下を検証します。
odo でのアクションのステータス
$ odo log -f出力例
2019-09-30 20:14:19.738 INFO 444 --- [ main] c.o.wildwest.WildWestApplication : Starting WildWestApplication v1.0 onbackend-app-1-9tnhc with PID 444 (/deployments/wildwest-1.0.jar started by jboss in /deployments)バックエンドコンポーネントのステータス
$ odo list出力例
APP NAME TYPE SOURCE STATE app backend openjdk18 file://target/wildwest-1.0.jar Pushed