7.5. EAP Operator を使用した OpenShift での Java アプリケーションのデプロイ


EAP オペレーターは、OpenShift での Java アプリケーションのデプロイメントを自動化するのに役立ちます。EAP オペレーター API の詳細は、EAP Operator: API Information を参照してください。

前提条件

  • EAP オペレーターがインストールされている。EAP オペレーターのインストールに関する詳細は、Installing EAP Operator Using the webconsole および CLI を使用した EAP Operator のインストール を参照してください。
  • JBoss EAP for OpenShift Source-to-Image (S2I) ビルドイメージを使用して、ユーザーアプリケーションの Docker イメージを構築している。
  • OpenShift へのデプロイ後にアプリケーションの自動アップグレードを有効にする場合には、eap-s2i-build テンプレートの APPLICATION_IMAGE パラメーターにイメージストリームがあります。eap-s2i-build テンプレートを使用してアプリケーションイメージを構築する方法は、eap-s2i-build テンプレートを使用したアプリケーションイメージのビルド を参照してください。
  • アプリケーションの CustomResourceDefinition (CRD) ファイルが参照する場合は、Secret オブジェクトを作成している。新しい Secret オブジェクト作成の詳細は Secret の作成 を参照してください。
  • アプリケーションの CRD ファイルが参照する場合は、ConfigMap を作成している。ConfigMap 作成の詳細は ConfigMap の作成 を参照してください。
  • 必要であれば、standalone.xml ファイルから ConfigMap を作成している。standalone.xml ファイルからの ConfigMap の作成の詳細は、standalone.xml ファイルからの ConfigMap の作成 を参照してください。
注記

JBoss EAP 7 では、ConfigMap から standalone.xml ファイルを指定できません。

手順

  1. Web ブラウザーを開き、OperatorHub にログインします。
  2. Java アプリケーションに使用する Project または名前空間を選択します。
  3. Installed Operator に移動し、JBoss EAP オペレーターを選択します。
  4. Overview タブで、Create Instance リンクをクリックします。
  5. アプリケーションイメージの詳細を指定します。

    アプリケーションイメージは、Java アプリケーションが含まれる Docker イメージを指定します。イメージは JBoss EAP for OpenShift の Source-to-Image (S2I) ビルドイメージを使用してビルドする必要があります。applicationImage フィールドがイメージストリームタグに対応している場合は、イメージへの変更により、アプリケーションの自動アップグレードがトリガーされます。

    JBoss EAP for OpenShift アプリケーションイメージの以下のリファレンスのいずれかを指定できます。

    • イメージの名前: mycomp/myapp
    • タグ: mycomp/myapp:1.0
    • A digest: mycomp/myapp:@sha256:0af38bc38be93116b6a1d86a9c78bd14cd527121970899d719baf78e5dc7bfd2
    • イメージストリームタグ: my-app:latest
  6. アプリケーションのサイズを指定します。以下に例を示します。

    spec:
      replicas:2
  7. env spec を使用してアプリケーション環境を設定します。環境変数 は、POSTGRESQL_SERVICE_HOST などの値や POSTGRESQL_USER などの Secret オブジェクトから直接取得できます。以下に例を示します。

    spec:
      env:
      - name: POSTGRESQL_SERVICE_HOST
        value: postgresql
      - name: POSTGRESQL_SERVICE_PORT
        value: '5432'
      - name: POSTGRESQL_DATABASE
        valueFrom:
          secretKeyRef:
            key: database-name
            name: postgresql
      - name: POSTGRESQL_USER
        valueFrom:
          secretKeyRef:
            key: database-user
            name: postgresql
      - name: POSTGRESQL_PASSWORD
        valueFrom:
          secretKeyRef:
            key: database-password
            name: postgresql
  8. アプリケーションのデプロイメントに関連する以下のオプションの設定を行います。

    • サーバーデータディレクトリーのストレージ要件を指定します。詳細は、Configuring Persistent Storage for Applications を参照してください。
    • WildFlyServerSpec で作成した Secret の名前を指定し、アプリケーションを実行している Pod のボリュームとしてマウントします。以下に例を示します。

      spec:
        secrets:
          - my-secret

      Secret/etc/secrets/<secret name> にマウントされ、それぞれのキー/ 値がファイルとして保存されます。ファイルの名前がキーに、コンテンツが値になります。Secret は pod 内のボリュームとしてマウントされます。以下の例は、キー値の検索に使用できるコマンドを示しています。

      $ ls /etc/secrets/my-secret/
      my-key  my-password
      $ cat /etc/secrets/my-secret/my-key
      devuser
      $ cat /etc/secrets/my-secret/my-password
      my-very-secure-pasword
      注記

      Secret オブジェクトを変更すると、プロジェクトの一貫性が失われることがあります。Red Hat では、既存の Secret オブジェクトを変更する代わりに、古いオブジェクトと同じコンテンツを持つ新規オブジェクトを作成することを推奨します。これで、必要に応じてコンテンツを更新し、オペレーターカスタムリソース (CR) の参照を更新できます。これは新しい CR 更新とみなされ、pod はリロードされます。

    • WildFlyServerSpec で作成した ConfigMap の名前を指定し、アプリケーションを実行している Pod のボリュームとしてマウントします。以下に例を示します。

      spec:
        configMaps:
        - my-config

      ConfigMap/etc/configmaps/<configmap name> にマウントされ、それぞれのキー/ 値はファイルとして保存されます。ファイルの名前がキーに、コンテンツが値になります。ConfigMap は pod 内のボリュームとしてマウントされます。キーの値を検索するには、次のコマンドを実行します。

      $ ls /etc/configmaps/my-config/
      key1 key2
      $ cat /etc/configmaps/my-config/key1
      value1
      $ cat /etc/configmaps/my-config/key2
      value2
      注記

      ConfigMap を変更すると、プロジェクトの一貫性が失われることがあります。Red Hat では、既存の ConfigMap オブジェクトを変更する代わりに、古いオブジェクトと同じコンテンツを持つ新しい ConfigMap を作成することを推奨します。これで、必要に応じてコンテンツを更新し、オペレーターカスタムリソース (CR) の参照を更新できます。これは新しい CR 更新とみなされ、pod はリロードされます。

    • 独自のスタンドアロン ConfigMap を選択する場合は、 ConfigMap の名前と standalone.xml ファイルのキーを指定します。

        standaloneConfigMap:
          name: clusterbench-config-map
          key: standalone-openshift.xml
      注記

      JBoss EAP 7 では、standalone.xml ファイルから ConfigMap を作成することはできません。

    • OpenShift でデフォルトの HTTP ルートの作成を無効にする場合は、disableHTTPRoutetrue に設定します。

      spec:
        disableHTTPRoute: true

7.5.1. Secret の作成

アプリケーションの CustomResourceDefinition (CRD) ファイルが Secret を参照する場合は、EAP オペレーターを使用してアプリケーションを OpenShift にデプロイする前に Secret を作成する必要があります。

手順

  • Secret を作成するには、以下を実行します。
$ oc create secret generic my-secret --from-literal=my-key=devuser --from-literal=my-password='my-very-secure-pasword'

7.5.2. ConfigMap の作成

アプリケーションの CustomResourceDefinition (CRD) ファイルが spec.ConfigMaps フィールドの ConfigMap を参照する場合は、EAP オペレーターを使用してアプリケーションを OpenShift にデプロイする前に ConfigMap を作成する必要があります。

手順

  • configmap を作成するには、以下を実行します。
 $ oc create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2
configmap/my-config created

7.5.3. standalone.xml ファイルからの ConfigMap の作成

JBoss EAP for OpenShift Source-to-Image (S2I) から提供されるアプリケーションイメージで使用する代わりに、独自の JBoss EAP スタンドアロン設定を作成できます。standalone.xml ファイルは、オペレーターからアクセスできる ConfigMap に配置する必要があります。

注記

注記: JBoss EAP 7 では、ConfigMap から standalone.xml ファイルを指定することはできません。

手順

  • standalone.xml ファイルから ConfigMap を作成するには、以下を実行します。
 $ oc create configmap clusterbench-config-map --from-file examples/clustering/config/standalone-openshift.xml
configmap/clusterbench-config-map created

7.5.4. アプリケーションの永続ストレージの設定

アプリケーションが一部のデータについて永続ストレージを必要とする場合 (pod の再起動後も維持する必要のあるトランザクションログやメッセージングログなど) は、ストレージ仕様を設定します。ストレージ仕様が空の場合は、EmptyDir ボリュームはアプリケーションの各 pod によって使用されます。ただし、このボリュームは、対応する pod が停止した後は使用されなくなります。

手順

  1. volumeClaimTemplate を指定し、リソース要件を設定して、JBoss EAP スタンドアロンデータディレクトリーを保存します。テンプレートの名前は JBoss EAP の名前から派生します。対応するボリュームは ReadWriteOnce アクセスモードでマウントされます。

    spec:
      storage:
        volumeClaimTemplate:
          spec:
            resources:
              requests:
                storage: 3Gi

    このストレージ要件を満たす永続ボリュームは、/eap/standalone/data ディレクトリーにマウントされます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る