5.2. Fuse on OpenShift でのアプリケーションの作成およびデプロイ


以下の OpenShift Source-to-Image (S2I) アプリケーション開発ワークフローの 1 つを使用してアプリケーションを作成し、OpenShift にデプロイして、Fuse on OpenShift の使用を開始することができます。

S2I バイナリーワークフロー
ビルド入力が バイナリーソース からの S2I です。このワークフローの特徴は、ビルドの一部が開発者自身のマシンで実行されることです。このワークフローはバイナリーパッケージをローカルでビルドした後、バイナリーパッケージを OpenShift に渡します。詳細は、OpenShift Container PlatformBuildsガイドの Binary Source を参照してください。
S2I ソースワークフロー
ビルド入力が Git ソース からの S2I です。このワークフローの特徴は、ビルドがすべて OpenShift サーバー上でビルドされることです。詳細は、OpenShift Container PlatformBuildsガイドの Git Source を参照してください。

5.2.1. S2I バイナリーを使用したアプリケーションの作成およびデプロイ

ここでは、OpenShift S2I バイナリーワークフローを使用して、Fuse on OpenShift プロジェクトを作成、ビルド、およびデプロイします。

注記
JDK11 を使用したクイックスタートの実行
ランタイム時に JDK11 ベースのイメージを使用する場合は、コンパイル時に正しい JDK11 プロファイルを使用します。JDK11 を使用してクイックスタートをビルドおよびデプロイする場合は、ビルドマシンに JDK11 をインストールし、正しい JDK11 プロファイルを使用してクイックスタートをビルドするようにしてください。

手順

  1. Maven の archetype を使用して、新しい Fuse on OpenShift プロジェクトを作成します。この例では、サンプル Spring Boot Camel プロジェクトを作成する archetype を使用します。新しいシェルプロンプトを開き、以下の Maven コマンドの 1 つを入力します。

    • すべての S2I クイックスタートにアクセスするには、以下を実行します。

      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-7_10_0-00015-redhat-00001/archetypes-catalog-2.2.0.fuse-sb2-7_10_0-00015-redhat-00001-archetype-catalog.xml \
        -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \
        -DarchetypeVersion=2.2.0.fuse-sb2-7_10_0-00015-redhat-00001
    • spring-boot-2-camel-xml クイックスタートのみにアクセスするには、以下を実行します。

      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-7_10_0-00015-redhat-00001/archetypes-catalog-2.2.0.fuse-sb2-7_10_0-00015-redhat-00001-archetype-catalog.xml \
        -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \
        -DarchetypeArtifactId=spring-boot-camel-xml-archetype \
        -DarchetypeVersion=2.2.0.fuse-sb2-7_10_0-00015-redhat-00001

      archetype プラグインが対話モードに切り替わり、残りのフィールドの入力を要求されます。

      Define value for property 'groupId': : org.example.fis
      Define value for property 'artifactId': : fuse710-spring-boot
      Define value for property 'version':  1.0-SNAPSHOT: :
      Define value for property 'package':  org.example.fis: :
      Confirm properties configuration:
      groupId: org.example.fis
      artifactId: fuse710-spring-boot
      version: 1.0-SNAPSHOT
      package: org.example.fis
       Y: : Y

      プロンプトが表示されたら、org.example.fisgroupId の値として入力し、fuse710-spring-bootartifactId の値として入力します。残りのフィールドにはデフォルト値を使用します。

  2. 前のコマンドが BUILD SUCCESS 状態で終了した場合、fuse710-spring-boot サブディレクトリー内に新しい Fuse on OpenShift プロジェクトが作成されているはずです。fuse710-spring-boot/src/main/resources/spring/camel-context.xml ファイルの XML DSL コードを確認します。デモンストレーションコードは、乱数が含まれるメッセージを継続的にログに送信する、シンプルな Camel ルートを定義します。
  3. Fuse on OpenShift プロジェクトのビルドおよびデプロイを準備するため、以下のように OpenShift サーバーにログインします。

    oc login -u developer -p developer https://OPENSHIFT_IP_ADDR:8443

    IP アドレスは常に同じではないため、OPENSHIFT_IP_ADDR は OpenShift サーバーの IP アドレスのプレースホルダーになります。この値を実際の IP アドレスに置き換えます。

    注記

    developer パスワードを持つ developer ユーザーは、CDK による仮想 OpenShift サーバーで自動作成される標準のアカウントです。リモートサーバーにアクセスする場合は、OpenShift 管理者が提供する URL とクレデンシャルを使用します。

  4. 次のように、openshift プロジェクトに切り替えます (まだ openshift プロジェクトにない場合)。

    oc project openshift
  5. 以下のコマンドを実行し、Fuse on OpenShift イメージおよびテンプレートがすでにインストールされ、アクセス可能であることを確認します。

    oc get template -n openshift

    イメージおよびテンプレートが事前にインストールされていない場合や、提供されたバージョンが古い場合は、Fuse on OpenShift イメージおよびテンプレートを手作業でインストール (または更新) します。Fuse on OpenShift イメージのインストール方法に関する詳細は、2章管理者向けの基本情報 を参照してください。

  6. これで、fuse710-spring-boot プロジェクトをビルドおよびデプロイできるようになりました。OpenShift にログインしている状態で、fuse710-spring-boot プロジェクトのディレクトリーに移動し、以下のようにプロジェクトをビルドおよびデプロイします。

    cd fuse710-spring-boot
    mvn oc:deploy -Popenshift

    ビルドに成功すると、以下のような出力が表示されます。

    ...
    [INFO] OpenShift platform detected
    [INFO] Using project: openshift
    [INFO] Creating a Service from openshift.yml namespace openshift name fuse710-spring-boot
    [INFO] Created Service: target/jkube/applyJson/openshift/service-fuse710-spring-boot.json
    [INFO] Using project: openshift
    [INFO] Creating a DeploymentConfig from openshift.yml namespace openshift name fuse710-spring-boot
    [INFO] Created DeploymentConfig: target/jkube/applyJson/openshift/deploymentconfig-fuse710-spring-boot.json
    [INFO] Creating Route openshift:fuse710-spring-boot host: null
    [INFO] F8: HINT: Use the command `oc get pods -w` to watch your pods start up
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 05:38 min
    [INFO] Finished at: 2020-12-04T12:15:06+05:30
    [INFO] Final Memory: 63M/688M
    [INFO] ------------------------------------------------------------------------
    注記

    このコマンドを初めて実行する場合、Maven は多くの依存関係をダウンロードする必要があるため、数分かかることがあります。2 回目からはビルドが速くなります。

  7. ブラウザーで OpenShift コンソールに移動し、クレデンシャル (例: ユーザー名 developer およびパスワード developer) を使用してコンソールにログインします。
  8. 左側のパネルで Home をデプロイメントし、Status をクリックして openshift プロジェクトの Project Status ページを表示します。
  9. fuse710-spring-boot をクリックし、fuse710-spring-boot アプリケーションの概要情報ページを表示します。

    Overview

  10. 左側のパネルで Workloads を展開します。
  11. Pods をクリックします。openshift プロジェクトで稼働している Pod すべてが表示されます。
  12. Pod の Name (この例では fuse710-spring-boot-xxxxx) をクリックし、稼働中の Pod の詳細を表示します。

    Pod Details

  13. Logs タブをクリックしてアプリケーションログを表示し、ログを下方向にスクロールして、Camel アプリケーションによって生成された乱数のログメッセージを見つけます。

    ...
    06:45:54.311 [Camel (MyCamel) thread #1 - timer://foo] INFO simple-route - >>> 130
    06:45:56.265 [Camel (MyCamel) thread #1 - timer://foo] INFO simple-route - >>> 898
    06:45:58.265 [Camel (MyCamel) thread #1 - timer://foo] INFO simple-route - >>> 414
    06:46:00.265 [Camel (MyCamel) thread #1 - timer://foo] INFO simple-route - >>> 486
    06:46:02.265 [Camel (MyCamel) thread #1 - timer://foo] INFO simple-route - >>> 093
    06:46:04.265 [Camel (MyCamel) thread #1 - timer://foo] INFO simple-route - >>> 080
  14. 稼働中の Pod を終了するには以下を行います。

    1. openshift プロジェクトの Project Status ページで、fuse710-spring-boot アプリケーション をクリックします。
    2. Overview タブをクリックし、アプリケーションの概要情報ページを表示します。
    3. Desired Count の横にある edit pod count アイコンをクリックします。Edit Count ウインドウが表示されます。
    4. 下矢印を使用して値をゼロにし、Pod を停止します。

5.2.2. プロジェクトのアンデプロイおよび再デプロイ

以下のようにプロジェクトをアンデプロイまたは再デプロイできます。

手順

  • プロジェクトをアンデプロイするには、以下のコマンドを入力します。

    mvn oc:undeploy
  • プロジェクトを再デプロイするには、以下のコマンドを入力します。

    mvn oc:undeploy
    mvn oc:deploy -Popenshift

5.2.3. S2I ソースワークフローを使用したアプリケーションの作成およびデプロイ

ここでは、OpenShift S2I ソースワークフローを使用して、テンプレートをベースとした Fuse on OpenShift アプリケーションをビルドおよびデプロイします。最初に、リモート Git リポジトリーに保存されたクイックスタートプロジェクトを使用します。OpenShift コンソールを使用すると、このクイックスタートプロジェクトを OpenShift サーバーでダウンロード、ビルド、およびデプロイできます。

手順

  1. 次のように、OpenShift サーバーにログインします。

    oc login -u developer -p developer https://OPENSHIFT_IP_ADDR:8443

    IP アドレスは常に同じではないため、OPENSHIFT_IP_ADDR は OpenShift サーバーの IP アドレスのプレースホルダーになります。この値を実際の IP アドレスに置き換えます。

    注記

    developer パスワードを持つ developer ユーザーは、CDK による仮想 OpenShift サーバーで自動作成される標準のアカウントです。リモートサーバーにアクセスする場合は、OpenShift 管理者が提供する URL とクレデンシャルを使用します。

  2. 次のように、openshift プロジェクトに切り替えます (まだ openshift プロジェクトにない場合)。

    oc project openshift
  3. 以下のコマンドを実行し、Fuse on OpenShift テンプレートがすでにインストールされ、アクセス可能であることを確認します。

    oc get template -n openshift

    イメージおよびテンプレートが事前にインストールされていない場合や、提供されたバージョンが古い場合は、Fuse on OpenShift イメージおよびテンプレートを手作業でインストール (または更新) します。Fuse on OpenShift イメージのインストール方法に関する詳細は、2章管理者向けの基本情報 を参照してください。

  4. 以下のコマンドを入力し、Red Hat Fuse 7.10 Camel XML DSL with Spring Boot クイックスタートテンプレートの実行に必要なリソースを作成します。これにより、クイックスタートのデプロイメント設定およびビルド設定が作成されます。クイックスタートのデフォルトパラメーターや作成されたリソースの情報はターミナルに表示されます。

    oc new-app s2i-fuse7-spring-boot-camel-xml
    
    --> Deploying template "openshift/s2i-fuse7-spring-boot-camel-xml" to project openshift
    ...
    --> Creating resources ...
        imagestream.image.openshift.io "s2i-fuse7-spring-boot-camel-xml" created
        buildconfig.build.openshift.io "s2i-fuse7-spring-boot-camel-xml" created
        deploymentconfig.apps.openshift.io "s2i-fuse7-spring-boot-camel-xml" created
    --> Success
        Build scheduled, use 'oc logs -f bc/s2i-fuse7-spring-boot-camel-xml' to track its progress.
        Run 'oc status' to view your app.
  5. ブラウザーで https://OPENSHIFT_IP_ADDR の OpenShift Web コンソールに移動します (OPENSHIFT_IP_ADDR はクラスターの IP アドレスに置き換えます)。クレデンシャル (例: ユーザー名 developer、パスワード developer) を使用して、コンソールにログインします。
  6. 左側のパネルで Home をデプロイメントします。Status をクリックして Project Status ページを表示します。選択された namespace (例: openshift) の既存のアプリケーションがすべて表示されます。
  7. s2i-fuse7-spring-boot-camel-xml をクリックし、クイックスタートの Overview 情報ページを表示します。

    Spring Boot Camel XML Overview

  8. Resources タブをクリックした後に View logs をクリックし、アプリケーションのビルドログを表示します。

    Spring Boot Camel XML build logs

  9. 左側のパネルで Workloads を展開します。
  10. Pods をクリックした後、s2i-fuse7-spring-boot-camel-xml-xxxx をクリックします。アプリケーションの Pod の詳細が表示されます。

    Spring Boot Camel XML pod details

  11. 稼働中の Pod を終了するには以下を行います。

    1. openshift プロジェクトの Project Status ページで、s2i-fuse7-spring-boot-camel-xml-xxxx アプリケーションをクリックします。
    2. Overview タブをクリックし、アプリケーションの概要情報ページを表示します。
    3. Desired Count の横にある edit pod count アイコンをクリックします。Edit Count ウインドウが表示されます。
    4. 下矢印を使用して値をゼロにし、Pod を停止します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.